Ubuntu22.04多CDUA切换设置

搭建深度学习环境的时候经常需要多CUDA的环境,对于ubuntu22.04来讲,高低版本切换:

1)首先需要安装不同版本的CUDA和对应的CUDNN

2)然后要做到不同版本的切换

1 安装不同版本的CUDA

1.1 安装12.X CUDA

TO DO

1.2 安装10.X CUDA

1.2.1 低版本gcc安装

参考:Ubuntu 22.04 gcc降级及安装cuda 10.1

查看gcc版本,如果比较高。gcc 降级

bash 复制代码
gcc --version
1)添加软件源

Ubuntu22.04 自带的软件源无法成功安装低版本的gcc,首先需要手动添加软件源

使用以下命令打开配置文件

bash 复制代码
 sudo vim /etc/apt/sources.list

或者直接用文本编辑器打开也可以。

将以下源添加到文件末尾:

bash 复制代码
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe

添加完成后,使用ESC保持在命令行模式,然后输入:wq保存并退出

2)更新软件源
bash 复制代码
sudo apt update

此时可能出现"由于没有公钥,无法验证下列签名的错误"

bash 复制代码
错误:http://dk.archive.ubuntu.com/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名:
NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

根据报错信息"NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32"导入对应公钥

bash 复制代码
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

再次执行

bash 复制代码
sudo apt update
3)安装gcc-7
bash 复制代码
sudo apt-get install gcc-7

此时可能出现以下错误

bash 复制代码
没有可用的软件包 gcc-7,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到

E: 软件包 gcc-7 没有可安装候选

这是因为ubuntu22.04只支持gcc11以上的版本,并且gcc7的软件源不在package中,因此再在source.list添加源,方法如下

bash 复制代码
sudo vim /etc/apt/sources.list 

再将源填写到最后一行

bash 复制代码
deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe

不要忘了

bash 复制代码
sudo apt update

再次安装 gcc-7

bash 复制代码
sudo apt-get install gcc-7
4)更换gcc版本

查看当前Ubuntu系统中的所有 gcc 编译器版本,

bash 复制代码
ls /usr/bin/gcc*

会看到gcc-7版本的编译器在里面

执行如下代码更换gcc优先级

bash 复制代码
sudo update-alternatives  --install /usr/bin/gcc gcc /usr/bin/gcc-7 2  # 将 gcc 11的优先级设为 1
sudo update-alternatives  --install /usr/bin/gcc gcc /usr/bin/gcc-11 1

再次查看gcc版本:

1.2.12 安装10.x CUDA

TO DO

2 版本切换

参考连接:
https://zhuanlan.zhihu.com/p/676119739

2.1 查看CUDA版本

首先要知道自己安装了多少个CUDA,在/usr/local下可以查看

查看当前在使用的cuda :

bash 复制代码
nvcc -V

2.2 修改环境变量

从终端输入

bash 复制代码
sudo gedit ~/.bashrc 

打开这个文件,打开以后滑到末尾,

配置cuda的环境路径:

bash 复制代码
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

点击保存。在终端输入

bash 复制代码
source ~/.bashrc 

更新后,新设置的环境变量才能生效。

2.3 修改CUDA

在终端输入:

bash 复制代码
sudo rm -rf /usr/local/cuda #删除之前创建的软链接
sudo ln -s /usr/local/cuda-10.2 /usr/local/cuda #创建链接到cuda10.2的软链接

查看当前使用的cuda

bash 复制代码
nvcc -V

显示10.2 切换成功,需要那个版本的CUDA,就切换到哪个版本的CUDA

相关推荐
灰灰勇闯IT几秒前
神经网络的基石——深度解析 CANN ops-nn 算子库如何赋能昇腾 AI
人工智能·深度学习·神经网络
深蓝电商API8 分钟前
住宅代理与数据中心代理在爬虫中的选择
爬虫·python
deephub10 分钟前
LLM推理时计算技术详解:四种提升大模型推理能力的方法
人工智能·深度学习·大语言模型·推理时计算
chian-ocean14 分钟前
智能多模态助手实战:基于 `ops-transformer` 与开源 LLM 构建 LLaVA 风格推理引擎
深度学习·开源·transformer
慢半拍iii21 分钟前
对比源码解读:ops-nn中卷积算子的硬件加速实现原理
人工智能·深度学习·ai·cann
一枕眠秋雨>o<26 分钟前
深度解读 CANN ops-nn:昇腾 AI 神经网络算子库的核心引擎
人工智能·深度学习·神经网络
算法狗229 分钟前
大模型面试题:混合精度训练的缺点是什么
人工智能·深度学习·机器学习·语言模型
熊文豪43 分钟前
从零开始:基于CANN ops-transformer的自定义算子开发指南
人工智能·深度学习·transformer·cann
chian-ocean1 小时前
视觉新范式:基于 `ops-transformer` 的 Vision Transformer 高效部署
人工智能·深度学习·transformer
历程里程碑1 小时前
普通数组----合并区间
java·数据结构·python·算法·leetcode·职场和发展·tornado