【Trick】解决服务器cuda报错——RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED

本人在服务器上训练代码时,遇到了以下报错:

复制代码
Traceback (most recent call last):
  File "/home/ubuntu/zcardvein/zzz_dataAndTrain.py", line 163, in <module>
    preds = model(img_batch)
  File "/home/ubuntu/miniconda3/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/ubuntu/miniconda3/lib/python3.9/site-packages/torch/nn/parallel/data_parallel.py", line 171, in forward
    outputs = self.parallel_apply(replicas, inputs, kwargs)
  File "/home/ubuntu/miniconda3/lib/python3.9/site-packages/torch/nn/parallel/data_parallel.py", line 181, in parallel_apply
    return parallel_apply(replicas, inputs, kwargs, self.device_ids[:len(replicas)])
  File "/home/ubuntu/miniconda3/lib/python3.9/site-packages/torch/nn/parallel/parallel_apply.py", line 89, in parallel_apply
    output.reraise()
  File "/home/ubuntu/miniconda3/lib/python3.9/site-packages/torch/_utils.py", line 644, in reraise
    raise exception
RuntimeError: Caught RuntimeError in replica 0 on device 0.
Original Traceback (most recent call last):
  File "/home/ubuntu/miniconda3/lib/python3.9/site-packages/torch/nn/parallel/parallel_apply.py", line 64, in _worker
    output = module(*input, **kwargs)
  File "/home/ubuntu/miniconda3/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/ubuntu/zcardvein/zzz_dataAndTrain.py", line 31, in forward
    enc1 = self.encoder1(x)
  File "/home/ubuntu/miniconda3/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/ubuntu/miniconda3/lib/python3.9/site-packages/torch/nn/modules/container.py", line 217, in forward
    input = module(input)
  File "/home/ubuntu/miniconda3/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/ubuntu/miniconda3/lib/python3.9/site-packages/torch/nn/modules/conv.py", line 463, in forward
    return self._conv_forward(input, self.weight, self.bias)
  File "/home/ubuntu/miniconda3/lib/python3.9/site-packages/torch/nn/modules/conv.py", line 459, in _conv_forward
    return F.conv2d(input, weight, bias, self.stride,
RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED

通过询问gpt和群友,确定了是cuda自身的问题,因为cpu就能正常运行。

排查步骤主要如下:

1:通过查看显存,发现不是卡的显存炸了。

复制代码
nvidia-smi

2:通过查看cuda和torch的兼容问题,发现结果是2.0.1+cu117,没问题。

复制代码
python -c "import torch; print(torch.__version__)"

3:通过查看cuda available,发现结果是True。

4:把device换成cpu,发现代码能正常运行。

复制代码
device = torch.device("cpu")

其实理论上,换个服务器就能解决我这个问题()

然后群友说试一下:cudnn禁用。

于是...

5:在需要运行的python文件开头加上cudnn禁用语句

复制代码
torch.backends.cudnn.enabled = False

结果就能正常动起来了!

相关推荐
kkkkkkkkkk_Z38 分钟前
新手自学嵌入式 | 学习日记:Linux驱动复习之系统移植(U-Boot篇)
linux·运维·学习
hz567891 小时前
企业视频会议系统方案:总部与分支机构高效协同如何落地?
运维·服务器·网络·安全·实时音视频·信息与通信
sun153690275721 小时前
露天矿边坡滑坡怎么预警?QY-19GNSS 自动化地表位移监测系统介绍
运维·安全·自动化
网络小江2 小时前
组网第27课:ARP 的能与不能——免费 ARP、代理 ARP 与 ARP 欺骗
服务器·网络·网络安全·负载均衡·免费arp
云计算练习生2 小时前
什么是文件权限?Linux 中 rwx 与数字权限的对应关系
linux·运维·服务器·操作系统·文件权限管理
FY@-@2 小时前
VMware ESXi 7.0 实验全记录:嵌套安装 → 网络配置 → 存储 → Windows 10 虚拟机部署
运维·网络·windows·云计算
饿了吃洗衣凝珠3 小时前
red hat day2
linux·运维·服务器
陈嘿萌3 小时前
CVPR 2026|TherA:让可见光照片“懂冷热”,用文字和参考图控制红外生成
图像处理·人工智能·深度学习·计算机视觉·学术研究与理论基础