当我尝试启动一个CUDA内核(通过PyCUDA)时,出现资源不足的错误,我想知道是否可以让系统告诉我是哪个资源。显然系统知道哪些资源已经耗尽,我只是想要查询。如何诊断由于资源不足而导致的CUDA启动失败?
我已经使用了占用计算器,并且一切看起来都很好,所以要么没有覆盖角落的情况,要么我使用错了。我知道这不是寄存器(这似乎是通常的罪魁祸首),因为我使用的是< = 63,它仍然会在CC 2.1设备上出现1x1x1块和1x1网格失败。
感谢您的任何帮助。我张贴在NVidia的板螺纹:
http://forums.nvidia.com/index.php?showtopic=206261&st=0
,但没有得到回应。如果答案是“你不能向系统询问这些信息”,那么也很好知道(有点......)。
编辑:
最寄存器使用我见过已经63编辑以上,以反映。
这是错误,所以非常感谢您的建议。我仍然希望有一种方法可以询问发生了什么,但是这听起来像是不可用。 –
因为我的真正问题是“我可以让系统直接告诉我这个问题”,但是基于其他地方的一些对话,我很肯定答案是“不,cuda没有API。 “ –
是的,问题是通常有很多方法可以导致相同的错误 - 能够准确地告诉你发生了什么问题是一件非常棘手的事情。 – harrism