如何解决 RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling `cublasCreate(handle)`

本文方法限以下条件使用

  1. 运行环境没有改变
  2. 之前代码可以正常运行
  3. 代码修改后再同样的环境下出现了这个问题

如果满足以上三个条件,则一般不是CUDA出现了问题,则可以尝试用以下方法:

将代码在cpu上运行,不用GPU,这时候再报错就会给出具体出现问题的代码位置,有针对性的进行修改就好了

20220315更新

又发现一个另外一种方法:

做过并行计算或者操作系统的同学可能知道,GPU的计算方式一般是异步的。异步运算不像同步运算那样是按照顺序一步一步来,异步是同时进行的,异步计算中,两种不一样的操作可能会发生同时触发的情况,这是处理两者间的前后关系、依赖关系或者冲突关系就比较重要了。

有一个众所周知的小技巧,在执行训练程序的时候将环境变量CUDA_LAUNCH_BLOCKING=1设为1(强制同步)可以准确定位观察到我们显存操作的错误代码行数。

你可能感兴趣的:(pytorch,pytorch)