CUDA - 确定共享内存中的银行数

7

共享内存被“分成”了许多个bank。这就导致了整个bank冲突的问题,我们都知道。

问题: 但是你如何确定共享内存中有多少个bank(“条纹”)?

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


3
这篇帖子说Fermi是32个银行。你试过查看CUDA编程指南吗?帖子作者说他从那里获取了这些信息。 - Robert Harvey
1个回答

11

正如@RobertHarvey所说,它已经有文档记录了。编程指南指出了计算能力 1.x的16个银行,以及计算能力 2.x3.x的32个银行。因此,可以基于设备属性返回的计算能力(主要版本)做出任何决策。

cuda在线文档的通用链接包含在cuda标签的信息链接中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接