cuda、cudnn 可以直接用安装包进行安装,此时安装的 cuda、cudnn 在anaconda的所有环境中都可以调用。然后在anaconda的虚拟环境中也是可以直接conda install安装,但是在虚拟环境中安装的cuda、cudnn只能在该虚拟环境中调用。
注意:cuda9.0必须要Nivdia 384及以上才可以正常安装,如果不满足版本要求或没有安装英伟达驱动,则需要重新安装驱动。
查看当前服务器上已经安装的cuda、cudnn版本
查看cuda版本:
如果没安装nvcc:cat /usr/local/cuda/version.txt
安装了nvcc:nvcc -V
注意:如果在terminal中输入nvcc -V,提示找不到command。提示你 sudo apt-get install nvidia-cuda-toolkit。千万不要这样做!!!!这样做会重新安一套其他版本的cuda,就全乱掉了根本不兼容,千万不要手贱!!!如果手贱运行了这一行,参考解决办法:
1.使用sudo apt-get autoremove nvidia-cuda-toolkit 卸载这个命令安装的这个版本
2.查看/usr/local/cuda/bin下是否有nvcc可执行程序,如果没有说明cuda没有正常安装,需要重新安装,如果有,进入下一步
3.添加环境变量,打开~/.bashrc ,添加环境变量export PATH=$PATH:/usr/local/cuda/bin
4.再在terminal中输入nvcc --version可以看到已经可以显示为8.0版本了
查看cudnn版本:
安装了cudnn:cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
查看虚拟环境中安装的cuda和cudnn版本(通过导入pytorch进行验证):
import torch
print(torch.version.cuda)
# 9.0.176
print(torch.backends.cudnn.version())
# 7301
若服务器上已安装到版本不满足要求,可以先卸载当前版本,然后安装新版本。目前不确定是否可以同时安装多个版本的cuda、cudnn,应该是可以的,但是需要反复修改环境变量。
卸载用安装包安装的cuda、cudnn
卸载cuda(两种方式 uninstall_cuda_10.0.pl 或 cuda-uninstaller,需根据cuda版本决定):
sudo /usr/local/cuda-10.0/bin/uninstall_cuda_10.0.pl
或
sudo /usr/local/cuda-10.1/bin//cuda-uninstaller
然后删除cuda的目录,注意cuda版本
sudo rm -rf /usr/local/cuda-10.0/
卸载cudnn(如果cuda已经卸载并删除了目录,该步骤可以跳过)
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
卸载conda虚拟环境中安装的cuda、cudnn
conda uninstall cudatoolkit
conda uninstall cudnn
用安装包进行安装
下载安装包
cuda下载地址: https://developer.nvidia.cn/cuda-toolkit-archive
cudnn下载地址: https://developer.nvidia.com/rdp/cudnn-archive
cudnn下载需要注册账户并登陆才行
安装cuda
将所有的安装包都拷贝到服务器上,然后按照下面步骤安装cuda
需要注意下面,选择不安装英伟达驱动
sudo sh cuda_10.0.130_410.48_linux.run --no-opengl-libs
安装完成后,环境变量修改(注意cuda的版本)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
export PATH=$PATH:/usr/local/cuda-10.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0
安装完成后,通过上面查看cuda版本的命令查看版本
安装cudnn
将cudnn压缩包传到服务器,如cudnn-11.0-linux-x64-v8.0.5.39.tgz,然后解压 tar zxvf cudnn-11.0-linux-x64-v8.0.5.39.tgz,输出一个名称是cuda的目录,目录下有三个内容“include”、“lib64”、
“NVIDIA_SLA_cuDNN_Support.txt”。其中“NVIDIA_SLA_cuDNN_Support.txt”是不需要的。
sudo cp include/* /usr/local/cuda/include/
sudo cp lib64/* /usr/local/cuda/lib64/
sudo chmod a+x /usr/local/cuda/include/cudnn.h
sudo chmod a+x /usr/local/cuda/lib64/libcudnn*
安装完成后,通过上面查看cudnn版本的命令查看版本
conda虚拟环境安装
使用conda在虚拟环境中安装cuda和cudnn,可以保证不影响系统默认环境的cuda和cudnn。conda的默认源速度慢且没有cuda版本,因此需要添加国内清华或者中科大的源,如下:
conda config --add channels Index of /anaconda/pkgs/free/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
conda config --add channels Index of /anaconda/pkgs/main/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
conda config --add channels Index of /anaconda/cloud/pytorch/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
conda config --set show_channel_urls yes
注意:在conda虚拟环境下安装cuda和cudnn,很多人会设置镜像源为清华源,阿里源等。但这些源并不是包含所有的版本,需要以下命令确认所支持的版本:
conda search cuda
conda search cudnn
安装cuda
以安装 cuda11.0 为例
conda install cudatoolkit=11.0 -c Index of /anaconda/pkgs/free/linux-64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
安装cudnn
以安装 cudnn7.1.2 为例
conda install cudnn=7.1.2 -c Index of /anaconda/pkgs/main/linux-64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
sudo chmod a+x /root/anaconda3/envs/r3det/include/cudnn.h
sudo chmod a+x /root/anaconda3/envs/r3det/lib/libcudnn*
虚拟环境中手动安装cuda和cudnn
通过conda安装cuda和cudnn,有的时候找不到对应的cuda版本和对应的cudnn版本,所以类似用安装包安装cuda和cudnn,可以下载cuda和cudnn的安装包,然后在对应的虚拟环境中用conda install安装cuda,手动将cudnn的文件复制到虚拟环境对应的位置就可以了。
查看虚拟环境中cuda和cudnn安装的位置:【conda虚拟环境安装CUDA路径】_一苇以航丶的博客-CSDN博客_conda 安装cuda