• Support Home
  • Getting Started
    • Connecting Your Camera
    • 3rd Party Software Getting Started Guides
  • Tech Ref Manuals
    • Arena SDK Documentation
    • HTP003S – Helios2+ ToF 3D
    • HLT003S – Helios2 ToF 3D
    • HLS003S – Helios ToF 3D
    • HLF003S – Helios Flex ToF 3D
    • ATX245S – Atlas10 24.5 MP
    • ATX204S – Atlas10 20.4 MP
    • ATX162S – Atlas10 16.2 MP
    • ATX124S – Atlas10 12.3 MP
    • ATX081S – Atlas10 8.1 MP
    • ATX051S – Atlas10 5.0 MP
    • ATL314S – Atlas 31.4 MP
    • ATL196S – Atlas 19.6 MP
    • ATL168S – Atlas 16.8 MP
    • ATL120S – Atlas 12.3 MP
    • ATL089S – Atlas 8.9 MP
    • ATL071S – Atlas 7.1 MP
    • ATL050S – Atlas 5.0 MP
    • ATL028S – Atlas 2.8 MP
    • ATP200S – Atlas IP67 20 MP
    • ATP120S – Atlas IP67 12.3 MP
    • ATP089S -Atlas IP67 8.9 MP
    • ATP071S – Atlas IP67 7.1 MP
    • ATP028S – Atlas IP67 2.8 MP
    • TRI200S – Triton 20.0 MP
    • TRI120S – Triton 12.3 MP
    • TRI122S – Triton 12.2 MP
    • TRI089S – Triton 8.9 MP
    • TRI071S – Triton 7.1 MP
    • TRI064S – Triton 6.3 MP
    • TRI054S – Triton 5.4 MP
    • TRI050S-P/Q – Triton 5.0 MP Polarized
    • TRI050S – Triton 5.0 MP
    • TRI032S – Triton 3.2 MP
    • TRI028S – Triton 2.8 MP
    • TRI023S – Triton 2.3 MP
    • TRI016S – Triton 1.6 MP
    • TRI005S – Triton 0.5 MP
    • TRI004S – Triton 0.4 MP
    • TRI02KA – Triton 2K Line Scan
    • PHX200S – Phoenix 20.0 MP
    • PHX120S – Phoenix 12.3 MP
    • PHX122S – Phoenix 12.2 MP
    • PHX089S – Phoenix 8.9 MP
    • PHX064S – Phoenix 6.3 MP
    • PHX050S-P/Q – Phoenix 5.0 MP Polarized
    • PHX050S – Phoenix 5.0 MP
    • PHX032S – Phoenix 3.2 MP
    • PHX023S – Phoenix 2.3 MP
    • PHX016S – Phoenix 1.6 MP
    • PHX004S – Phoenix 0.4 MP
  • Application Notes
    • Bandwidth Sharing in Multi-Camera Systems
    • Combine Helios 3D Point Cloud with RGB Color
    • I2C Support on LUCID Cameras
    • Using GPIO on LUCID Cameras
    • Using PTP & Scheduled Action Commands
    • Helios2 And Triton Synchronization
    • Product Change Notifications (PCN)
  • Knowledge Base
  • Contact Support
  • Log In
  • Support Home
  • Getting Started
    • Connecting Your Camera
    • 3rd Party Software Getting Started Guides
  • Tech Ref Manuals
    • Arena SDK Documentation
    • HTP003S – Helios2+ ToF 3D
    • HLT003S – Helios2 ToF 3D
    • HLS003S – Helios ToF 3D
    • HLF003S – Helios Flex ToF 3D
    • ATX245S – Atlas10 24.5 MP
    • ATX204S – Atlas10 20.4 MP
    • ATX162S – Atlas10 16.2 MP
    • ATX124S – Atlas10 12.3 MP
    • ATX081S – Atlas10 8.1 MP
    • ATX051S – Atlas10 5.0 MP
    • ATL314S – Atlas 31.4 MP
    • ATL196S – Atlas 19.6 MP
    • ATL168S – Atlas 16.8 MP
    • ATL120S – Atlas 12.3 MP
    • ATL089S – Atlas 8.9 MP
    • ATL071S – Atlas 7.1 MP
    • ATL050S – Atlas 5.0 MP
    • ATL028S – Atlas 2.8 MP
    • ATP200S – Atlas IP67 20 MP
    • ATP120S – Atlas IP67 12.3 MP
    • ATP089S -Atlas IP67 8.9 MP
    • ATP071S – Atlas IP67 7.1 MP
    • ATP028S – Atlas IP67 2.8 MP
    • TRI200S – Triton 20.0 MP
    • TRI120S – Triton 12.3 MP
    • TRI122S – Triton 12.2 MP
    • TRI089S – Triton 8.9 MP
    • TRI071S – Triton 7.1 MP
    • TRI064S – Triton 6.3 MP
    • TRI054S – Triton 5.4 MP
    • TRI050S-P/Q – Triton 5.0 MP Polarized
    • TRI050S – Triton 5.0 MP
    • TRI032S – Triton 3.2 MP
    • TRI028S – Triton 2.8 MP
    • TRI023S – Triton 2.3 MP
    • TRI016S – Triton 1.6 MP
    • TRI005S – Triton 0.5 MP
    • TRI004S – Triton 0.4 MP
    • TRI02KA – Triton 2K Line Scan
    • PHX200S – Phoenix 20.0 MP
    • PHX120S – Phoenix 12.3 MP
    • PHX122S – Phoenix 12.2 MP
    • PHX089S – Phoenix 8.9 MP
    • PHX064S – Phoenix 6.3 MP
    • PHX050S-P/Q – Phoenix 5.0 MP Polarized
    • PHX050S – Phoenix 5.0 MP
    • PHX032S – Phoenix 3.2 MP
    • PHX023S – Phoenix 2.3 MP
    • PHX016S – Phoenix 1.6 MP
    • PHX004S – Phoenix 0.4 MP
  • Application Notes
    • Bandwidth Sharing in Multi-Camera Systems
    • Combine Helios 3D Point Cloud with RGB Color
    • I2C Support on LUCID Cameras
    • Using GPIO on LUCID Cameras
    • Using PTP & Scheduled Action Commands
    • Helios2 And Triton Synchronization
    • Product Change Notifications (PCN)
  • Knowledge Base
  • Contact Support
  • Log In
