Linux安装多个版本的CUDA,以及不同版本CUDA之间的切换使用(不同虚拟环境使用不同CUDA版本)
Linux安装多个版本的CUDA,以及不同版本CUDA之间的切换使用(不同虚拟环境使用不同CUDA版本)
·
业精于勤荒于嬉
行成于思毁于随
昨天部署项目遇到错误
OSError: libcusparse.so.11: cannot open shared object file: No such file or directory
尝试了很多种方法,最终发现是原来装的/usr/local/CUDA-11.4中只有target文件夹,因此需要重新装。同时,有多个项目需要部署,它们用的是不同的CUDA,所以需要安装多个版本并切换。
CUDA安装
不同版本CUDA的安装包
https://developer.nvidia.com/cuda-toolkit-archive
- 本文安装CUDA-11.1以及CUDA10.0
- 安装过程中,会问你是否需要下载驱动(Drive),正常情况下请不要下载,即选择否
- 默认安装目录是
/usr/local/
,后面会多次提到 vi ~/.bashrc
末端加上配置信息
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
- 注意:上面的
/usr/local/cuda
是一个软连接,去usr/local/cuda
一看便知,后面的不同版本CUDA切换会与之有关 source ~/.bashrc
使之生效nvcc -V
查看CUDA版本信息
root@Tower:~# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Oct_12_20:09:46_PDT_2020
Cuda compilation tools, release 11.1, V11.1.105
Build cuda_11.1.TC455_06.29190527_0
- 测试是否成功安装,运行以下代码结束后显示“Result = PASS”即为成功安装
cd /usr/local/cuda-11.1/samples/1_Utilities/deviceQuery
make
./deviceQuery
不同版本CUDNN和CUDA的对应关系
https://developer.nvidia.com/rdp/cudnn-archive
- 请选择CUDA对应的CUDNN
- 下载前需要注册、登陆,可能出现“安全挑战”页面反复循环,也收不到确认邮件,无法登陆… 可以求助周围的人帮忙登陆下载,确实很玄学,有的人登陆很快
- 由于不同CUDA需要安装对应的CUDNN,下面演示CUDA-11.1的安装,CUDA-10.0安装同理
- 将下载完成的CUDNN解压
tar -zxvf cudnn-11.3-linux-x64-v8.2.1.32.tgz
- 将解压后的cuda文件夹内文件复制到
/usr/local/cuda-11.1/
对应文件夹中,修改其权限
sudo cp cuda/include/* /usr/local/cuda-11.1/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.1/lib64/
sudo chmod a+r /usr/local/cuda-11.1/include/cudnn.h
sudo chmod a+r /usr/local/cuda-11.1/lib64/libcudnn*
- 安装好的CUDNN版本可以在
/usr/local/cuda-11.1/include
中的cudnn_version.h文件中查看,本文演示的版本为8.2.1、
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 2
#define CUDNN_PATCHLEVEL 1
不同版本CUDA之间的切换使用(不同虚拟环境使用不同CUDA版本)
去/usr/local
目录下可以看到软连接
lrwxrwxrwx 1 root root 20 7月 8 22:27 cuda -> /usr/local/cuda-11.1/
drwxr-xr-x 19 root root 4096 7月 8 21:59 cuda-10.0/
drwxr-xr-x 16 root root 4096 7月 8 17:05 cuda-11.1/
此时,系统使用的CUDA版本为11.1,如下所示:
root@Tower:/usr/local# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Oct_12_20:09:46_PDT_2020
Cuda compilation tools, release 11.1, V11.1.105
Build cuda_11.1.TC455_06.29190527_0
想要更改为CUDA-10.0,将软链接cuda重新链接到cuda-10.0即可
root@Tower:/usr/local# ln -snf /usr/local/cuda-10.0 /usr/local/cuda
重新运行nvcc -V
命令,即可发现CUDA版本已切换
root@Tower:/usr/local# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130
更多推荐
已为社区贡献2条内容
所有评论(0)