目录
- 1. 问题报错
- 2. 可能原因
- 2.1 GPU内存不足
- 2.2 缓存问题
- 2.3 CUDA和Pytorch版本不兼容
- 2.4 CUDA和cuDNN版本不兼容
- 3. 验证CUDA是否可用
- 4. 参考
1. 问题报错
在使用GPU加速模型训练的过程中经常会遇到这样的错误:
RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED
这个错误通常表示cuDNN库未能正确初始化。
2. 可能原因
2.1 GPU内存不足
在终端输入nvidia-smi
查看GPU占用情况,如下图中的GPU 0几乎跑满,如果再使用该GPU运行其他占用内存较大的程序可能会报错。
>>> nvidia-smi
2.2 缓存问题
有时,cuDNN错误可能是由于缓存问题引起的。尝试清除缓存,然后重新运行代码。可以在Python代码中使用以下代码来清除缓存:
import torch
torch.cuda.empty_cache()
2.3 CUDA和Pytorch版本不兼容
不同版本的深度学习框架对CUDA和Pytorch的要求可能有所不同。在使用特定版本的框架时,查阅其文档或要求,了解所需的CUDA和Pytorch版本,并确保安装了正确的版本。
前往Pytorch官网查看版本对应关系:https://pytorch.org/get-started/previous-versions/,如果版本不匹配则需要重新安装Pytorch或者更新CUDA版本。注意同一Pytorch版本适配多个CUDA版本,具体还需要考虑cuDNN的版本,详情见下一节。
显卡的CUDA版本同样可以通过nvidia-smi
进行查看:
2.4 CUDA和cuDNN版本不兼容
确保你使用的CUDA版本与cuDNN版本兼容,验证CUDA和cuDNN是否正确安装并配置。
cuDNN官网下载地址提供了二者版本对应关系:https://developer.nvidia.com/rdp/cudnn-archive
如果需要重新下载CUDA,可以前往官网下载:https://developer.nvidia.com/cuda-toolkit-archive
这篇博客记录了部分CUDA Toolkit 和cuDNN的版本对应关系:https://blog.csdn.net/tangjiahao10/article/details/125225786
3. 验证CUDA是否可用
查看CUDA是否可用命令如下:
import torch
print(torch.cuda.is_available())
返回True
即可用。
4. 参考
- https://blog.csdn.net/weixin_43935696/article/details/114950143
- https://blog.csdn.net/tangjiahao10/article/details/125225786
- ChatGPT 3.5