我在尝试启动CUDA内核(通过PyCUDA)时遇到了资源外的错误,我想知道是否有可能让系统告诉我哪个资源是我的简短上。显然,系统知道哪些资源已耗尽,我只想查询它。
我已经使用了占用计算器,一切似乎都没问题,所以要么没有覆盖角落的情况,要么我使用错了。我知道它不是寄存器(这似乎是通常的罪魁祸首)因为我使用< = 63并且它仍然在CC 2.1设备上使用1x1x1块和1x1网格失败。
感谢您的帮助。我在NVidia板上贴了一个帖子:
http://forums.nvidia.com/index.php?showtopic=206261&st=0
但没有回应。如果答案是“你不能向系统询问那些信息”,那么也应该知道(有点......;)。
修改
我见过的最多注册用法是63.编辑上面的内容以反映这一点。
答案 0 :(得分:6)
我认为PyCUDA使用CUDA驱动程序API,因此以下可能是错误的:如果您没有指定足够的参数,或者在使用cuLaunch()
启动时为参数指定了错误的大小,则可能发生CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES内核。由于您使用的是PyCUDA,因此很容易使内核所需的参数列表与您实际传递的参数不匹配,因此您可能需要检查调用内核的方式。
我认为在这种情况下,这是一个命名不佳的错误代码......
答案 1 :(得分:0)