CUDA中带宽的含义及其重要性

zen*_*nna 5 memory optimization cuda bandwidth

CUDA编程指南指出了这一点

"带宽是性能最重要的门控因素之一.几乎所有对代码的更改都应该在它们如何影响带宽的背景下进行."

它继续计算理论带宽,其大约为每秒数百千兆字节.我不知道为什么可以读/写全局内存的字节数是对内核优化程度的反映.

如果我有一个内核,其在一开始确实对存储在共享存储器和/或寄存器中的数据密集型计算,只用单一的读取,并在从和全局内存到底写出来,肯定是有效带宽将很小,而内核本身可能非常有效.

任何人都能在这种情况下进一步解释带宽吗?

谢谢

Any*_*orn 4

大多数重要的计算内核,在 CPU 和 GPU 领域,受内存限制。GPU 具有非常高的计算强度和吞吐量,但是对主存的访问非常慢并且具有很高的延迟,每次读取/存储需要几百个周期,而许多算术运算需要四个周期。

听起来你的内核是受计算限制的,所以你运气好。但是,您仍然需要注意共享内存库冲突,这可能会意外地序列化部分代码。