ubuntu 安装多个CUDA版本并可以随时切换

CUDA多版本共存与切换
本文介绍如何在系统中共存多个CUDA版本,并实现实时切换。通过详细步骤指导安装不同版本的CUDA工具包,配置环境变量,以及如何通过修改软链接来轻松切换到所需的CUDA版本。

CUDA是什么就不介绍了,直接讲怎么实现CUDA多版本的共存和实时切换。

1、安装多个版本的CUDA

这里,我们以cuda9-1版本和cuda9-0版本为例(先安装哪个无所谓) 
首先,在cuda版本库中选择自己需要的cuda版本。 
这里写图片描述

然后,选择对应的安装包,这里选择runfile类型的安装文件,以便后面设置每个cuda的安装路径。 
这里写图片描述

下载完成以后,我们利用cd命令,进入到cuda_8.0.61_375.26_linux.run文件所在的目录中,然后运行下面的指令,进行安装(注意这个文件名,前面的cuda_8.0.61代表cuda的版本,后面的375.26代表的对应的NVIDIA驱动的版本,这里我用cuda8.0的安装过程为例,9.0和9.1同理)

安装过程中在建立软链接时需要注意一下,如果你是第一次安装cuda,那么毫无疑问输入y(yes),但是如果你是安装额外版本的cuda,是否选择y(yes)就要看你的具体需求而定,简言之,就是如果你希望启用当前安装的cuda版本,就选y,如果你只是想安装这个版本,而暂时还不想启用该版本时,就选n。

#先执行下面的命令安装相关依赖,
#否则会出现`Missing recommended library`错误
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev 


sudo sh cuda_8.0.61_375.26_linux.run #开始安装

#..一堆协议说明...
#直接按q退出协议说明.
zerozone@zerozone: accept/decline/quit: accept  #接受协议

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

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

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

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

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

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

# ***安装信息***
Installing the CUDA Toolkit in /usr/local/cuda-8.0 ...

Missing recommended library: libXi.so
Missing recommended library: libXmu.so
#注意,这里出现了Missing recommended library错误,
#是因为博主在第一次安装时,没有添加最开始的那条安装相关依赖的指令,
#之后我添加了依赖后,再次安装,就没有Missing错误了

Installing the CUDA Samples in /root ...
Copying samples to /root/NVIDIA_CUDA-8.0_Samples now...
Finished copying samples.

===========
= Summary =
===========
Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-8.0
Samples:  Installed in /root, but missing recommended libraries

Please make sure that
 -   PATH includes /usr/local/cuda-8.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.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-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.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 361.00 is required for CUDA 8.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_6388.log   
# ***安装完成***
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65

配置CUDA相关环境变量 
修改~/.bashrc文件(或~/.zhsrc) 在文件末尾添加环境变量

Tensorflow官方安装历程要求注意的是:配置PATHLD_LIBRARY_PATHCUDA_HOME环境变量.

vim ~/.bashrc #修改配置文件(如果你用的是zsh,则需要修改 ~/.zshrc文件)

#在文件结尾处添加
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

利用同样的方法下载你想安装的另一个版本的cuda工具包(注意是runfile类型),在安装过程中,注意cuda symbol link的选择(首次安装,选y,安装额外的版本,选n)

2、cuda多个版本的切换

在安装了多个cuda版本后,可以在/usr/local/目录下查看自己安装的cuda版本,如下图所示: 
这里写图片描述

这里,cuda-9.0和cuda-9.1就是我们安装的两个cuda版本了,而cuda是一个软链接,它指向我们指定的cuda版本(注意上面在设置环境变量时,使用的是cuda,而不是cuda-9.0和cuda-9.1,这主要是为了方便我们切换cuda版本,可以让我们不用每次都去该环境变量的值)

可以使用stat命令查看当前cuda软链接指向的哪个cuda版本,如下所示: 
这里写图片描述

可以看到,文件类型是symbolic link,而指向的目录正是/usr/local/cuda-9.0,当我们想使用cuda-9.1版本时,只需要删除该软链接,然后重新建立指向cuda-9.1版本的软链接即可(注意名称还是cuda,因为要与bashrc文件里设置的保持一致)

