为什么共享内存比全局内存快?

时间:2015-03-02 07:41:19

标签: cuda shared-memory

是由于两者都是由技术造成的速度差异(我读到共享存储器是一个暂存存储器,主要是SRAM存储器,而全局存储器通常是DRAM存储器)?

如果两者都采用相同的技术制造,那么基于共享存储器的性能差异就会出现在芯片上,并且由于全局存储器需要额外的指令(加载指令)或额外的硬件电路,因此全局存储器是片外的将它的数据加载到处理器中?

1 个答案:

答案 0 :(得分:1)

至少有两个原因是你已经指出过的。有一个:

  1. 位置差异 - 共享内存是片上的,全局内存(至少是在其中一个缓存中没有命中的普通全局内存访问)是片外的。存储器通常以固定频率计时,最大频率取决于系统的时钟速度。长传输线,从片外驱动信号到芯片内或反之亦然的缓冲器以及许多其他电路效应将减慢特定电路可以计时的最大速率。因此,共享存储器在芯片上具有相当大的优势。缓存(L1,L2,只读,常量缓存,纹理缓存等)都受益于相同的原则。

  2. 技术差异。 SRAM单元(例如,共享存储器)可以比DRAM单元(例如,片外全局存储器)更快地计时,并且SRAM更适合于快速随机访问。 DRAM具有更复杂的访问序列,在访问单元时起作用。 DRAM还受到诸如刷新之类的机制的负担,这些机制可能妨碍连续快速访问。但是,我认为技术差异不是问题。另一个与技术相关的问题是SRAM阵列通常更适合现代处理器使用的逻辑过程(能够以更高的密度放置)。对于最高密度,DRAM阵列使用的半导体工艺与处理器内部用于通用逻辑的半导体工艺大不相同。

  3. 所需的处理器实例不会成为共享内存和全局内存访问时间之间有意义的区别。