Examples wanted of zero-copy DMA streaming of sensor data on Jetson Thor

Hi,

We have a Jetson AGX Thor development kit and are trying to use the QSFP port for streaming sensor data over Ethernet directly into RAM, so we can process it with the GPU without having to first copy from one buffer to another, as we might have to using conventional Linux network sockets.

Our sensor is not a camera - rather it contains hundreds of individual streams of signal information (each sampled at 1MHz). Each UDP packet from the sensor readout board contains N samples for every channel.

We have a solution working on server hardware, using DOCA GPUNetIO, where the Ethernet packets are sent straight to device memory through GPUDirect RDMA, and are subsequently received and reordered (by a persistent kernel) into buffers of fixed length and dispatched for processing. There is no CPU involvement except for initialising the GPU pipeline, for handling the results export, and starting the processing off when a buffer is ready (for now - we are looking to move this to the GPU too at some point).

Though we can’t use DOCA on the Jetson Thor, because of the lack of a ConnectX NIC, we are hoping to still achieve zero-copy DMA streaming of the signal data from the QSFP interface to memory. I have been looking at both Camera-over-Ethernet and Holoscan, and while I have seen indications that the latter can handle non-camera signal data, it has not been clear to me how I might go about achieving our aims with either library.

Can anyone point me to any example programs for CoE or Holoscan (or some other library), which could help me in trying to develop some way of acquiring the raw packets and dumping them in memory? If I can have some kind of a ring-buffer interface, similar to how I work now with DOCA, then that would be ideal.

Please note that, if possible, we would like to avoid having to buy and use a Holoscan Sensor Bridge board. We want to achieve our goal with only the Jetson, our readout board, and suitable transceivers and cables for connecting the two via the QSFP port.

Thanks in advance for your comments.

Hi,
You may try CoE + SIPL:
https://developer.nvidia.com/downloads/embedded/L4T/r38_Release_v2.1/release/Jetson_SIPL_API_R38.2.1_aarch64.tbz2

The reference setup is AGX Thor developer kit + Eagle Camera Sensor Module LI-VB1940. You may consider get the module and try.

For your information, we will enable AGX Thor developer kit + Holoscan Sensor Bridge on next Jetpack 7.1GA.

here’s coe_camera sample app, and also readme file, /usr/src/jetson_sipl_api/sipl/samples/coe_camera/README.md
you may see-also CoE Software Architecture for reference.

Thanks for your replies, but I’m afraid this is not quite what I’m after. Are there any libraries that allow me to receive and deal with the packets directly, in a similar fashion to DOCA?

As I noted in my first post, the sensor data I receive over the network is not arranged in “frames” like a camera, but rather is made up of samples from several thousands of individual detectors (each sampled at 1MHz) so the camera libraries aren’t really suitable from what I can see.

Hi,
You may try the reference setup AGX Thor developer kit(Jetpack 7.1) + Holoscan Sensor Bridge(v2.5):
Release Notes - NVIDIA Docs
GitHub - nvidia-holoscan/holoscan-sensor-bridge: NVIDIA Holoscan Sensor Bridge - Bring Your Own Sensor (BYOS) over Ethernet

And refer to it for further implementation.

Thanks, I’m glad to see HSB is available on Thor now with the new Jetpack release.

Could you please give me a pointer on how I could go about using the Holoscan software (or any library for UDP packet reception using zero-copy DMA) on the Thor, without buying a Sensor Bridge board? Perhaps links to a few relevant pages of the documentation?

We need to be able to use the zero-copy DMA with our existing readout board (which already sends UDP packets containing our data in our own format) connected directly to the Thor’s QSFP port.

Hi,
Would suggest have one reference setup. so that you can try the sample application and do further development based on it.