共享内存被“分成”了许多个bank。这就导致了整个bank冲突的问题,我们都知道。
问题: 但是你如何确定共享内存中有多少个bank(“条纹”)?
(在NVIDIA“devtalk”论坛上搜索,似乎每个块的共享内存被“分成”了16个bank。但是我们怎么知道呢?建议这样做的线程已经有几年了。事情有没有改变?它是否固定在所有NVIDIA CUDA兼容的卡上?是否有一种方法可以从运行时API中确定这一点(例如,在cudaDeviceProp
下我没有看到它)?是否有一种手动方法可以在运行时确定它?)