【问题标题】:CUDA: Memory performance, What is Global memory bandwidthCUDA:内存性能,什么是全局内存带宽
【发布时间】:2011-12-20 01:11:57
【问题描述】:

我正在学习 CUDA 优化。我在此链接上找到了一个演示文稿:Optimizing CUDA by Paulius Micikevicius

在这个演讲中,他们谈到了

最大化全球内存带宽

,他们说全局内存合并将提高带宽。

我的问题,你如何计算全局内存带宽。谁能用一个简单的程序示例来解释我。

【问题讨论】:

标签: cuda memory-bandwidth


【解决方案1】:

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

例如,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 最佳实践指南中找到。

【讨论】:

  • 我很抱歉。我必须使用谷歌公式...它只是转换为赫兹
  • 关于最大化带宽的短语通常是指“当您的带宽小于理论值时,您的代码性能仅限于计算”。您的目标是达到或接近理论带宽
  • 并非如此。如果您的代码不受带宽限制,那么它也可能受到内存延迟而不是计算的限制。正如您所指出的,目标是受计算限制或内存带宽限制,或两者兼而有之!
猜你喜欢
  • 2012-04-26
  • 1970-01-01
  • 2012-12-15
  • 1970-01-01
  • 2021-05-17
  • 2012-06-05
  • 1970-01-01
  • 2018-08-28
  • 2013-11-09
相关资源
最近更新 更多