记录
代码要求:python3.8, pytorch1.13.0
根据torch版本选择对应的cuda和cudnn安装
cuda与nvidia-driver版本对应关系
pytorch和python版本对应关系
pytorch和cuda版本对应关系
cuda和cudnn版本对应关系
运行代码遇到问题
1.cuda和cudnn版本与torch不匹配
(1)卸载cuda和cudnn
cuda和cudnn卸载遵照官方文档
sudo /usr/local/cuda-xx.x/bin/cuda-uninstaller
sudo rm -rf /usr/local/cuda-xx.x
如果是cuda10.0以下的版本,参考ubuntu完全卸载CUDA
这个blog里面提到的官方文档的指令存在的坑是因为官方文档指令实际上有三句
#To remove CUDA Toolkit:
sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \
"*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"
#To remove NVIDIA Drivers:
sudo apt-get --purge remove "*nvidia*" "libxnvctrl*"
#To clean up the uninstall:
sudo apt-get autoremove
以上指令清谨慎执行!因为显卡驱动会被一并删除!
(2)重装显卡驱动
如果你像我一样在卸载重装时出现了问题,导致必须使用这种完全卸载的方式,cuda和cudnn的卸载重装好说,但是nvidia-driver的卸载重装一定要参照Ubuntu18-22.04安装和干净卸载nvidia显卡驱动——超详细、最简单
注意:
1.如果你之前安装的显卡驱动是用apt命令也即Ubuntu自带命令安装,可以采用上述教程中的方法,如果你是用runfile文件自行安装驱动,请采用sudo /usr/bin/nvidia-uninstall命令卸载
2.在执行该方法的第7步之前,一定要保证自己的nvidia-driver已经下载并且放在一个可以访问的路径,记录好nvidia-driver的全称,然后再去全文本的指令行去输入指令。
3.在执行该方法的第9步时,显卡安装驱动过程中的选项
4.Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.
这里选择yes还是no有一些歧义,有的博文说选yes会导致nvidia驱动安装后系统无法正常启动,我选择了yes,但目前没有遇到该问题,如果你遇到了,解决方法参看ubuntu安装nvidia驱动后循环登陆/登陆界面卡住/无法启用nvidia显卡的解决办法
补充1
按***Ubuntu18-22.04安装和干净卸载nvidia显卡驱动——超详细、最简单步骤执行后关机时发现提示:有其他用户登陆
解决方法:
who -s #查看登陆用户
shutdown now #杀死全部用户(关机)
补充2
重装显卡驱动后没两过两天发现显卡驱动又用不了了,在软件和更新–附加驱动里面发现NVIDIA Corporation选的是**‘使用X.OrgXsever-…‘选项,将选项改为我安装的型号diver-535-open之后彻底黑屏了,**重装了一次显卡驱动,再开机发现正确选项是选择‘继续使用手动安装的驱动’
(3)安装cuda和cudnn
重装nvidia-driver之后就可以按照官方给的对应关系选择合适的版本安装,我选的是cuda11.6和cudnn-8.4,安装方式参照Ubuntu22.04安装CUDA和cuDNN详细过程记录
注意:在下载安装包时一定要选择rufile(local),deb(network)版本不要选,该版本会安装最新版cuda,通常与我们的需求不匹配
python版本查看
python --version
cuda版本查看
nvcc --version
cudnn版本查看
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
2.py文件中包含非ascii字符
解决方法:在首行加入以下代码指明文件的编码格式
# -*- coding: utf-8 -*-
3.torch包找不到
按pytorch官方给的指令安装pytorch
conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.6 -c pytorch -c nvidia
在终端执行 sudo python xx.py指令一直提示找不到torch包,但当前环境的conda list中是有pytorch的,以为是环境变量问题,结果是因为sudo运行Python脚本时,默认会使用系统的Python环境,而不是你当前激活的conda环境,如果代码运行确实需要sudo权限,需要将命令替换为
sudo /path/to/your/conda/env/bin/python xx.py