赞
踩
前置情况由该文章开始
由于将显卡更换到了最新的4060 ti ,导致之前的基于cuda11.3版本的程序无法运行,显示RuntimeError: No CUDA GPUs are available
开始还疑惑了一会,之前都能跑通的程序为啥突然不行了,后来想起来自己的显卡更新后还没正式用来跑过程序。
去python中检查发现
- import torch
- print(torch.cuda.device_count())
- print(torch.cuda.is_available())
输出结果为
- 0
- False
在重新安装之前的pytorch版本后发现仍然输出为False,尝试新创一个环境安装了pytorch2.0发现
验证了确实是因为版本问题导致的无法使用Gpu,于是尝试更新cuda、cudnn和pytorch的版本
其中安装指令为:
- wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
- sudo sh cuda_11.8.0_520.61.05_linux.run
如果用官网下载太慢的话,可以直接在浏览器复制网页,然后通过自己的下载器进行下载后再传输cuda_11.8.0_520.61.05_linux.run到所用的服务器上。
安装过程中,首先输入accept,取消勾选Driver(已经安装了驱动),选择Install,回车
安装完后如图:
一定要记得配置环境!
首先用vim查看环境配置文件
vim ~/.bashrc
在最后添加如下几行(注意请根据实际情况修改,你可以查看/usr/loacl目录下cuda的文件名是什么)
- export PATH="$PATH:/usr/local/cuda-11.8/bin"
- export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64"
- export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/cuda-11.8/lib64"
刷新环境变量
source ~/.bashrc
可以通过nvcc -V来查看cuda版本
cudnn的安装比较简单,只需要下载对应版本的安装包,拷贝文件到指定目录,给予权限即可
下载会得到cudnn-linux-x86_64-8.8.1.3_cuda11-archive.tar.xz,将其转置要搭载的环境内进行解压
tar -xvf cudnn-linux-x86_64-8.8.1.3_cuda11-archive.tar.xz
然后拷贝文件+授予权限
- cd cudnn-linux-x86_64-8.8.1.3_cuda11-archive/
- sudo cp include/cudnn*.h /usr/local/cuda-11.8/include
- sudo cp lib/libcudnn* /usr/local/cuda-11.8/lib64
- sudo chmod a+r /usr/local/cuda-11.8/include/cudnn*.h
- sudo chmod a+r /usr/local/cuda-11.8/lib64/libcudnn*
查看cudnn版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
执行该指令可能没有结果,因为新版本可能更改了位置,可以用:
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
查看到版本为cudnn8.8.1即为安装完成
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
由于之前装的是spconv-cu113,所以需要卸载重装对应11.8版本的
- pip uninstall spconv-cu113
-
- pip uninstall spconv-cu118
我们再次回到python,查看此时torch.cuda.is_available()是否为True
在运行dome.py时出现报错:
1、ImportError: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory
a、先检查环境中是否存在libtorch_cuda_cu.so文件:
文件应该存在的路径:
anaconda3/envs/环境名称/lib/python3.8/site-packages/torch/lib
b、若存在,说明是查找文件路径出现错误,则需要修改代码;
c、若不存在,应该是 因为cuda、cudnn和pytorch都进行了重装,一些文件需要重新编译,所以.so文件不存在,于是:
cd到OpenPCDet文件下来运行编译
- cd OpenPCDet
- python setup.py develop
当以为解决问题了,再次运行没有报文件不存在,结果:
2、ImportError: cannot import name 'COMMON_SAFE_ASCII_CHARACTERS' from 'charset_normalizer.constant'
这个可能是由于charset_normalizer模块的版本问题引起的。尝试更新charset_normalizer模块到最新版本,或者使用较旧的版本,看看是否可以解决问题。您可以尝试以下命令更新模块:
pip install --upgrade charset-normalizer
如果仍然无法解决问题,请尝试卸载charset_normalizer模块,然后重新安装:
- pip uninstall charset-normalizer
- pip install charset-normalizer
3、NameError: name 'torch_scatter' is not defined
似乎模块或变量 torch_scatter 在脚本中没有被导入或不可访问
可以在代码前加上
import torch_scatter
或者是没有安装,则:
pip install torch-scatter
在解决完这些出现的问题后,再次运行demo.py已经可以正常运行了,结果换了个新显卡搞出这么一堆问题,版本适配还是很重要的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。