我正在学习CUDA优化。我在此链接上找到了一个演示文稿:Optimizing CUDA by Paulius Micikevicius。
在此演示文稿中,他们谈论
最大化全局内存带宽
,他们说全局内存合并将改善带宽。
我的问题,您如何计算全局内存带宽。任何人都可以通过简单的程序示例来解释我。
答案 0 :(得分: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是每个读取的字节数 kernel,Bw是每个内核写入的字节数,时间以秒为单位。
CUDA最佳实践指南中提供了更多信息。