我正在尝试测量ATI FirePro 8750上的PCIe带宽.SDK中的amd应用示例PCIeBandwidth测量来自以下的传输带宽:
在我的系统(Windows 7,Intel Core2Duo 32位)上输出如下:
Selected Platform Vendor : Advanced Micro Devices, Inc.
Device 0 : ATI RV770
Host to device : 0.412435 GB/s
Device to host : 0.792844 GB/s
此特定卡具有2 GB DRAM,最大时钟频率为750 Mhz
1-为什么每个方向的带宽都不同?
2-为什么Bandwdith这么小?
另外我理解这种通信是通过DMA进行的,因此带宽可能不会受到CPU的影响。
答案 0 :(得分:0)
来自Microsoft Research实验室的这个paper给出了为什么GPU-CPU之间存在非对称PCIe数据传输带宽的原因。本文描述了FPGA的性能指标 - GPU上的GPU数据传输带宽。它还包括来自CPU的指标 - GPU数据传输带宽超过PCIe。
引用相关部分
'还应该注意GPU-CPU也会传输自己 显示某种程度的不对称行为。在GPU到CPU的情况下 传输,GPU正在启动总线主控写入,GPU 达到最大值 6.18 GByte / Sec。在从CPU到GPU的相反方向上,GPU正在启动总线主控读取,结果带宽降至5.61 字节/秒。在我们的观察中,通常是公共汽车的情况 主写入比任何PCIe的总线主控读取更有效 由于协议开销和相对复杂性的实现 实现。虽然这种不对称的可能解决方案是 通过使用CPU启动的总线主机来处理CPU到GPU的方向 写道,PC架构中没有硬件设施 一般来说。 “
关于带宽的第二个问题的答案可能是数据传输大小的原因。 见图2,3,4和5.我在第一届AMD Fusion大会上也看过这样的图。解释是由于协议和设备延迟,PCIe数据传输具有开销。对于较小的传输尺寸,开销对于较大的尺寸而言变得更加重要。
您有什么杠杆来控制或提高绩效?
获得芯片/主板和GPU的正确组合是H / W杠杆。具有最大PCIe通道数的芯片更好。使用更高规格的PCIe协议,PCIe 3.0优于PCIe 2.0。所有组件都需要支持更高的标准。
作为控制数据传输大小的程序员,是一个非常重要的杠杆。
128K - 256K字节的传输大小约为最大带宽的50%。 1M - 2M字节的传输占用最大带宽的90%以上。