We validated this system on two host platforms. The camera, switch, and VLAN setup is the same for the two platforms. The difference is where the image buffers are and how the NIC writes to them.
Option 1: Discrete GPU workstation (x86-64). The GPU has its own VRAM. The NIC writes image data directly into VRAM through PCIe (GPUDirect RDMA with nvidia-peermem). This is the configuration in the Discrete GPU System Components (Option 1) section.
Option 2: DGX Spark class mini AI computer (NVIDIA GB10, ARM64). The CPU and the GPU share one memory pool. The NIC writes image data into pinned system memory and the GPU reads the same memory. No copy occurs. nvidia-peermem is not used.
| Option 1: Discrete GPU (See full system specs in next section) | Option 2: DGX Spark (GB10) | |
|---|---|---|
| CPU architecture | x86-64 | ARM64 |
| GPU | RTX 6000 ADA | PCIe card Blackwell GPU in the GB10 package |
| Memory | 128 GB DDR5 and 48 GB VRAM | separate 128 GB, one pool for CPU and GPU |
| Image buffer allocation | cudaMalloc (VRAM) | cudaHostAlloc with cudaHostAllocMapped |
| nvidia-peermem and IOMMU steps | Necessary | Not necessary |
| CPU access to the image buffer | No. Copy to host memory first | Yes, direct |
| NIC | ConnectX-5 MCX516A-CDAT, add-in card ConnectX-7 | Built in |
| NIC host interface | One PCIe Gen4 x16 link | Two PCIe Gen5 x4 links |
| NIC driver | MLNX_OFED | DOCA-OFED |
| Arena SDK package | Linux x64 | Linux ARM64 |
| Validated result | 20 cameras, RGB8 at 28 fps | 20 cameras, RGB8 at 28.8 fps and BayerRG8 at 87 fps |