我的 CUDA 代码必须使用(减少到均值/标准,计算直方图)4 个数组,每个 2048 个浮点数,并且已经从以前的内核存储在设备内存中。
通常建议启动至少与我拥有的多处理器一样多的块。然而,在这种情况下,我可以将这些数组中的每一个加载到单个块的共享内存中,因此只启动 4 个块。
这远非“让 GPU 保持忙碌”,但如果我使用更多块,我将需要通过全局内存进行更多的块间通信,并且我预计由于传输数据所花费的额外时间,多处理器的任何额外利用都会受到影响进出全局内存。
在这种情况下并行化的最佳方法是什么?