一年以来,主要从事了时空模型的研究。去年6月份发布了一篇文章也是关于CUDA索引越界问题的博客,只不过报错的信息不一样。这次是Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions。上网搜索了一下,发现有很多人遇到这样的问题。但是原因不一,让我意识到这个错误的复杂性。
有的说是:显存不足,需要通过降低batch size解决;
有的说是:数据集导入错误;
各种问题总结下来,如果是显存问题,那确实是硬伤,但更多的是由于运算或逻辑错误,这可能确实由数据集引起的,也可能是代码计算过程中产生的。所以遇到这种问题最重要的是静下心来分析出错的位置和所涉及到的数据和运算 。因此,如何找到出错位置,还是请参考我上一篇文章:https://blog.csdn.net/qq_45767840/article/details/148700059?spm=1011.2124.3001.6209
这里的第一步是找到问题所在的关键。
为什么我还要再写一遍,因为我这次错误的原因,确实是因为图结构一行全0了。这次找到具体原因了。也发现我的这两篇文章的索引越界都是和时空模型常见错误相关,如果你运行的其他模型报此错误,解决这个错误的思想还是很重要的。