home/Knowledge Base/Camera Setup/Configuring RDMA for Linux

Configuring RDMA for Linux

178 views 0 May 15, 2024 Updated on March 12, 2025

This knowledge base article is for Linux. For Windows, see here.

The Remote Direct Memory Access (RDMA) is a feature available on compatible LUCID cameras that enables camera data to be transferred to the host’s RAM directly via the network card bypassing the host’s CPU. This results in lower latency and higher speeds.

To use the RDMA feature with LUCID cameras, you need to use a compatible network card supplied by LUCID.

The sections below describe the prerequisites for RDMA, some example environments, and a configuration procedure.

Prerequisites

Windows configuration of RDMA requires the following host computer and camera:
Host computer:

  • Ubuntu 22.04 or 24.04 (64-bit).

  • A compatible network card. Examples:

    • PCIE-10GPOE2-LUCID (LUCID dual port 1G/10G PoE+ RDMA-enabled network card)
    • PCIE-10GETH2-BC (Broadcom Dual Port 10G Ethernet Card)
  • PCIe Generation 3 x8

  • ArenaSDK (with RDMA support) installed

Camera:

  • A compatible LUCID camera with up-to-date firmware

The PCIE-10GPOE2-LUCID network card from LUCID is a 1G/10G network card. A Triton2 (2.5G) or an Atlas/Atlas IP67 (5G) connected to this card would each connect as 1G device.

Example systems

The following is a system tested by LUCID that were successfully configured to use RDMA with a compatible LUCID camera.

