CUDA 到处都有大量文档和指南,但我一直找不到任何形式的说明,说明如何诊断可编译但得到神秘、模糊错误消息的内核,例如“未指定的启动失败”正常的“这些块/网格结构有意义吗?” 等等
我可以以某种方式拦截 cubin 文件并对内存结构等进行一些静态分析吗?原谅我的菜鸟,但我在任何地方都找不到任何权威的白痴指南。
祝大家周末愉快。
我在寻找什么
- 如何分离出cubin中间文件
- 之后该怎么做才能弄清楚发生了什么,特别是寄存器和内存配置,以查看我的代码是否违反了任何硬件要求,或者我是否只是在某处遗漏了一个错误。
对于以后遇到此问题的任何人(我似乎有创建 SO 问题的习惯,这些问题几个月后一直出现在我自己的查询中......)CUDA-Memcheck提供了比“检查错误”处理程序更有趣的响应。例如
========= Error: process didn't terminate successfully
========= Invalid __global__ write of size 4
========= at 0x00000040 in decomp
========= by thread (1,0,0) in block (0,0,0)
========= Address 0x00101024 is out of bounds
=========
========= ERROR SUMMARY: 1 error
我什至不必解释该错误消息...