如果不是做 cuda
编程,以下内容不必多看,直接不用看了!!!
引用一位大佬的话:https://blog.csdn.net/qq_42406643/article/details/109545766
里面所谓的那句话就是:conda install pytorch安装的是torch CPU版本,conda install pytorch torchvision -c pytorch安装的是GPU版本
。
懂了吧?安装 GPU
版本的 PyTorch
或者 Tensorflow
的时候,默认就已经帮我们把 cudatoolkit cudnn
打包好了,如果你和我之前一样没有仔细看控制台安装信息的话,那么就会走许多的弯路!
可以参考我这篇博客:https://blog.csdn.net/qq_40750972/article/details/124217499
参考链接1:https://blog.csdn.net/weixin_42563415/article/details/116805068
参考链接2:https://www.cnblogs.com/tangmiao/p/10470663.html
dpkg -l | grep nvidia
sudo apt purge nvidia*
sudo apt autoremove
sudo apt autoclean
dpkg -l | grep nvidia
如果没有卸载干净,参考链接二。
参考链接1:https://zhuanlan.zhihu.com/p/131317082
参考链接2:https://zhuanlan.zhihu.com/p/59618999
参考链接3:https://askubuntu.com/questions/687414/unable-to-locate-package-nvidia-355-and-hearthstone-issues
ubuntu-drivers devices
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt install nvidia-[driver]-version
【注】driver
为可选项,以 2.1
列出的可用驱动名称为准,version
表示要安装的版本。
注意:
nvidia
驱动的名字必须与2.1
列出的驱动名字一致,否则会出错误!!!E: Unable to locate package nvidia-470
在这个例子中,本人忽略了nvidia-driver-470
中的driver
,导致浪费了大量的时间来解决这个问题!
sudo reboot
nvidia-smi
如果使用上述 apt-get install
安装 NVIDIA DRIVER
,默认会安装与之匹配的 CUDA
的,如果我们想安装其他版本的 CUDATOOLKIT
,需要到 NVIDIA
官网下载,然后手动安装。
NVIDIA CUDATOOLKIT
下载官网:https://developer.nvidia.com/cuda-toolkit-archive- 选择一个合适的版本(具体根据
PyTorch
官网支持的CUDA
版本来选择)下载安装。
这里演示下怎么安装 11.2.x
版本。
uname -a
CUDATOOLKIT11.2
官网:https://developer.nvidia.com/cuda-11.2.2-download-archive
复制官方提供的下载安装命令,分步执行:
参考链接:https://www.cnblogs.com/brady-wang/p/12812458.html
# wget https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux.run -P ~/myname/pkgs/ # 下载安装包到指定的文件夹,如果该路径不存在会自动创建!
# 将安装包下载到当前 workspace
wget https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux.run
下载完成后,直接运行即可完成安装:
sudo sh cuda_11.2.2_460.32.03_linux.run
因为是图形界面,可能会卡一会儿:
查看 /usr/local
:
~/.bashrc
中 cudatoolkit 配置参考链接:https://www.jianshu.com/p/eb5335708f2a
## <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##
## 将 CUDATOOLKIT 的安装路径添加到系统变量中,使用 nvcc -V 查看是否配置成功 ##
## <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##
# 创建软链接:sudo ln -s /usr/local/cuda-11.x /usr/local/cuda
# 好处是更改cudatoolkit版本时,只需要修改软链接的指向,不用每次都重新修改.bashrc
export CUDA_HOME=/usr/local/cuda
# 不使用软链接时:只需要将CUDA_HOME设置为cudatoolkit安装的路径
# 确保新添加的环境放在原始环境的最前面,这样source ~/.basrc才能生效
export PATH="$CUDA_HOME/bin:$PATH" # 使用引号确保有特殊含义的字符成为普通字符
export LD_LIBRARY_PATH="$CUDA_HOME/lib64:$LD_LIBRARY_PATH"
## <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##
## <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##
修改后,保存退出,source ~/.bashrc
使配置信息立即生效。
由于有多个 CUDATOOLKIT
,这里附上一个切换版本的脚本文件:
#!/bin/bash
echo "当前的cuda版本为:"
nvcc -V
## ============================================== ##
## ============================================== ##
echo "正在删除旧的软链接..."
# 如果输出不为空,表示有错误
if [ -n $(rm /usr/local/cuda) ]; then
echo "删除失败,准备切换到root执行权限进行操作!"
# 如果当前字符串为空,表示命令执行成功
if [ -z $(sudo rm /usr/local/cuda) ]; then
echo "删除成功!"
fi
fi
## ============================================== ##
## ============================================== ##
read -p "请输入要设置的cuda版本:" VER
echo "正在创建新的软链接..."
sudo ln -s /usr/local/cuda-${VER} /usr/local/cuda
echo "修改成功!现在的cuda版本如下:"
nvcc -V
保存为 change_cuda_ver.sh
,然后添加可执行权限:
chmod +x change_cuda_ver.sh
./change_cuda_ver.sh
cuDNN
下载地址:https://developer.nvidia.com/rdp/cudnn-archive。找到与自己nvcc -V
的cudatoolkit
版本相匹配的包下载。
注意:需要注册一个
NVIDIA
账号后才能下载!
下载完成后,解压即可:
tar -xvf cudnn-11.3-linux-x64-v8.2.1.32.tgr
解压完成后,将以下文件拷贝到相应的位置
sudo cp cuda/include/* /usr/local/cuda/include
sudo cp cuda/lib64/* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/*
查看 cuda
版本:
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
echo "正在复制中..."
sudo cp cuda/include/* /usr/local/cuda/include
sudo cp cuda/lib64/* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/*
echo "复制完毕!"
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
安装完成!
参考链接1:cudatoolkit的安装与多版本切换
参考链接2:https://www.runoob.com/linux/linux-comm-chmod.html
参考链接3:https://blog.csdn.net/albertsh/article/details/107274490
import torch
print(torch.cuda.is_available(), torch.cuda.device_count())
from torch.backends import cudnn
print(cudnn.is_available())
print(cudnn.is_acceptable(torch.rand(1,).cuda()))
参考链接:cudnn 验证是否安装成功