ATI FirePro上的PCIe带宽

时间:2012-10-11 02:39:57

标签: opencl

我正在尝试测量ATI FirePro 8750上的PCIe带宽.SDK中的amd应用示例PCIeBandwidth测量来自以下的传输带宽:

  1. 使用clEnqueueReadBuffer()主机到设备。
  2. 使用clEnqueueWriteBuffer()进行托管的设备。
  3. 在我的系统(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的影响。

1 个答案:

答案 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%以上。