问题描述

        今天遇到一个问题: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 设备数量。

要解决这个问题,可以尝试以下几种方法:

  1. 更新 CUDA 驱动和工具包:确保你的 CUDA 版本与你的 GPU 兼容,并且安装了正确版本的 CUDA 驱动和工具包。你可以去 NVIDIA 官方网站下载适合你系统的 CUDA 版本并安装。

  2. 检查 GPU 兼容性:在选择 CUDA 版本时,确保你的 GPU 在该版本中是受支持的。你可以在 CUDA 官方文档中查找 CUDA 版本与 GPU 的兼容性列表。

  3. 检查 GPU 驱动:确保你的系统安装了最新的 GPU 驱动程序。有时候旧的或不完整的 GPU 驱动程序也会导致 CUDA 相关的问题。

  4. 检查其他库的兼容性:如果你正在使用其他与 CUDA 相关的库(例如 PyTorch、TensorFlow 等),请确保它们与所选择的 CUDA 版本兼容。

  5. 检查 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…icon-default.png?t=N7T8https://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…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/361545761

完结撒花

        不知为什么,总会感觉烦躁,到底是什么东西在让我烦恼呢?

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