Motherboard ASUS PRIME X299-A II
Processor Intel(R) Core(TM) i9-10900X CPU @ 3.70GHz
Memory Kingston 9905743-213.A00G 128GB (8x16GB) 16 GB PC4-25600 DDR4 SDRAM
Memory Channels 4 available, 4 active
Operating System Ubuntu 22.04
Video NVIDIA GeForce GT 730, 2GB
Storage KINGSTON SKC3000S512G 512GB
Network Card 2x LUCID RDMA Network Cards PCIE-10GPOE2-LUCID

Driver Firmware for network card

For the system above, the LUCID RDMA Network Card PCIE-10GPOE2-LUCID had the following driver and firmware:

  • Driver version: 224.0.159.0, Date: 11/4/2022
  • Network card firmware version: 224.1.102.0

The Arena SDK installation package from the LUCID website includes the related drivers. See the readme in the installation package for more details. Related firmware updates may be available for download from the LUCID website. Update the firmware following the instructions that accompany the firmware files.

Initial preparation

To configure the host computer:

  1. Manage power-saving features on host motherboard. Disable the following power-saving properties on the motherboard if they are present and enabled.
    • Intel SpeedStep
    • C1 State (Halt)
    • C1E State (Enhanced Halt)
    • The system should be using C0 (Operating State)
  2. Connect power to the card via the SATA connector.

  3. Ensure that your RAM placement activates the maximum number of memory channels.

    Consult the documentation for your motherboard to determine the optimal memory sequence.

  4. Confirm that your card has established the minimum PCIe bandwidth required for 10G transmission.

    The table below shows the minimum link width required for the number of cameras connected.

    # of 10G cameras Link width and speed required
    1 PCIe Version: 3.0, Link Width 2x, Link Speed 4.0 GT/s
    2 PCIe Version: 3.0, Link Width 4x, Link Speed 4.0 GT/s

Installation procedure

Before installing the NIC drivers as described in the Readme, you may need to assign an IP address and subnet to your NIC.

To configure the IP address of your NIC in Ubuntu:

  1. Click Settings > Network, and click the IPV4 tab.
  2. Configure the settings for your NIC.

Activating RDMA

To use RDMA mode on a compatible LUCID camera, open ArenaView and set Transmission Stream Protocol to RDMA.

In C++, this is equivalent to the following:

Arena::IDevice* pDevice = pSystem->CreateDevice(deviceInfos[0]); 
Arena::SetNodeValue<GenICam::gcstring>(pDevice->GetNodeMap(), "TransportStreamProtocol", "RDMA");
std::cout << TAB1 << "GevSCPD = " << 0 << std::endl; 
Arena::SetNodeValue<int64_t>(pDevice->GetNodeMap(), "GevSCPD", 0); 
 	 	 
std::cout << TAB1 << "DeviceLinkThroughputReserve = " << 0 << std::endl; 
Arena::SetNodeValue<int64_t>(pDevice->GetNodeMap(), "DeviceLinkThroughputReserve", 0);  
Arena::SetNodeValue<int64_t>(pDevice->GetNodeMap(), "GevSCPSPacketSize", 16000);

10G link speed is required to use RDMA. If the camera is streaming images, you must call StopStream before setting TransportStreamProtocol.

Was this helpful?

Yes  No
Related Articles
  • Projecting a Helios2 3D image to and from a 2D image
  • Focusing a Triton2 EVS Camera
  • Controlling Triton2 EVS camera’s event rate when connected at less than 2.5GigE (Event Rate Control / ERC)
  • Using Multiple RDMA Cameras on a Switch
  • Configuring RDMA for Windows
  • Back focal distance in LUCID cameras

Didn't find your answer? Contact Us

  Configuring RDMA for Windows

Using Multiple RDMA Cameras on a Switch  

© 2024 LUCID Vision Labs Inc.
Looking to purchase our cameras?
Visit the LUCID Webstore at thinklucid.com
LUCID Support & Help
Welcome to LUCID

We use cookies to facilitate online purchases and analyze our traffic. By clicking "Accept", you consent to our use of cookies.

Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}
LUCID Support & Help
Welcome to LUCID

We use cookies to facilitate online purchases and analyze our traffic. By clicking "Accept", you consent to our use of cookies.

Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}