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