以编程方式检索每个多处理器的最大块数

Posted

技术标签:

【中文标题】以编程方式检索每个多处理器的最大块数【英文标题】:Programmatically retrieve maximum number of blocks per multiprocessor 【发布时间】:2014-04-26 13:04:34 【问题描述】:

有没有办法以编程方式检索可容纳在多处理器上的最大块数?我知道,如果我想达到每个多处理器的最大块数,那么我需要弄清楚在不限制块数的情况下我可以使用多少线程和多少共享内存。 (哦,还有寄存器的最大数量)

但是,我在看

http://developer.download.nvidia.com/compute/cuda/4_1/rel/toolkit/docs/online/structcudaDeviceProp.html

而且我没有看到的方法。

有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

据我所知,没有 API 函数可以直接检索此号码。

您可以通过检索计算能力主要版本并使用the programming guide 中的信息来创建自己的函数。如果 cc 1.x 或 2.x,它是每个多处理器 8 个块。如果 cc 3.x 是每个多处理器 16 个块。如果抄送 5.x it's 32 blocks.

这并不能保证您的代码不会过时,但它可能是最好的方法。

【讨论】:

以上是关于以编程方式检索每个多处理器的最大块数的主要内容,如果未能解决你的问题,请参考以下文章

你能以编程方式知道 GPU 中每个块的最大块数和线程数吗?

检索磁盘读/写最大速度(以编程方式)

每个 SM 的最大驻留块数?

Vert.x初体验

2020杭电多校第二场题解

以编程方式设置应用程序的处理器关联