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.