Streaming "raw" samples over 100Gbps ConnectX-6 channel into Holoscan Operator

Bottom Line up Front: How do we stream sensor sample data (just a stream of 16 bit integers) from our sensor/PC into a Holoscan operator on the Clara AGX with with high throughput and low latency.

We are currently designing a project for the Clara AGX dev kit. Our use case seems a little different than most of the image-based processing that Holoscan seems to focus on and is more aligned with the “Radar Pipeline” example in Holohub. So our current design is as follows:

We have the SoftRoCE drivers installed on the PC, but we did hear that there was upcoming or possible UDP support in one of the recent Nvidia Holoscan Developer talks.

So the question is the following, what format is recommended for the PC to use? And then what drivers/libraries do I need on the Clara AGX side to make best use of the ConnectX into a Holoscan pipeline?

Below is the current design for the packet structure, but it too is fungible as we control the PC data format as well.

Hi @josh.anderson2. Great question! Thanks for posting on the Holoscan forums.

We spoke about this at the developer day, but we anticipate two different types of Network Operators to be released to Holohub:

  1. BasicNetworkRx/Tx - This leverages Linux sockets behind the scenes and is designed for quick prototyping and low-rate sensor processing
  2. AdvancedNetworkRx/Tx - This leverages DPDK under the hood and also encapsulates GPUDirect RDMA. It also takes advance of UDP “header data split” where the payload is sent directly from the NIC to GPU while the header is processed on the CPU

We’re aiming to release the Basic Network operators within the next few weeks and Advanced Network operators sometime later this year.

That said, for the advanced operators, you can be sure to denote your header/packet size, meaning the first N bytes of the packet, with the advanced operator, will be sent to CPU while the remaining M bytes in the packet will go to GPU.