背景
- CUDA的通常建议在SM或者Block中使用更多的线程来隐藏访存时延。
但是作者提出这种方式可能不是完全正确的这种方式可能不是完全正确的这种方式可能不是完全正确的
有关occupancy的含义:The multiprocessor occupancy is the ratio of active warps to the
maximum number of warps supported on a multiprocessor of the GPU - 作者列举了两个实验数据来说明这件事情,结果一目了然:

作者提出使用CUDA编程时的两点谬论:
- 多线程是隐藏时延仅有的一种方式。这里的时延包括两种:一种是算数延时;一种是访存延时
- shared memroy 和 register 的访存速度一样快
优化点1:使用更少的线程来隐藏计算延时
首先将计算延迟与访存延迟做一个对比,计算延迟要比访存延迟要快

本文挑战了CUDA编程中的传统观念,指出仅靠增加线程来隐藏延迟并非最佳策略。作者通过实验展示了提高指令集并行度同样能改善计算延迟,且使用更少的线程可以利用更多寄存器,减少shared memory访问,从而提高性能。优化关键在于每个线程执行更多工作和寄存器的高效利用。

7307

被折叠的 条评论
为什么被折叠?



