MAX_REGISTERS_PRE_BLOCK(或者是MAX_REGISTERS_PRE_MULTIPROCESSOR?),假设为65535。那么,如果调用核函数时,blocksize为(x,y,z),每个线程调用的寄存器个数为r,则x*y*z*r应该小于65535。
From Stack Overflow :
"Too Many Resources Requested for Launch - This error means that the number of registers available on the multiprocessor is being exceeded. Reduce the number of threads per block to solve the problem."
Basically I used to be able to have a given number of threads per block, (8x8x16=1024 for a 3D Kernel). But if you nest your kernel calls, you further reduce the number of available registers.