CUDA内核寄存器大小

在计算能力1.3 GPU cuda卡上,我们运行以下代码

for(int i=1;i<20;++i)

kernelrun<<<30,320>>>(...);

我们知道每个SM有8个SP并且可以运行1024个线程,因此特斯拉C1060中有30个SM可以同时运行30 * 1024个线程。

根据给定的代码,可以同时运行多少个线程? 如果kernelrun内核有48个寄存器,那么tesla C1060有什么限制?

其中有16384个寄存器和16KB共享内存?

由于Tesla C1060不支持并发内核执行,我们如何能够同时在循环中执行内核? IS流可能吗? 特斯拉C1060只有一个并发复制和执行引擎?


NVIDIA已经发布了一款入住率计算器,您可以使用它自2007年起为您自己回答这个问题。您应该尝试一下。

但要回答你的问题,计算1.3设备中的每个SM每个SM有16384个寄存器,因此如果内核受限于寄存器,每个块的线程数大约为352(16384/45舍入到最接近的32)。 还有一个注册页面分配粒度要考虑。

链接地址: http://www.djcxy.com/p/80097.html

上一篇: CUDA Kernel register size

下一篇: How are CUDA blocks divided into warps?