DMA带宽与显存带宽

📅 2026/7/9 6:39:07
DMA带宽与显存带宽
DMA 测试带宽概述DMA 测试里的带宽通常指的是主机内存和 GPU/算力卡显存之间的数据搬运带宽不是 GPU 内部显存带宽。测试类型DMA 测试主要测以下两类类型全称数据流向H2DHost to DeviceCPU/主机内存 → GPU/算力卡显存D2HDevice to HostGPU/算力卡显存 → CPU/主机内存影响因素DMA 测试主要受以下因素影响PCIe Gen 代际PCIe 宽度x16 / x8 / x4NUMA 亲和性IOMMU 设置MaxPayload / MaxReadReq驱动实现CPU / 内存带宽是否跨 socket所以它对应的是PCIe/主机通道带宽不是 HBM/GDDR 显存带宽。PCIe 理论上限参考各代 PCIe 单向理论带宽如下PCIe 版本单向理论带宽PCIe Gen3 x16≈ 15.75 GB/sPCIe Gen4 x16≈ 31.5 GB/sPCIe Gen5 x16≈ 63 GB/sPCIe Gen6 x16≈ 121 GB/s双向合计大约翻倍PCIe Gen4 x16双向 ≈ 63 GB/sPCIe Gen5 x16双向 ≈ 126 GB/s实际 DMA 测试通常会低于理论值。设备实例分析设备的lspci -vvv bdf | grep -i speed输出LnkSta: Speed 16GT/s, Width x16这就是PCIe Gen4 x16DMA 单向理论上限大约31.5 GB/s如果实际测试 H2D/D2H 只有十几 GB/s可能要看 NUMA、IOMMU、MRRS/MPS、驱动、CPU 亲和性等。DMA 带宽 vs 显存带宽显存带宽和 PCIe 带宽不是一回事容易混在一起。两个带宽口径显存带宽GPU 芯片访问自己板上 HBM/GDDR 显存的速度比如H100 3.35TB/s、H200 4.8TB/s、B200 8TB/s。PCIe 带宽CPU/主机/其他 PCIe 设备访问 GPU 的外部通道速度比如PCIe Gen4 x16、PCIe Gen5 x16。它们的关系类似GPU Core ↔ HBM/GDDR 显存显存带宽TB/s 级CPU/主机 ↔ GPUPCIe 带宽几十到一百多 GB/sGPU ↔ GPUNVLink / PCIe / 网络取决于平台常见 GPU 显存带宽参考型号显存类型显存带宽A100 80GBHBM2e≈ 2.0 TB/sH100HBM3≈ 3.35 TB/sH200HBM3e≈ 4.8 TB/sB200HBM3e≈ 8.0 TB/sL40SGDDR6≈ 864 GB/sL4GDDR6≈ 300 GB/s换算1 TB/s 1000 GB/s例如 H1003.35 TB/s ≈ 3350 GB/s。所以差距非常大PCIe Gen5 x16 单向 ≈ 63 GB/sH100 显存带宽 ≈ 3350 GB/sH200 显存带宽 ≈ 4800 GB/sB200 显存带宽 ≈ 8000 GB/s对比总结对比维度DMA 带宽显存带宽数据路径CPU 内存 ↔ GPU 显存GPU 核心 ↔ HBM/GDDR通道PCIe卡内部总线带宽量级几十 GB/s几千 GB/s例如 H100 显存带宽3.35TB/s但如果是 PCIe Gen5 x16Host↔GPU DMA 单向也就~63GB/s理论上限。