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
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:
- 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)
-
Connect power to the card via the SATA connector.
-
Ensure that your RAM placement activates the maximum number of memory channels.
Consult the documentation for your motherboard to determine the optimal memory sequence.
-
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:
- Click Settings > Network, and click the IPV4 tab.
- 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);