CUDA:内存性能,什么是全局内存带宽

ved*_*eda 2 cuda memory-bandwidth

我正在学习CUDA优化.我在这个链接上找到了一个演示文稿:Paulius Micikevicius优化CUDA.

在这个演讲中,他们谈论

最大限度地提高全局内存带宽

他们说全球内存合并将改善带宽.

我的问题,你如何计算全球内存带宽.任何人都可以通过简单的程序示例来解释我.

Yap*_*pie 7

可以使用硬件规格计算理论带宽.

例如,NVIDIA GeForce GTX 280使用DDR RAM,内存时钟速率为1,107 MHz,内存接口为512位.使用这些数据项,NVIDIA GeForce GTX 280的峰值理论内存带宽为141.6 GB /秒:

在此输入图像描述

在此计算中,内存时钟速率转换为Hz,乘以接口宽度(除以8,将位转换为字节),并由于双倍数据速率乘以2.最后,将此产品除以109,将结果转换为GB /秒(GBps).

通过计时特定的程序活动并通过了解程序如何访问数据来计算有效带宽.为此,请使用以下等式:

有效带宽=((Br + Bw)/ 109)/时间

这里,有效带宽以GBps为单位,Br是每个内核读取的字节数,Bw是每个内核写入的字节数,时间以秒为单位.

有关更多信息,请参阅CUDA最佳实践指南.