这个问题也是从以下链接开始的:共享内存优化混淆
在上面的链接中,从 talonmies 的回答中,我发现计划运行的块数的第一个条件是“8”。我有 3 个问题,如下所示。
是不是意味着条件 2 和条件 3 的块数超过 8 个时,只能同时调度 8 个块?是否不管cuda环境、gpu设备、算法等任何条件?
如果是这样,这确实意味着在某些情况下最好不要使用共享内存,这取决于。然后我们要思考如何判断哪个更好,使用或不使用共享内存。我认为一种方法是检查是否存在全局内存访问限制(内存带宽瓶颈)。这意味着如果没有全局内存访问限制,我们可以选择“不使用共享内存”。这是好方法吗?
加上上面的问题2,我认为如果我的CUDA程序应该处理的数据很大,那么我们可以认为“不使用共享内存”更好,因为在共享内存中很难处理。这也是好方法吗?