安装cuda的时候,要注意cuda和显卡的算力匹配问题,30系列的显卡只支持cuda11.x,所以要先确认自己的显卡能不能安装cuda10.x。
引言
ubuntu22.04支持cuda10.7以上的版本,而在一些情况下我们需要用到低级的cuda版本,本文以用ubuntu22.04安装cuda10.1为例。而在ubuntu中最主要的是gcc的变化,我们需要7.5+的gcc,而一般情况下ubuntu22.04只有gcc 11和gcc 12,本文首先教大家如何对gcc进行降级。
查看gcc版本,为gcc 11
gcc --version
gcc 降级
参考Ubuntu22.04安装CUDA10.1,感谢大佬
添加软件源
Ubuntu22.04 自带的软件源无法成功安装低版本的gcc,首先需要手动添加软件源
使用以下命令打开配置文件
sudo vim /etc/apt/sources.list
将以下源添加到文件末尾
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe
添加完成后,使用ESC
保持在命令行模式,然后输入:wq
保存并退出
更新软件源
sudo apt update
此时可能出现“由于没有公钥,无法验证下列签名的错误”
错误:http://dk.archive.ubuntu.com/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名:
NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
根据报错信息“NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32”导入对应公钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
再次执行
sudo apt update
安装gcc-7
sudo apt-get install gcc-7
此时可能出现以下错误
没有可用的软件包 g++-7,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
没有可用的软件包 gcc-7,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
E: 软件包 gcc-7 没有可安装候选
E: 软件包 g++-7 没有可安装候选
这是因为ubuntu22.04只支持gcc11以上的版本,并且gcc7的软件源不在package中,因此再在source.list添加源,方法如下
sudo vim /etc/apt/sources.list
再将源填写到最后一行
deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe
再次安装 gcc-7
sudo apt-get install gcc-7
更换gcc版本
查看当前Ubuntu系统中的所有 gcc 编译器版本,
ls /usr/bin/gcc*
会看到gcc-7版本的编译器在里面
执行如下代码更换gcc优先级
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版本,检查是否替换到gcc-7。
gcc --version
降级成功