Video over PCIe

Hi,
I wish to output the GPU generated frames to a remote FPGA memory via PCIe instead of display port output.

  1. I saw there is a GPUdirect mechanism but couldn’t find any guides walkthorugh regarding this subject.
    Where can I find some getting started help?

  2. Is it possible to redirect only part of the gpu generated frames? I mean that some of them will output to the display port and others to the FPGA memory

  3. Who controls the transfers? the CPU/GPU/FPGA? I mean who tells the GPU to redirect its output and to where

  4. Are there any working examples?

Thanks

1 Like

Hi,
Would like to get more information about the setup. Do yo connect our GPU card to PICe x8 slot on Orin developer kit and would like to transfer the frame data to Orin SoC system? Please also share which GPU card you are using.

Hi,
The GPU is the one inside the AGX Orin SoM.
I wish to connect the AGX SoM (currently devkit) to an external FPGA and redirect the AGX GPU’s frames into the FPGA memory instead of output them outside via display port.

Hi,
So the external FPGA is connected to PCIe x8 slot on Orin developer kit? Is Orin SoM in PCIe RP mode or EP mode?

Currently they are not connected but they will. I try to learn how to achieve my goal before connecting them physically.

From your questions I learn that the FPGA should use a x8 slot to connect to the SoM (I think less lanes will work as well but only slower) and is there importance who is the root complex and who is the end point?

That’s the goal - to redirect the SoM GPU’s frames into the FPGA memory

any help regarding this subject?

Hi,

You can find an example in the below link:

Is it possible to redirect only part of the gpu generated frames? I mean that some of them will output to the display port and others to the FPGA memory

Suppose yes, you can control the pointer to pass to the FPGA.
Please note that to allow RDMA, the buffer needs to be allocated with cudaHostAlloc.

Thanks.

Thanks.
Last follow up question:
Can I use this method to redirect the drawn GUI as well?

Hi,

You can redirect the GPU buffer if the memory is allocated with cudaHostAlloc.
So if the data for GUI is a cudaHostAlloc buffer, you can redirect.

Thanks.

Thank you for your answer.
I apologise, but I’m not familiar with the GUI drawing process.
Where can I find the code which draws the GUI and check if it uses cudaHostAlloc?

Hi,

There are some variants. Could you share more details about your use case?
Do you use QT or EGL? Any sample code we can refer to?

Thanks.