首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cuda:"CUDA_EXCEPTION_9:翘曲硬件堆栈溢出“的含义/出现

cuda:"CUDA_EXCEPTION_9:翘曲硬件堆栈溢出“的含义/出现
EN

Stack Overflow用户
提问于 2011-08-30 19:44:10
回答 1查看 282关注 0票数 0

cuda和comment的手册提到了上面的CUDA_EXCEPTION_9:"Warp硬件堆栈溢出“,但是我没有找到更多的细节;这两本手册中给出的唯一评论是

“当翘曲中的任何线程触发硬件堆栈溢出时,就会发生这种情况。这应该是罕见的。”

在我的情况下,它有时(!)当我试图通过malloc() (处理同一组数据!)动态分配设备上的内存时发生。尝试malloc() 0字节(错误已修复)重复导致相同的异常。

在何种情况下,究竟是什么导致了这一例外;它表明了什么,一个人如何修正/规避它?

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2011-08-30 20:08:12

费米GPU上的堆栈溢出与任何其他设备上的堆栈溢出没有什么不同。每个线程在启动时都从全局内存中获取静态堆栈和堆分配。如果通过过度递归耗尽堆栈,则分配更多可用堆内存,或尝试对存储在堆内存中的任何变量执行超出界限的操作,将生成保护错误,并将得到堆栈溢出错误报告。从您的问题中,我猜您正在通过设备端malloc调用耗尽可用的每线程堆空间。

CUDA运行时API包含用于管理堆栈和堆内存cudaDeviceSetLimitcudaDeviceGetLimit的功能。有了这些,您可以检查运行时给出的每个线程的堆栈、堆和printf FIFO的数量,并尝试增加堆和堆栈大小,以查看问题是否消失。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7248878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档