zen*_*nna 5 memory optimization cuda bandwidth
CUDA编程指南指出了这一点
"带宽是性能最重要的门控因素之一.几乎所有对代码的更改都应该在它们如何影响带宽的背景下进行."
它继续计算理论带宽,其大约为每秒数百千兆字节.我不知道为什么可以读/写全局内存的字节数是对内核优化程度的反映.
如果我有一个内核,其在一开始确实对存储在共享存储器和/或寄存器中的数据密集型计算,只用单一的读取,并在从和全局内存到底写出来,肯定是有效带宽将很小,而内核本身可能非常有效.
任何人都能在这种情况下进一步解释带宽吗?
谢谢
大多数重要的计算内核,在 CPU 和 GPU 领域,受内存限制。GPU 具有非常高的计算强度和吞吐量,但是对主存的访问非常慢并且具有很高的延迟,每次读取/存储需要几百个周期,而许多算术运算需要四个周期。
听起来你的内核是受计算限制的,所以你运气好。但是,您仍然需要注意共享内存库冲突,这可能会意外地序列化部分代码。