【CUDA编程】系列博客参考NVIDIA官方文档“CUDA C++ Programming Guide(v12.6)”。
本文为原创文章,未经本人允许,禁止转载。转载请注明出处。
1.Call Stack
在计算能力2.x及以上的device中,可以使用cudaDeviceGetLimit()
查询调用栈(call stack)的大小,并使用cudaDeviceSetLimit()
设置调用栈的大小。
当调用栈溢出时,如果应用程序通过CUDA调试器(例如CUDA-GDB或Nsight)运行,kernel调用会因为栈溢出错误而失败,或者会因为某种启动错误而失败。当编译器无法确定栈大小时,会发出警告,提示无法静态确定栈大小。这种情况通常出现在递归函数中。一旦出现此警告,如果默认栈大小不足,用户需要手动设置栈大小。