sudo rm -rf cuda
sudo ln -s /usr/local/cuda-9.1 /usr/local/cuda
  • 1
  • 2

想切换其他版本的cuda,只需要改动建立软链接时cdua的正确路径即可

<think>嗯,用户问的是如何在Ubuntu安装和管理多个CUDA版本。这个问题我之前在教程里看到过,记得有几个步骤。首先得确认需要的CUDA版本,然后下载对应的安装包。安装的时候可能得用runfile,因为这样可以多个版本共存。用户提到Ubuntu20.04,这个系统的默认gcc版本可能比较高,安装旧版CUDA可能需要降级gcc或者调整编译器,比如引用[2]里说的更换源链接,可能涉及到gcc版本的问题。安装完成后,每个CUDA版本会放在不同的目录,比如/usr/local/cuda-11.3这样的路径。然后切换版本的话,应该用update-alternatives来管理符号链接,这样可以在不同版本切换。还要设置环境变量,比如PATH和LD_LIBRARY_PATH,确保系统找到正确的CUDA版本。可能还需要注意安装驱动,因为不同CUDA版本可能依赖不同的驱动版本。用户可能遇到的问题包括安装时的依赖错误,或者切换后环境变量没生效。需要提醒用户检查安装日志,确保安装命令有执行权限,比如引用[3]里提到的给.run文件加权限。另外,测试的时候用nvcc --version或者nvidia-smi来确认当前CUDA版本是否正确。可能还需要处理多个项目依赖不同CUDA版本的情况,这时候切换环境变量或者使用容器化技术比如Docker也是一种解决方案。总之步骤大概分为下载安装、配置符号链接、设置环境变量,然后验证版本是否正确。需要按照用户的具体需求分步骤说明,确保他们能一步步操作,避免出错。</think>### Ubuntu多版本CUDA安装切换方法 #### 1. 安装多版本CUDA **步骤1:下载指定版本CUDA** 访问[NVIDIA CUDA Toolkit Archive](https://developer.nvidia.com/cuda-toolkit-archive),根据系统选择对应版本。例如安装CUDA 11.3和CUDA 10.2: - CUDA 11.3:选择`Linux > x86_64 > Ubuntu > 20.04 > runfile (local)`,下载`.run`文件[^1]。 - CUDA 10.2:类似流程选择对应版本。 **步骤2:安装依赖与权限设置** - 若安装版本(如CUDA 9.0),需降级gcc/g++版本Ubuntu 20.04默认gcc-9,需切换为gcc-6)[^2]。 - 赋予安装文件权限: ```bash chmod +x cuda_11.3.0_465.19.01_linux.run # 示例[^3] ``` **步骤3:执行安装** 使用`--toolkit`和`--silent`参数跳过驱动安装(假设已安装NVIDIA驱动): ```bash sudo ./cuda_11.3.0_465.19.01_linux.run --toolkit --silent --override ``` #### 2. 版本切换方法 **方法1:通过符号链接动态切换** 使用`update-alternatives`管理`/usr/local/cuda`符号链接: ```bash # 注册CUDA版本 sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-11.3 100 sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-10.2 50 # 交互式切换 sudo update-alternatives --config cuda ``` **方法2:手动修改环境变量** 在`~/.bashrc`中指定路径: ```bash export PATH=/usr/local/cuda-11.3/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH ``` 执行`source ~/.bashrc`生效。 #### 3. 验证当前CUDA版本 ```bash nvcc --version # 查看编译器版本 nvidia-smi # 显示驱动和运行时版本(可能不一致) cat /usr/local/cuda/version.txt # 查看符号链接指向的版本 ``` #### 4. 常见问题 - **驱动兼容性**:CUDA版本需与NVIDIA驱动版本匹配,可通过`nvidia-smi`查询支持的最高CUDA版本。 - **环境冲突**:若切换版本未生效,检查`PATH`是否被其他配置覆盖。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值