
【已解决】RuntimeError: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions befor
背景最近在从源码编译PyTorch,使用的环境是NVIDIA官方的Docker镜像: nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04nvidia/cuda:11.1.1-cudnn8-devel-ubuntu20.04宿主机为Ubuntu20.04 + RTX2080ti,Nvidia driver…:确保你的 CUDA 版本与你的 GPU 兼容,并且安装了
问题描述
今天遇到一个问题:RuntimeError: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? ,具体描述如下:
Traceback (most recent call last):
File "train.py", line 202, in <module>
net = WideResNet(args.layers, num_classes, args.widen_factor, dropRate=args.droprate).cuda()
File "/home/visionx/anaconda3/envs/watermarking/lib/python3.8/site-packages/torch/nn/modules/module.py", line 905, in cuda
return self._apply(lambda t: t.cuda(device))
File "/home/visionx/anaconda3/envs/watermarking/lib/python3.8/site-packages/torch/nn/modules/module.py", line 797, in _apply
module._apply(fn)
File "/home/visionx/anaconda3/envs/watermarking/lib/python3.8/site-packages/torch/nn/modules/module.py", line 820, in _apply
param_applied = fn(param)
File "/home/visionx/anaconda3/envs/watermarking/lib/python3.8/site-packages/torch/nn/modules/module.py", line 905, in <lambda>
return self._apply(lambda t: t.cuda(device))
File "/home/visionx/anaconda3/envs/watermarking/lib/python3.8/site-packages/torch/cuda/__init__.py", line 247, in _lazy_init
torch._C._cuda_init()
RuntimeError: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 804: forward compatibility was attempted on non supported HW
原因分析与解决
从描述来看,是和cuda相关的问题,然后问了一下gpt得到了下面的结论:
这个错误通常是由于 CUDA 的版本与当前系统的 GPU 不兼容引起的。可能是 CUDA 版本过高或过低,不支持当前的 GPU 设备,导致无法获取 CUDA 设备数量。
要解决这个问题,可以尝试以下几种方法:
更新 CUDA 驱动和工具包:确保你的 CUDA 版本与你的 GPU 兼容,并且安装了正确版本的 CUDA 驱动和工具包。你可以去 NVIDIA 官方网站下载适合你系统的 CUDA 版本并安装。
检查 GPU 兼容性:在选择 CUDA 版本时,确保你的 GPU 在该版本中是受支持的。你可以在 CUDA 官方文档中查找 CUDA 版本与 GPU 的兼容性列表。
检查 GPU 驱动:确保你的系统安装了最新的 GPU 驱动程序。有时候旧的或不完整的 GPU 驱动程序也会导致 CUDA 相关的问题。
检查其他库的兼容性:如果你正在使用其他与 CUDA 相关的库(例如 PyTorch、TensorFlow 等),请确保它们与所选择的 CUDA 版本兼容。
检查 CUDA 运行环境:确保 CUDA 运行环境设置正确。例如,确保
LD_LIBRARY_PATH
变量包含了 CUDA 库的路径。如果你尝试了以上方法仍然无法解决问题,可能需要进一步调查系统和 CUDA 配置以找出具体原因。
那么解决办法到底是什么呢?在这里给出两种方法:
1、重启电脑
因为这个时候就算是运行下面指令依然报错:
nvidia-smi
报错内容为:
Failed to initialize NVML: Driver/library version mismatch NVML library version: 535.161
关于这个的解决方法,可以查看我的另一篇博客(点击链接,直达解读): 重启电脑
解决后是这样的:
2、更新驱动。
还是值得一试的!
相关链接
RuntimeError: Unexpected error from cudaGetDeviceCount() - torch.package / torch::deploy - PyTorch ForumsI was training GCN model on my Linux server and I suddenly got this error. RuntimeError: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have alrea…https://discuss.pytorch.org/t/runtimeerror-unexpected-error-from-cudagetdevicecount/139977PyTorch的CUDA错误:Error 804: forward compatibility was attempted on non supported HW - 知乎背景最近在从源码编译PyTorch,使用的环境是NVIDIA官方的Docker镜像: nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04nvidia/cuda:11.1.1-cudnn8-devel-ubuntu20.04宿主机为Ubuntu20.04 + RTX2080ti,Nvidia driver…
https://zhuanlan.zhihu.com/p/361545761
完结撒花
不知为什么,总会感觉烦躁,到底是什么东西在让我烦恼呢?
更多推荐
所有评论(0)