【发布时间】:2020-03-27 09:48:00
【问题描述】:
我想每个使用过 Pytorch 的人都知道这个错误RuntimeError: CUDA error: device-side assert triggered
在某种程度上。
我在脚本中使用 GPU 代码生成了大量数据(200k+ 长向量),所以需要一段时间。
我通过生成器分批执行此操作,因为我没有内存来一次将所有向量存储在我的 GPU 中。生成器的结构如下:
for i in range(0, len(inputs), batch_size):
try:
<generate the vectors>
yield 1, <the vectors> # Here it was successful
except RuntimeError:
print(f'could not generate vectors {index} to {index + batch_size}')
yield 0, (i, i+ batch_size) # Here the input was malformed
我知道某些输入格式错误,以至于从中生成向量会失败并出现运行时错误,这很好,它甚至不到我数据集的 1%。我想获取索引并稍后处理它。
这是我的问题
一旦向量创建失败,GPU 基本上就会被阻塞,并将响应所有带有上述错误的请求。预先验证所有输入会很麻烦而且很慢。我不想这样做。我想滚动所有格式错误的输入并稍后处理。
我的问题是
如何尽可能轻松快速地从这种砖块状态中恢复 GPU?到目前为止,我发现的所有问题都涉及修复潜在错误,我不需要这样做。我只想继续从我的数据集中生成向量。
【问题讨论】: