sudo ubuntu-drivers devices
优先选择带recommended的版本(后面实验证明推荐的往往是高版本的驱动,它对于一些cuda版本兼容不太友好,建议下载低版本的)
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
上图中可见,有系统推荐的515选项,但是后面发现和11.1的cuda不兼容,所以换为了470。(切忌不要选server的,那是服务器版本。)
sudo reboot
nvidia-smi
cuda官网下载runfile文件
sudo sh cuda_11.1.74_470.82.01_linux.run --override
切记!!一定要加sudo权限,不然会报错。并且加上–override,忽略GCC版本不兼容问题。(不加 --override也可以先执行sudo apt install build-essential
代替)
分别选择 continue -> accept -> install,其中有个细节!!!!因为我们已经有了显卡驱动,所以需要将第一行选项变为下图的空选,按下Enter即可切换状态。最后选择install即可完成安装。
sudo gedit ~/.bashrc
在文本末添加如下信息:
#export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CPUTI/lib64
#export CUDA_HOME=/usr/local/cuda
#export PATH=$PATH:$LD_LIBRARY_PATH:$CUDA_HOME
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
注意:想要修改指向的cuda版本,进行如下操作,修改软链接即可:
cd /usr/local
ll
sudo ln -snf /usr/local/cuda-11.1 /usr/local/cuda #删除旧指向软链接并创建新软链接
验证cuda安装是否成功,如下图所示,显示已安装了11.1版本的cuda:
source ~/.bashrc
nvcc -V
注意!!!如果发现nvcc显示的版本和自己装的不一样,进行下面的操作:
终端输入
which nvcc
返回
/usr/bin/nvcc
终端查看系统默认调⽤的nvcc命令的位置,
cat /usr/bin/nvcc
返回
exec /usr/lib/nvidia-cuda-toolkit/bin/nvcc
这是指向了系统默认的nvidia-cuda-toolkit位置,将其更改为刚安装的cuda:
终端输入
sudo gedit /usr/bin/nvcc
在文本中将exec /usr/lib/nvidia-cuda-toolkit/bin/nvcc改为
exec /usr/local/cuda/bin/nvcc "$@"
保存更改后,nvcc -V命令得到CUDA最新版本。
最后验证cuda是否正常,出现下图说明测试成功:
cd ~/NVIDIA_CUDA-11.1_Samples/1_Utilities/bandwidthTest/
make
./bandwidthTest
到Cudnn下载页面下载与驱动、Cuda、需要运行软件要求相应的版本(需要注册Nvidia账号)。
Ubuntu可以下载.solitairetheme8格式文件,只要将扩展名改为tgz即可解压
tar -xvf cudnn-8.0-linux-x64-v7.6.5.32.tgz
得到名为cuda的文件夹,在当前目录(不要进入cuda)运行:
version < 8.0:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
输入cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
可查看版本
version >= 8.0:
sudo cp cuda/include/* /usr/local/cuda/include/
sudo cp cuda/lib64/* /usr/local/cuda/lib64/
sudo chmod +x /usr/local/cuda/include/cudnn.h
sudo chmod +x /usr/local/cuda/lib64/libcudnn*
输入cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
可以查看版本
注意:切换cudnn版本操作如下:
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
#sudo cp lib64/lib* /usr/local/cuda/lib64/
sudo chmod +x /usr/local/cuda/include/cudnn.h
sudo chmod +x /usr/local/cuda/lib64/libcudnn*
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.8.2.0
sudo ln -sf libcudnn.so.8.2.0 libcudnn.so.8
sudo ln -sf libcudnn.so.8 libcudnn.so
sudo ldconfig
#然后会报错,对报错文件执行下面操作即可
sudo mv /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8 /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.org
sudo ldconfig #不再报错
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#报错,查找不到该文件
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
登陆pytorch官网,选择对应版本的pip下载,复制下方代码运行即可!
大功告成!!!