cuda安装、gcc多版本兼容安装切换

安装cuda开发库之后,使用gcc编译会可能会报错要求gcc版本,如下表

CUDA versionmax supported GCC version
11.1, 11.2, 11.310
119
10.1, 10.28
9.2, 10.07
9.0, 9.16
85.3
74.9
5.5, 64.8
4.2, 54.6
4.14.5
4.04.4

目前系统为ubuntu21.04,gcc 10.3,安装cuda 11.3后编译cuda samples会报错,例如 chrono模块、gcc版本过高等提示。

多版本gcc共存、随时切换
第一步,先使用命令 sudo apt install gcc-7 g++-7 安装 gcc 7.5,成功安装后可以在/user/bin/下看到两个版本:

ubuntu@ubuntu:~$ ls -l /usr/bin/gcc*
lrwxrwxrwx 1 root root 21 Oct 27 02:26 /usr/bin/gcc -> /etc/alternatives/gcc
lrwxrwxrwx 1 root root 23 Apr  8  2021 /usr/bin/gcc-10 -> x86_64-linux-gnu-gcc-10
lrwxrwxrwx 1 root root 22 Nov 26  2020 /usr/bin/gcc-7 -> x86_64-linux-gnu-gcc-7
lrwxrwxrwx 1 root root  9 Apr 12  2021 /usr/bin/gcc-ar -> gcc-ar-10
lrwxrwxrwx 1 root root 26 Apr  8  2021 /usr/bin/gcc-ar-10 -> x86_64-linux-gnu-gcc-ar-10
lrwxrwxrwx 1 root root 25 Nov 26  2020 /usr/bin/gcc-ar-7 -> x86_64-linux-gnu-gcc-ar-7
lrwxrwxrwx 1 root root  9 Apr 12  2021 /usr/bin/gcc-nm -> gcc-nm-10
lrwxrwxrwx 1 root root 26 Apr  8  2021 /usr/bin/gcc-nm-10 -> x86_64-linux-gnu-gcc-nm-10
lrwxrwxrwx 1 root root 25 Nov 26  2020 /usr/bin/gcc-nm-7 -> x86_64-linux-gnu-gcc-nm-7
lrwxrwxrwx 1 root root 13 Apr 12  2021 /usr/bin/gcc-ranlib -> gcc-ranlib-10
lrwxrwxrwx 1 root root 30 Apr  8  2021 /usr/bin/gcc-ranlib-10 -> x86_64-linux-gnu-gcc-ranlib-10
lrwxrwxrwx 1 root root 29 Nov 26  2020 /usr/bin/gcc-ranlib-7 -> x86_64-linux-gnu-gcc-ranlib-7

第二步,配置gcc版本的优先级,默认使用的gcc版本为优先级最高的。设置gcc 10优先级为100,设置gcc 7优先级为70。那么默认使用gcc10。

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 --slave /usr/bin/gcov gcov /usr/bin/gcov-10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7 --slave /usr/bin/gcov gcov /usr/bin/gcov-7

第三步,切换需要的gcc版本,命令为sudo update-alternatives --config gcc,默认是0选项。输入需要的gcc版本序号后,即可成功切换。

There are 2 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-10   100       auto mode
  1            /usr/bin/gcc-10   100       manual mode
  2            /usr/bin/gcc-7    70        manual mode

Press <enter> to keep the current choice[*], or type selection number:
### 安装 CUDAGCC #### 准备工作 为了确保顺利安装 CUDA 10.0 及其依赖项,在 Ubuntu 22.04 中需要先解决 GCC 版本不兼容的问题。由于默认情况下,Ubuntu 22.04 使用的是较新的 GCC (版本 11.*) 而 CUDA 10.0 需要 GCC 7.x[^1]。 #### 卸载现有 GCC安装指定版本 卸载当前系统的 GCC 编译器并安装所需版本: ```bash sudo apt-get remove gcc g++ sudo apt install gcc-7 g++-7 ``` 设置默认使用的编译器为新安装GCC 7: ```bash sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 \ --slave /usr/bin/g++ g++ /usr/bin/g++-7 ``` 验证安装成功与否可以通过命令 `gcc --version` 来确认已切换至所需的 GCC 版本。 #### 下载与配置 CUDA Toolkit 前往 NVIDIA 官方网站下载适用于 LinuxCUDA 10.0 Installer,并按照官方文档中的说明完成安装过程。注意选择适合的操作系统架构以及驱动程序版本。 执行如下命令以添加环境变量(假设安装目录为 `/usr/local/cuda-10.0`),这一步骤对于后续开发至关重要: ```bash echo &#39;export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}&#39; >> ~/.bashrc echo &#39;export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}&#39; >> ~/.bashrc source ~/.bashrc ``` #### 测试安装成果 通过编写简单的 Hello World 程序测试 GPU 是否能够正常调用 CUDA API 进行计算任务处理。 ```cpp #include <stdio.h> __global__ void helloFromGPU() { printf("Hello from GPU!\n"); } int main(){ printf("Hello from CPU\n"); helloFromGPU<<<1, 1>>>(); cudaDeviceSynchronize(); } ``` 保存上述代码片段到 `.cu` 文件中并通过 nvcc 编译工具构建可执行文件;最后运行该二进制文件观察输出结果是否符合预期。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aworkholic

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值