2012-09-10 27 views
8

在开启共享内存的同时,开普勒是否拥有2x或4倍的费米带宽?共享内存带宽费米vs开普勒GPU

编程指南指出:“每个存储具有32个比特每两个时钟周期带宽”(对于2.X),以及“每个银行都有64位每时钟周期的带宽”(3。 X),所以隐含4倍?

+0

@Tom:我从5.0 PG引用。 (事实上​​,关于3.X带宽的句子已经添加了w.r.t 4.2 PG。)。在这两种情况下,有32家银行。我的问题部分是由于[本演示文稿]的p81(http://developer.download.nvidia.com/GTC/PDF/GTC2012/PresentationPDF/S0514-GTC2012-GPU-Performance-Analysis.pdf),他们在这里说带宽是x2。我没有看到对2.X和3.X上的不同时钟的任何引用,并且我相信何时使用“时钟周期”,这意味着在所有计算能力上都是相同的(例如,与指令吞吐量一样)。这些时钟周期以赫兹为单位与本问题无关。 –

+0

时钟频率是很重要的,因为您正在讨论通常以字节/秒为单位进行测量的带宽,从字节/周期到字节/秒需要时钟频率。我同意文档不清楚,并希望CUDA 5.0最终版本将得到改进(您所拥有的版本大概来自发布候选版本)。 – Tom

回答

6

在Fermi上,每个SM有32个bank,每两个时钟周期提供32位。

在开普勒上,每个SMX有32个存储区,每个时钟周期提供64位。然而,由于开普勒的SMX从根本上重新设计为节能,并且由于运行快速时钟吸收了大量功率,开普勒的核心时钟速度非常慢。查看来自GTC的Inside Kepler谈话,大约8分钟,获取更多信息。

所以问题的答案是开普勒有2倍,而不是4倍。

下一版本的文档(CUDA 5.0)应该更好地解释这一点。

+0

我开始明白你的观点。 3.X上的SP在主GPU时钟上运行,而在2.X上运行在着色器时钟上,这是2倍主GPU时钟。所以在开普勒它是“每个主时钟周期”,在费米它是“每两个着色器时钟周期”(=每个主时钟周期)。因此,从主GPU时钟的角度来看,访问同样频繁,2x带宽来自更广泛的64位字。这也体现在开普勒白皮书的“SMX处理核心架构”中。很好学习关于SP时钟频率的东西!谢谢! –

1

作为

编程指南4.2中给出:共享存储器被组织为使得相继的32位字映射到连续的银行16级的银行。每个存储体每两个时钟周期的带宽为32位。

Kepler白皮书:与Fermi SM相比,64b和更​​大负载操作的共享内存带宽也增加了一倍,达到每核心时钟256B。

对于小负载操作,它是4倍。

+0

@Tom:如果银行数量相同,如果Fermi需要32b/2cc,开普勒需要64b/1cc,则其数学上为4X。需要更多的逻辑解释。 – Fr34K

+2

问题是要比较费米(2.x)和开普勒(3.x)。编程指南中关于16家银行的引用实际上在1.x部分。开普勒对费米是2倍。 – Tom

+0

不要忘记,开普勒时钟速度较慢,节约能源(请参阅我的答案链接到视频)。 – Tom