欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

ubuntu18.04 安装多版本cuda(原9.0,新安装10.0),并随时切换使用

程序员文章站 2022-05-04 12:22:26
1. 下载cuda10.0链接: https://developer.nvidia.com/cuda-toolkit-archive选择要安装的版本,注意是runfile类型。2.安装cuda10.0我下载的是cuda_10.0.130_410.48_linux.run,下载好后进入到cuda_10.0.130_410.48_linux.run 的目录,执行下面两条命令安装:sudo chmod +x cuda_10.0.130_410.48_linux.run # 为 cuda添加可执行权...

1. 下载cuda10.0

链接: https://developer.nvidia.com/cuda-toolkit-archive
选择要安装的版本,注意是runfile类型。
ubuntu18.04 安装多版本cuda(原9.0,新安装10.0),并随时切换使用
ubuntu18.04 安装多版本cuda(原9.0,新安装10.0),并随时切换使用

2.安装cuda10.0

我下载的是cuda_10.0.130_410.48_linux.run,下载好后进入到cuda_10.0.130_410.48_linux.run 的目录,执行下面两条命令安装:

sudo chmod +x cuda_10.0.130_410.48_linux.run  # 为 cuda添加可执行权限
sudo ./cuda_10.0.130_410.48_linux.run  # 安装

接下来会出现协议说明,可以直接按q退出协议说明

Do you accept the previously read EULA?
accept/decline/quit: accept  # 接受协议

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
(y)es/(n)o/(q)uit: n  # 是否安装显卡驱动包,由于已经安装显卡驱动,选择n

Install the CUDA 10.0 Toolkit?
(y)es/(n)o/(q)uit: y  # 是否安装工具包,选择y

Enter Toolkit Location
 [ default is /usr/local/cuda-10.0 ]:   # 工具包安装地址,默认回车即可

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: n  # 如果之前安装过另一个版本的cuda,除非你确定想要用这个新版本的cuda,否则这里就建议选n,因为指定该链接后会将cuda指向这个新的版本

Install the CUDA 10.0 Samples?
(y)es/(n)o/(q)uit: y  # 安装样例

Enter CUDA Samples Location
 [ default is /home/jiaoda ]:   # 样例安装地址默认即可

Installing the CUDA Toolkit in /usr/local/cuda-10.0 ...
Missing recommended library: libGLU.so
Missing recommended library: libXmu.so
Missing recommended library: libGL.so

Installing the CUDA Samples in /home/jiaoda ...
Copying samples to /home/jiaoda/NVIDIA_CUDA-10.0_Samples now...
Finished copying samples.

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-10.0
Samples:  Installed in /home/jiaoda, but missing recommended libraries

Please make sure that
 -   PATH includes /usr/local/cuda-10.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-10.0/lib64, or, add /usr/local/cuda-10.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-10.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-10.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 10.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run -silent -driver

Logfile is /tmp/cuda_install_6090.log
# ***安装完成***

3. cuda环境设置

终端首先输入

gedit ~/.bashrc

在打开的 .bashrc末尾添加环境变量

export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda

注意上面的路径都是指向/usr/local/cuda 软连接,并没有写死指向某一个cuda版本,后面切换时不用改路径了,只改软连接指向就可以了。

保存关闭后,执行下面命令,使之立即生效

source ~/.bashrc

另一种vim方式设置环境变量:

vim ~/.bashrc # 修改配置文件

#在结尾处添加
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda

source ~/.bashrc # 让更改生效

4. cuda版本切换

到/usr/local/目录下打开终端

sudo rm -rf cuda             #删除之前的软链接(原本指向9.0)
sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda  #生成新的软链接,指向10.0

以下四行命令均可以查看当前cuda软链接指向的哪个cuda版本

stat cuda  # stat /usr/local/cuda 
cat  /usr/local/cuda/version.txt
nvcc --version
nvcc -V 
ls -al  # 在/usr/local目录下查看

ubuntu18.04 安装多版本cuda(原9.0,新安装10.0),并随时切换使用当我们想使用cuda-9.0版本时,只需要删除上面的软链接,然后重新建立指向cuda-9.0版本的软链接即可。

sudo rm -rf cuda
sudo ln -s /usr/local/cuda-9.0 /usr/local/cuda

可能遇到的问题

1. nvcc -V显示有误

已经切换到了cuda10.0,用stat cuda查看正常,但用nvcc -V 查看的时候仍然显示9.0版本。可能原因是nvcc默认是你以前deb安装时候其他版本的,所以就算操作按上面一步步来,nvcc –V结果还是没变。所以我们可以找到nvcc位置,然后创建/usr/local/cuda/bin/nvcc软链接到原先nvcc位置,操作如下:

which nvcc  # 找到nvcc位置,我的在/usr/local/cuda-9.0/bin/nvcc
sudo ln -s /usr/local/cuda/bin/nvcc /usr/local/cuda-9.0/bin/nvcc # 创建软链接链接到当前cuda的nvcc
nvcc -V # 显示当前cuda版本

在创建软连接时可能还会遇到这个问题,显示ln: 无法创建符号链接’/usr/local/cuda-9.0/bin/nvcc’: 文件已存在
此时,可以把cuda9.0/bin下的nvcc备份一下,然后删除重新创建软连接。

sudo rm -f nvcc  # 在/usr/local/cuda-9.0/bin下删除

最终成功显示啦!
ubuntu18.04 安装多版本cuda(原9.0,新安装10.0),并随时切换使用

2. nvcc -V找不到
nvcc -V  # 出现以下提示

Command 'nvcc' not found, but can be installed with:

sudo apt install nvidia-cuda-toolkit

可能是cuda 装好了,但是 nvcc 所在路径没有加入系统路径中,所以系统找不到 nvcc 。如果cuda 安装好了, nvcc 程序应该在路径 /usr/local/cuda/bin 中,可以直接在该路径下执行:

./nvcc -V

出现了!
ubuntu18.04 安装多版本cuda(原9.0,新安装10.0),并随时切换使用
神奇的是重新终端输入nvcc -V也能成功显示了!

安装cudnn

链接: https://developer.nvidia.com/rdp/cudnn-download
需要注册后登陆下载,我选择的是7.6.5。
下载这个:cuDNN Library for Linux
ubuntu18.04 安装多版本cuda(原9.0,新安装10.0),并随时切换使用下载好后直接解压,得到文件夹 cuda,然后复制lib64和include文件夹到usr/local/cuda-10.0,更改权限,安装完成。命令如下:

sudo cp cuda/include/cudnn.h /usr/local/cuda-10.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64
sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h /usr/local/cuda-10.0/lib64/libcudnn*

确认是否成功安装

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

下图所示安装成功!
ubuntu18.04 安装多版本cuda(原9.0,新安装10.0),并随时切换使用
切换cuda时,相应的cudnn也改变了。
ubuntu18.04 安装多版本cuda(原9.0,新安装10.0),并随时切换使用

参考博文:
链接: https://blog.csdn.net/tunhuzhuang1836/article/details/79545625
链接: https://blog.csdn.net/weixin_43915860/article/details/103191748?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

本文地址:https://blog.csdn.net/qq_45057749/article/details/107320354