我正在学习CUDA,我不断发现像
这样的短语“GPU具有专用内存,其占用CPU内存带宽的5-10倍”
请参阅here以获取第二张幻灯片的参考资料
现在带宽在这里意味着什么?具体来说,一个人是什么意思
我对带宽的理解非常有限,是从CPU到GPU每秒可以传输的最高千兆字节数。但这并不能解释为什么我们需要定义三种类型的带宽。
答案 0 :(得分:3)
带宽是两个给定对象之间的传输速度。 GPU内存带宽是GPU芯片与其专用内存之间可能发生的最大数据传输量。 CPU内存带宽是可以在CPU和系统内存之间传输的最大数据量。 PCI-E带宽是可以在南桥芯片和特定PCI-E设备之间传输的最大数据量。
当然,如果GPU需要系统内存中的数据,那么它可以接收到的最快的链是链中最慢的链接。所有这些都取决于内存需要什么以及需要哪些节点来检索它。
答案 1 :(得分:3)
当前具有独立GPU的CPU / GPU系统中有三种不同的内存总线:
这些总线中的每一个都具有物理总线宽度(以位为单位),时钟速度(总线上数据信号每秒可以更改多少次)和带宽(也称为吞吐量),以每秒位数为单位(可以转换为每秒千兆字节)。峰值带宽由总线宽度乘以总线的时钟速率决定。可实现的带宽还必须考虑任何开销(例如,PCI-e分组开销)。
答案 2 :(得分:1)
带宽是指可以在任何地方传输数据的速率。
“GPU具有专用内存,其CPU内存带宽为5-10倍” 意味着GPU上组件之间的内存带宽远远高于在主内存和GPU之间移动数据,因此一旦您的数据在卡上,任何副本都非常快。
通常即使在低端CUDA卡上,内部带宽也会达到30-50Gb / s,而PCI-E插槽到主内存的实际可实现带宽可能<1Gb / s。