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

Cuda 以编程方式检索每个多处理器的最大块数,cuda,Cuda,有没有一种方法可以通过编程方式检索适合多处理器的最大块数?我知道,如果我想达到每个多处理器的最大块数,那么我需要计算出在不限制块数的情况下可以使用多少线程和多少共享内存。(哦,以及寄存器的最大数量) 但是,我在看 我看不到一种通过编程检索每个多处理器的最大块数的方法 有没有办法做到这一点?据我所知,没有API函数可以直接检索这个数字 您可以通过检索compute capability主版本并使用中的信息来创建自己的函数。如果是cc 1.x或2.x,则每个多处理器有8个块。如果是cc 3.x,则

有没有一种方法可以通过编程方式检索适合多处理器的最大块数?我知道,如果我想达到每个多处理器的最大块数,那么我需要计算出在不限制块数的情况下可以使用多少线程和多少共享内存。(哦,以及寄存器的最大数量)

但是,我在看

我看不到一种通过编程检索每个多处理器的最大块数的方法


有没有办法做到这一点?

据我所知,没有API函数可以直接检索这个数字


您可以通过检索compute capability主版本并使用中的信息来创建自己的函数。如果是cc 1.x或2.x,则每个多处理器有8个块。如果是cc 3.x,则每个多处理器有16个块。如果是cc 5.x


这并不能证明您的代码是可靠的,但可能是最好的方法。

您可以通过检索compute capability主版本并使用中的信息来创建自己的函数。如果是cc 1.x或2.x,则每个多处理器有8个块。如果是cc 3.x,则每个多处理器有16个块。如果抄送5.x。谢谢你的有用答案。我想它不是API内置的。