I Am using E9171 Amdgpu with T1040 NXP Board, here does this GPU supports per to peer data transfer using amdgpu.? this NXP is connected to FPGA and GPU via PCIe switch. this GPU should be able able to get data directly from FPGA using QDMA driver and also does this NXP board supports direct peer to peer feature using AMDGPU driver?
Do not assume that E9171 + AMDGPU on a T1040 platform supports FPGA→GPU PCIe P2P DMA. Based on currently available AMDGPU information, direct FPGA-to-AMDGPU P2P is not generally supported as a standard AMDGPU feature in the same way that NVIDIA GPUDirect RDMA is.
AMDGPU does contain Linux P2P infrastructure support (PCI_P2PDMA) and AMD KFD has an HSA_AMD_P2P option, but this support is primarily documented for:
The Linux Kconfig description explicitly mentions P2P communication between AMD GPUs.
AMD engineers have publicly stated that:
achieving P2P between Xilinx FPGA and AMD GPU is currently not directly supported
and suggested a host-memory registration workaround instead of true device-to-device PCIe DMA.
Therefore:
|
Path |
Status |
|
AMD GPU ↔ AMD GPU |
Supported on specific ROCm platforms |
|
FPGA ↔ AMD GPU direct PCIe DMA |
Not generally supported by AMDGPU |
|
FPGA → Host DDR → GPU |
Supported |
|
FPGA P2P buffer mapped into host memory and registered with GPU |
From the T1040 side, PCIe hardware itself can forward Memory Read/Write TLPs between endpoints through a switch if:
PCIe as a protocol does not prevent endpoint-to-endpoint transfers. However, T1040/NXP software does not automatically provide AMDGPU-FPGA P2P support. The critical question is whether:
The AMDGPU limitation is typically the blocking factor rather than the T1040 PCIe controller itself.
Current topology:
PCIe Switch
/ \
FPGA(QDMA) E9171 GPU
\ /
T1040 RC
Most likely supported flow:
FPGA ---> DDR (T1040 memory)
|
v
AMDGPU DMA
|
VRAM
Not guaranteed to work:
FPGA(QDMA) ---> GPU VRAM
because AMDGPU generally does not expose a GPUDirect-RDMA-like interface for arbitrary FPGA devices.