在Linux中重新安装CUDA和cnDNN,同样适用于类似Featurize云平台更换到指定的CUDA版本,例如CUDA11.1
在使用云平台的时候,很多环境都是预装好的,像python、torch、CUDA等等。但是有些时候想要去复现别人的代码,或者重新跑别人的代码,需要一个被指定的环境。
有一部分学者给出了直接使用Conda命令去安装CUDA,但是有个致命的问题是,对于不同的源,CUDA的版本不全,有些时候没有给你需要的那个版本的CUDA。
首先要确定自己的系统版本,以便去NVIDIA官网下载指定的驱动。
cat /proc/version
# 这里我的输出结果如下
Linux version 5.4.0-91-generic (buildd@lcy01-amd64-017) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #102-Ubuntu SMP Fri Nov 5 16:31:28 UTC 2021
然后去NVIDIA官网选择对应于你的系统版本的CUDA安装网址,这里以CUDA11.1为例
这里采用.run文件的方式安装。
wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run
sudo sh cuda_11.1.0_455.23.05_linux.run
执行完sudo行的命令,CUDA会进行安装准备。
然后在终端会出现可视化界面进行安装选项。
这里面关注两个地方,如果你在设备上已经有CUDA了,那么不需要你再次安装 driver,也就是安装选项中第一个部分Driver前面的[x]要取消勾选。
第二个地方在于CUDA toolkit的安装路径,请勿安装在一个你没有权限访问的路径下,因为在安装cndnn时需要复制你的文件到CUDA的目录下。
安装完成后需要配置环境变量
在zsh环境中(目前大部分使用zsh更稳定),需要在终端执行:
vi ~/.zshrc
# 然后按着下键,直到文件低端,按“i”键进行编辑,在最后加入三个环境变量。
# 其中/home/featurize/data/为你的CUDA安装路径,例如xx/xx/xx/CUDA-11.1
export PATH="/home/featurize/data/bin:$PATH"
export LD_LIBRARY_PATH="/home/featurize/data/lib64:$LD_LIBRARY_PATH"
export LIBRARY_PATH="/home/featurize/data/lib64:$LIBRARY_PATH"
然后需要去NVIDIA官网下载匹配的cnDNN文件,上传到你的环境中,可以是.tar文件,直接选择下载对Linux版本的cnDNN即可。
# 解压文件 XXX为你的文件名
tar -xvf XXX.tar
然后执行cp指令,从解压出的文件覆盖到CUDA的安装目录下:
# 请务必将其中路径换做你自己的路径,左边为cnDNN的文件,右边为CUDA的文件
sudo cp data/cuda/include/cudnn.h CUDA/include
sudo cp data/cuda/lib64/libcudnn* CUDA/lib64
sudo chmod a+r CUDA/include/cudnn.h CUDA/lib64/libcudnn*
请注意,有些时候环境变量的设置并不是立即生效或者对全部环境立即生效,此时需要重启设备或者终端,以防出现找不到CUDA的文件的错误。
个人博客:https://kecilimu-notion.vercel.app/
个人邮箱:kecilimu@163.com
转载请务必注明出处
文章封面是利兹与青鸟,但是忘记作者了