内核使用:(--ptxas-options=-v
)
0字节堆栈帧,0字节溢出索特斯,0字节溢出负载
ptxas信息:用于45个寄存器,49152 + 0字节SMEM,64个字节cmem [0],12字节cmem [16]Cuda的:追逐不足资源问题
发射:kernelA<<<20,512>>>(float parmA, int paramB);
它会运行良好。
推出:kernelA<<<20,513>>>(float parmA, int paramB);
它会消除资源错误。 (请求发射的资源太多)。
费米设备属性:48KB每SM共享MEM,MEM恒定64KB的,32K每SM寄存器,每块1024个最大线程,能够补偿2.1(sm_21)
我使用所有我的共享空间MEM 。 我将用完700个线程/块的块寄存器空间。如果我要求超过MAX_threads/block数量的一半,内核将不会启动。这可能只是一个巧合,但我怀疑它。
- 为什么我不能使用完整的线程块(1024)?
- 任何猜测我将用尽哪些资源?
- 我经常想知道在经线之间停顿的线程数据/状态在哪里。什么资源持有这些?
这是在运行什么硬件?什么CUDA工具包版本? – talonmies
HW:properties.name = Quadro 20000M工具包:nvcc -version = Cuda编译工具,版本4.1,V0.2.1221 – Doug
似乎没有多少块,或多少共享我使用的内存。 – Doug