CUDA - 确定共享内存中的库数

cmo*_*cmo 3 c++ cuda gpu shared-memory bank-conflict

共享内存被"条带化"到银行中.正如众所周知的那样,这导致了银行冲突的整个问题.

问题: 但是如何确定共享内存中存在多少个银行("条带")?

(围绕NVIDIA"devtalk"论坛,似乎每块共享内存被"条带化"到16家银行.但我们怎么知道呢?线程暗示这已经有几年了.有没有改变?它是否已修复所有支持 NVIDIA CUDA的卡?有没有办法从运行时API中确定这一点(我没有在那里看到它,例如在cudaDeviceProp下)?是否有一种手动方式在运行时确定它?)

Rob*_*lla 8

正如@RobertHarvey所说,它已被记录在案.编程指南指示16个用于计算能力1.x的库,以及32个用于计算能力2.x3.x的库.因此,您可以根据设备属性中返回的计算能力(主要版本)做出任何决策.

cuda在线文档的一般链接包含在cuda标签的info链接中.