在Ubuntu16.0.4 多个版本CUDA共存,并且随意切换

本文详述在Ubuntu系统中实现CUDA多个版本的共存与灵活切换的方法,包括CUDA的安装、配置环境变量、安装CUDNN及验证安装是否成功。同时,介绍了如何通过修改软链接和环境变量实现不同CUDA版本间的无缝切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

另一篇文章传送:Ubuntu16.04 安装显卡驱动+cuda8.0+cudnn-v6+opecv2.4.13+caffe_ytusdc的博客-CSDN博客

在配置caffe和tensflow 时,往往需要的CUDA版本不一样,这就需要多个版本的CUDA共存,并且能够随意切换,免去了每次重新安装配置cuda的过程。

cuda_8.0.61_375.26_linux.run   文件名说明

前面的cuda_8.0.61代表cuda的版本,后面的375.26代表的对应的NVIDIA驱动的版本

1、安装CUDA

第二次安装CUDA跟第一次稍微不同:

Do you want to install a symbolic link at /usr/local/cuda? 

(y)es/(n)o/(q)uit: n

第二次按照此处最好选择n, 看下面的解释

#..一堆协议说明...
#直接按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: n #添加链接**注意这个链接,如果你之前安装过另一个版本的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   
# ***安装完成***

安装完成后如下图所示:

解释:
cuda ----是软链接,指向的是cuda-8.0,因此对cuda的操作实际上就是对cuda-8.0文件夹的操作,
下面的操作中的*/cuda-8.0/* 等操作其实可以换成 /cuda/
cuda-8.0 --是cuda实际安装的文件(认为本次按照的是cuda-8.0)

cuda-9.0 ---是安装的第二个版本的CUDA
 

2、cuda安装后的配置

安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部:

本文以cuda8.0做示例

注意:环境变量写入的是想要使用的cuda版本所在的文件夹,根据需要更改

sudo gedit ~/.bashrc  #打开~/.bashrc文件

#####将以下内容写入到~/.bashrc尾部 #####
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

source ~/.bashrc   #source ~/.bashrc

 测试cuda的Samples,验证是否安装成功

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make    //该命令首次执行即可
sudo ./deviceQuery

cuda的卸载

sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl

sudo rm -r /usr/local/cuda-8.0 #运行完成之后,使用下面的命令删除残余

3、CUDNN的安装

同样以cuda-8.0示例

cd cuda/include/ 
sudo cp cudnn.h /usr/local/cuda-8.0/include/  #复制头文件 
cd ../lib64    #打开lib64目录 
sudo cp lib* /usr/local/cuda-8.0/lib64/    #复制库文件 
sudo chmod a+r /usr/local/cuda-8.0/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*    #给所有用户增加这些文件的读权限 

建立软连接(这一步慎重安装)

(注意, 最新版本的cudnn 安装好像不用建立软连接了,上面的过程执行完就可以, 来回配置麻烦,不想配置了, 以后有机会去验证呢)
在终端输入()

cd /usr/local/cuda-8.0/lib64/     #进入到lib64目录进行操做
sudo rm -rf libcudnn.so libcudnn.so.6 #删除原有动态文件
sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6 #生成软衔接
sudo ln -s libcudnn.so.6 libcudnn.so #生成软链接

注意此处的 libcudnn.so.6.0.21、libcudnn.so.6 都是根据cudnn解压之后的文件定的,我用的是cudnn-8.0-linux-x64-v6 的所以此处是libcudnn.so.6.0.21、libcudnn.so.6

安装完成后可用 nvcc -V命令验证是否安装成功

4、CUDA多个版本切换

到/usr/local/ 目录下使用stat命令查看当前cuda软链接指向的哪个cuda版本,如下所示:

stat /usr/local/cuda

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

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

注意:修改完成之后,记住要修改文件 ~/.bashrc 中的相关路径,然后使用 stat cuda 和 nvcc -V 命令查看cuda版本,确定两个命令都指向同一个cuda版本才证明切换成功

cuda版本查看:

cat /usr/local/cuda/version.txt  #方法1
nvcc -V                          #方法2

cudnn版本查看

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

如图所示cudnn版本就是 7.4.2

参考文章:在ubuntu上安装多个版本的CUDA,并且可以随时切换_ZeroZone零域的博客-CSDN博客_多版本cuda

### 如何在 Ubuntu 16.04 上安 VMware #### 虚拟机环境准备 为了在 Ubuntu 16.04 上成功运行 VMware 工具,首先需要确保虚拟机已正确配置并启动。这通常涉及下载并安 VMware Workstation 或其他兼容的虚拟化平台[^1]。 #### 下载 VMware Tools VMware 提供了一个工具集(称为 VMware Tools),用于增强客户操作系统与主机之间的交互体验。对于 Ubuntu 16.04 用户来说,在虚拟机设置完成后,可以通过以下方式获取 VMware Tools 的安文件: - 在 VMware 主界面顶部导航栏找到 **“虚拟机”** -> **“安 VMware Tools”**[^3]。 此操作会挂载一个 ISO 文件至虚拟机内部,其中包含了必要的驱动程序和实用程序。 #### 解压与编译 VMware Tools 一旦确认 VMware Tools 可用,则需按照下列指导完成其部署过程: 1. 打开终端窗口; 2. 切换到超级用户模式以便拥有足够的权限执行命令: ```bash sudo su ``` 3. 进入挂载点 `/mnt` 并复制 tarball 至家目录或其他合适位置: ```bash cp /mnt/VMwareTools*.tar.gz ~/ ``` 4. 返回用户的主目录解压该存档文件: ```bash cd ~ && tar zxpf VMwareTools*.tar.gz ``` 5. 移动到刚刚创建出来的临时工作区继续下一步骤: ```bash cd vmware-tools-distrib ./vmware-install.pl -d ``` 以上脚本将会自动检测当前系统的状态,并尝试构建适合于特定硬件架构的支持模块[^3]。 需要注意的是,尽管官方文档推荐安完整的 VMware Tools 套件来获得最佳性能表现;然而也有观点认为仅依靠开源项目 `open-vm-tools` 就足以满足大多数日常需求而无需额外加载闭源组件[^4]。 因此如果遇到任何依赖关系错误或者内核不匹配等问题时,可以考虑直接从默认仓库安简化版替代方案——即 apt-get install open-vm-tools-desktop ——它同样能够提供诸如时间同步、拖放支持等功能特性却省去了繁琐的手工干预环节。 ```bash sudo apt update sudo apt install open-vm-tools-desktop fuse ``` 这样既保证了基础功能可用性又减少了维护成本。 --- ### 注意事项 某些情况下可能会发现选项被禁用了比如灰色不可选的状态,这时候可能是因为缺少相应的许可权或者是由于先前未完全卸除旧版本残留数据所引起的问题。针对前者只需重新登录管理员身份即可解决;而对于后者则建议先彻底清理再重试整个流程直至成功为止[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值