【发布时间】:2011-12-20 01:11:57
【问题描述】:
我正在学习 CUDA 优化。我在此链接上找到了一个演示文稿:Optimizing CUDA by Paulius Micikevicius。
在这个演讲中,他们谈到了
最大化全球内存带宽
,他们说全局内存合并将提高带宽。
我的问题,你如何计算全局内存带宽。谁能用一个简单的程序示例来解释我。
【问题讨论】:
标签: cuda memory-bandwidth
我正在学习 CUDA 优化。我在此链接上找到了一个演示文稿:Optimizing CUDA by Paulius Micikevicius。
在这个演讲中,他们谈到了
最大化全球内存带宽
,他们说全局内存合并将提高带宽。
我的问题,你如何计算全局内存带宽。谁能用一个简单的程序示例来解释我。
【问题讨论】:
标签: cuda memory-bandwidth
可以使用硬件规格计算理论带宽。
例如,NVIDIA GeForce GTX 280 使用 DDR RAM,内存时钟频率为 1,107 MHz,内存接口为 512 位宽。使用这些数据项,NVIDIA GeForce GTX 280 的峰值理论内存带宽为 141.6 GB/秒:
在此计算中,内存时钟频率转换为 Hz,乘以 接口宽度(除以 8,将位转换为字节)并乘以 2,因为 双倍数据速率。最后,这个产品除以 109 将结果转换为 GB/sec (GBps)。
有效带宽是通过定时特定的程序活动和知道 程序如何访问数据。为此,请使用以下等式:
有效带宽 = (( Br + Bw ) / 109 ) / 时间
这里,有效带宽的单位是GBps,Br是每次读取的字节数 内核,Bw 是每个内核写入的字节数,时间以秒为单位。
更多信息可在 CUDA 最佳实践指南中找到。
【讨论】: