我的内核调用失败并显示“内存不足”。它在栈帧中使用了大量的空间,我想知道这是否是导致其失败的原因。
当使用--ptxas-options=-v调用nvcc时,它会打印以下配置文件信息:
硬件信息:GTX480, sm20, 1.5GB设备内存,每个多处理器48KB共享内存。
我的问题是堆栈帧在哪里分配:共享内存、全局内存、常量内存等?
我尝试使用每个块1个线程以及每个块32个线程。都出现了“内存不足”的错误。
另一个问题是:只有当寄存器总数不超过多处理器可用寄存器数(32k对于我的卡)时,才能增加驻留到一个多处理器的线程数。堆栈帧大小是否也适用类似的原则?
当使用--ptxas-options=-v调用nvcc时,它会打印以下配置文件信息:
150352 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 59 registers, 40 bytes cmem[0]
硬件信息:GTX480, sm20, 1.5GB设备内存,每个多处理器48KB共享内存。
我的问题是堆栈帧在哪里分配:共享内存、全局内存、常量内存等?
我尝试使用每个块1个线程以及每个块32个线程。都出现了“内存不足”的错误。
另一个问题是:只有当寄存器总数不超过多处理器可用寄存器数(32k对于我的卡)时,才能增加驻留到一个多处理器的线程数。堆栈帧大小是否也适用类似的原则?