• 本文记录使用自建dockers测试InternGPT项目遇到的一个问题(大致意思就是找不到CUDA):
  • No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda/'
  • 如遇到相同问题可以比照下面我解决问题的思路一个一个验证尝试解决问题,方法仅供参考
  • 解决子问题1:关于torch版本与CUDA版本不匹配的问题

  • 这个没什么好说的,就检查dockers容器中torch匹配的cuda版本与torchaudio匹配的cuda版本是否是一致的,不一致会报另一个错误显示版本冲突,这个自行上 pytorch官网 下载即可
  • 注:使用 nvidia-smi 查看显卡版本后再下载,而且注意torchaudio没有注明CUDA版本可能依然会不适配, cu116 表示CUDA:11.6
  • 解决子问题2:GPU版本的torch没有生效

  • 首先验证下下载的torch是不是GPU版本,比如我看到有的博客写的是因为用的是国内镜像源但是里面没有GPU版本的torch,所以下载的是CPU版本的(使用下列方法验证下)
  • import torch
  • torch.__version__
  • 然后是验证torch是否能检测到GPU
  • import torch
  • torch.cuda.is_available()
  • 果然,我的检测不到,返回的是False

    终极武器:重装容器

  • 显然chatgpt说了一堆,尝试后都无用,所以不如简单粗暴一些,直接将容器stop后,使用commit将容器压缩成镜像,再重启一下(commit使用后原容器还在哈,只是生成了一个镜像)
  • docker commit 容器名 镜像名
  • 然后重启的时候加上参数 --gpus all
  • docker run -it --name 新容器名 -p 5702:5702 --shm-size=32G --gpus all -v /data/donews/maosiyu:/iGPT 容器使用的镜像名 /bin/bash
  • 终究还是这个方法有效, nvidia-smi 指令生效了,且文章开头的报错信息也没有,然后出现了新的问题,唉,心累,不过InternGPT给出了docker版本,待我测试后补充.... Eric_见嘉 Docker 自动化运维
    私信
  •