2393679_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2393679_zh-CN

2393679_zh-CN

E9171 AMDPU 带 T1040 RDB 板

我正在使用E9171 AMDGPU和T1040 NXP主板,请问这款GPU是否支持使用AMDGPU进行点对点数据传输?NXP主板通过PCIe交换机连接到FPGA和GPU。该GPU应该能够使用QDMA驱动程序直接从FPGA获取数据,另外,该NXP板是否支持使用AMDGPU驱动程序的直接点对点功能?

Re: E9171 AMDPU with T1040 RDB Board

不要假设 T1040 平台上的 E9171 + AMDGPU 支持 FPGA→GPU PCIe P2P DMA。根据目前可获得的 AMDGPU 信息,直接 FPGA 到 AMDGPU 的 P2P 通常不作为标准 AMDGPU 功能得到支持,不像 NVIDIA GPUDirect RDMA 那样。

 

  1. AMDGPU是否支持PCIe点对点(P2P)连接?

AMDGPU确实包含Linux P2P基础架构支持(PCI_P2PDMA),AMD KFD也有一个HSA_AMD_P2P选项,但这种支持主要针对以下情况:

  • AMD GPU ↔ AMD GPU 通信
  • ROCm/HSA 计算环境
  • GPU 暴露出大 BAR 且平台/芯片组支持 PCIe P2P 路由的平台

Linux Kconfig 的描述明确提到了AMD GPU 之间的 P2P 通信

  1. FPGA → AMD GPU 直接 DMA?

AMD工程师曾公开表示:

目前尚不支持在 Xilinx FPGA 和 AMD GPU 之间实现 P2P 通信。

并建议采用主机内存注册变通方案,而不是真正的设备到设备 PCIe DMA。

因此:

通路

状态

AMD GPU ↔ AMD GPU

支持特定 ROCm 平台

FPGA ↔ AMD GPU 直接 PCIe DMA

AMDGPU通常不支持此功能。

FPGA → 主机 DDR → GPU

支持

FPGA P2P缓冲区映射到主机内存并注册到GPU

 
  1. T1040 是否支持 PCIe P2P?

从 T1040 端来看,如果满足以下条件,PCIe 硬件本身可以通过交换机在端点之间转发内存读/写 TLP:

  • PCIe交换机支持P2P路由,
  • ACS重定向已禁用(取决于交换机),
  • 地址映射配置正确。

PCIe 协议本身并不能阻止端到端数据传输。但是, T1040/NXP 软件不会自动提供 AMDGPU-FPGA P2P 支持。关键问题在于:

  1. AMDGPU 导出 GPU 内存以供第三方 DMA 访问。
  2. FPGA QDMA 可以获取 GPU BAR/VRAM 物理地址。
  3. Linux IOMMU/P2PDMA 路径接受事务。

通常情况下,AMDGPU 的限制才是阻碍因素,而不是 T1040 PCIe 控制器本身的限制。

  1. 哪些方法可能适用于您的系统?

当前拓扑结构:

PCIe交换机

/ \

FPGA(QDMA)E9171 GPU

/

T1040 RC


最有可能支持的流程:

FPGA ---> DDR(T1040 内存)

|

v

AMDGPU DMA

|

显存

不保证有效:

FPGA(QDMA)---> GPU显存

因为 AMDGPU 通常不会为任意 FPGA 设备公开类似 GPUDirect-RDMA 的接口。


Tags (1)
No ratings
Version history
Last update:
‎07-14-2026 04:29 AM
Updated by: