最近被一个bug困扰了一两天。

报错如下:

line 109, in _Similarity
dist_rho[dist_rho < 0] = 0
RuntimeError: CUDA error: device-side assert triggered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

由于程序运行时间较长才会出现这个bug,数据量较大,debug也需要漫长的等待。

网上搜索有说设置的label 数量和网络最后一层输出的数量不一致,明显不适用于这个情况。最后搜索,index out of bounds"` failed.

得到如下这段话

the error message would give you the failing operation. However, the stack trace might point to the wrong line of code, due to the asynchronous behavior. You could rerun the code with: CUDA_LAUNCH_BLOCKING=1 python script.py args to get the proper stack trace with the offending operation.( https://discuss.pytorch.org/t/runtimeerror-cuda-error-device-side-assert-triggered-index-out-of-bounds-failed/87827

通过CUDA_LAUNCH_BLOCKING=1 python main.py 定位程序真正出错的位置,来找越界的位置在哪个地方。再进行修改。

CUDA error : device -s ide assert trigger ed Assert ion ` index >= -sizes[i] && index < sizes[i] && " index out of bounds "` failed 原来如此 在进行点云分割时遇到的问题。后来发现问题居然在于,没有将点云的起始标签改为0 跑模型时出现 Runtime Error : CUDA out of memory.错误 查阅了许多相关内容,原因是:GPU显存内存不够 简单总结一下解决方法: 将batch_size改小。 取torch变量标量值时使用item()属性。 可以在测试阶段添加如下代码: with torch.no_grad(): # 停止自动反向计算梯度 https://wisdomai.xyz/tool/pytorch/archives/2301 https://ptorch.com/news/160.html 作者:菜叶儿掉啦 import tornado.ioloop import tornado.web from tornado.httpclient import HTTPClient, AsyncHTTPClient class MainHandler(tornado.web.RequestHandler): def get(self): h_c = HTTPClient() res = h_c.fetch("http://www.baidu.com") # print(res) # pass 最近在使用Pytorch训练时报错,出现了以下信息: Assert ion ` index >= -sizes[i] && index < sizes[i] && " index out of bounds device -s ide assert trigger ed 可以判断时数组下标越界导致的,但是由于把数据加载到 cuda 里面,导致报错信息并不能帮助我们准确地定位错误位置,这时候,只需要将*. cuda ()或者.*to( device )去掉,将模型放在cpu训练,就能看 WebGL谷歌提示内存不够( Runtime Error :memory access out of bounds ,火狐提示索引超出界限( Runtime Error : index out of bounds ) 这是LeetCode第279场周赛遇到的问题:运行错误 起初不知道为啥会时间超限,我以为是数组开小了,然后我把数组开到10万,想着应该可以了,但是结果还是同样的错误,看着几乎通过所有的测试样例,我突然想到估计可能也许是我有特殊情况我忘记考虑了,然后我自己去造数据,果不其然,当原代码测试数据为0的时候,出现了如下图的情况 Runtime Error : CUDA error : device -s ide assert trigger ed 以及 Assert ion ` index >= -sizes[i] && index < sizes[i] && " index out of bounds "` failed .BUG解决思路 Runtime Error : CUDA error : device -s ide assert trigger ed CUDA kernel error s might be asynchronously report ed at some other API call,so the stacktrace below might be incorrect. For debugging cons ide r passing CUDA _LAUNCH_BLOCKING=1.   参考资料:自己debug   首先,我报错的问题的文本是: Runtime Error : CUDA error : device -s ide assert trigger ed 以及 Assert ion `input_val >= zero && input_val <= one` failed 把这两个文本放在前面以便搜索引擎检索。下面说一下我的解决方案,因为问题解... 好兄弟们看看是不是这个错: Runtime Error : CUDA error : device -s ide assert trigger ed CUDA kernel error s might be asynchronously report ed at some other API call,so the stacktrace below might be incorrect. For debugging cons ide r passing CUDA _LAUNCH_BLOCKING=1. 先在上边儿