How to use GPUDirect (or others) to send video to FPGA over PCIe?


I’m new to GPU and nVidia and I’m about to start a new project and I’m looking for solutions for a quick test !

We have a GEFORCE RTX3090 or a QUATRO RTX 6000 inside a Linux machine and a custom FPGA board conected to the PC using a PCIe interface.

We need to send the video computed by the GPU to the FPGA using the PCIe interface with the maximum performance and lowest latency.

What would be the easiest solution to start a little demo ?

On the FPGA side everything is ready, we can read and write to the FPGA’s memory from utilities in Linux. So we have a 64 bits memory buffer provided in one BAR.

For now we would need a little demo application running on the GPU that would generate a dummy image content but that would go directly to the FPGA’s memory using PCIe.

So how to use GPUDIrect to do it ?

FInal application uses OpenGL, could you also give me some clues about using GPUDIrect with OpenGL as mentioned in website ?

Thanks in advance for your advices, examples, tutorials, links …

You’ll need/have to write a driver for the FPGA device if you don’t already have one, that is compliant with GPUDirct RDMA, if you want to transfer data directly between GPU and FPGA over PCIE. See here. I won’t be able to provide a tutorial or step-by-step instructions other than that. I don’t believe NVIDIA supports GPUDirect RDMA with GeForce devices, so if it were me doing this, I would target the Quadro device, but you’re free to experiment, of course. I don’t have any other sample code, demo, or anything like that to suggest.

I’m not sure there is any direct connection between OpenGL and GPUDirect RDMA. If I were trying that, I would use CUDA/OpenGL interop (there are sample codes, or google it), and then transfer data from a CUDA buffer.