CUDA C++ 高效入门第一章 -- CUDA 导学之基于 Ubuntu22.04 搭建 CUDA 开发环境
📅 2026/10/15 20:54:22✍️ 爱科研究院👁 阅读 3,247
CUDA C 高效入门第一章 -- CUDA 导学之基于 Ubuntu22.04 搭建 CUDA 开发环境1 资料2 正文2.1 CUDA 开发环境介绍2.1.1 CUDA 开发环境的组成2.1.2 CUDA 编程接口2.2 CUDA 开发环境搭建2.2.1 安装 GPU 驱动和 CUDA Toolkit2.2.2 其他开发工具安装2.3 CUDA 官方学习资料3 总结1 资料第一章前两篇博客我们讲了 GPU 硬件的相关知识以及为什么要学习 GPU 编程并选定了 CUDA C 这个方向。本文我们将介绍 CUDA 开发环境的基础知识并基于 ubuntu22.04 搭建 CUDA 开发环境。本文参考资料如下1樊哲勇CUDA编程 基础与实践 第一章2cuda-programming-guide 1.3 节本系列博客汇总链接CUDA C 高效入门系列。2 正文2.1 CUDA 开发环境介绍2.1.1 CUDA 开发环境的组成1CUDA 开发环境之 GPU Driver如果一台计算机想把 GPU 用起来无论是图形显示还是 CUDA 编程必须安装 GPU 驱动程序。这个驱动程序可以看作是 GPU 的操作系统也是 CUDA 开发环境的基础。2CUDA 开发环境之 CUDA Toolkit直译为工具包这是一组用于编写、构建 CUDA 软件的库、头文件和工具包括 CUDA 的 nvccNVIDIA CUDA Compiler编译器。CUDA Toolkit 依赖 GPU Driver但两者是相互独立的两套软件产品两者合起来构成整个 CUDA 开发环境。3CUDA 兼容性CUDA Toolkit 的版本采用 X.YGPU Driver 的版本采用 X.Y.Z由于 CUDA Toolkit 依赖 GPU Driver 因此他们的版本具有一定的关联性具体可以参考cuda-toolkit-release-notes 的 Table 3 CUDA Toolkit and Corresponding Driver Versions。补充有关 CUDA Toolkit 与驱动兼容性更详细的论述见why-cuda-compatibility。4如何根据 GPU 型号找到对应的官网驱动到 英伟达官网驱动 这里输入 GPU 型号名查询。5如何找到指定版本的 CUDA Toolkit直接修改链接https://developer.nvidia.com/cuda-11-4-0-download-archive中的数字即可得到特定版本 CUDA Toolkit 的下载链接。2.1.2 CUDA 编程接口1下图是 CUDA 编程接口的整体概览图从下而上分析如下第四层是 GPU 驱动程序提供的 CUDA 驱动 API这是最基础的 API 接口。类似 CPU 编程中的操作系统 API比如 linux 提供了 open 接口用来打开文件第三层是 CUDA Toolkit 提供的 CUDA 运行时 API这套接口是对 CUDA 驱动 API 的二次封装更易用也是我们的学习重点。类似 linux 标准库提供的 fopen 接口其本质上是对操作系统提供的 open 接口的二次封装。第二层是 CUDA 标准库这些标准库基于下面两层的 API 为特定类型的计算任务矩阵运算神经网络提供了丰富了轮子不需要后来者重复开发。第一层是应用程序下面三层的接口都可以任由我们调用。2.2 CUDA 开发环境搭建2.2.1 安装 GPU 驱动和 CUDA Toolkit1我的基础环境硬件本文选择一台 Thinkpad T14 i7 Nvidia MX450。操作系统物理机安装 ubuntu22.04 不搞虚拟机不搞双系统运行效率最高。2为 MX450 安装驱动程序第一步设置第二步关于-software updates-选择附加驱动第三步使用NVIDIAServer Driver metapackage来自nvidia-driver-470-serve(专有) - 应用更改 - 关闭第四步重启电脑并使用 nvidia-smi 查看安装结果踩坑经验针对 MX450 千万不要选择 nvidia-driver-535-serve 驱动会导致网卡驱动损坏无法联网。如果你不幸踩雷按这个来解决ubuntu 更新显卡驱动导致无法联网网卡驱动都没了。3安装 CUDA Toolkitnvidia-smi 显示针对 470.199.02 驱动最高的 CUDA Toolkit 版本为 11.4因此我们就安装 11.4。第一步在官网找到 CUDA Toolkit 11.4第二步下载 CUDA Toolkit 11.4并执行安装wgethttps://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.runsudoshcuda_11.4.0_470.42.01_linux.run出现如下错误Failed to verify gcc version. See log at /var/log/cuda-installer.log for details. momentamomenta-ThinkPad-T14-Gen-2i:~/Downloads$ cat /var/log/cuda-installer.log [INFO]: Driver installation detected by command: apt list --installed | grep -e nvidia-driver-[0-9][0-9][0-9] -e nvidia-[0-9][0-9][0-9] [INFO]: Cleaning up window [INFO]: Complete [INFO]: Checking compiler version... [INFO]: gcc location: /usr/bin/gcc [INFO]: gcc version: gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04.3) [ERROR]: unsupported compiler version: 11.4.0. Use --override to override this check.原因是 Ubuntu22.04 的默认 gcc 版本为 11.04 而 CUDA Toolkit 11.4 的 nvcc 编译器需要 gcc-10 所以安装错误。解决方法是安装 gcc-10并设为默认步骤如下sudoaptupdatesudoaptinstallgcc-10 g-10cd/usr/binrmgcc gln-sgcc-10 gccln-sg-10 g解决 gcc 版本的问题后再次执行 CUDA Toolkit 安装命令即可成功。第三步安装完成后设置环境变量并查看 nvcc 版本至此 CUDA Toolkit 安装完成。# ~/.bashrc 添加exportPATH/usr/local/cuda-11.4/bin:$PATHexportLD_LIBRARY_PATH/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATHnvcc--version2.2.2 其他开发工具安装1在 ubuntu22.04 安装谷歌拼音输入法第一步安装 fcitxsudoaptinstallfcitx第二步配置 fcitx输入im-config就会开启 Input Method Configuration 窗口点击OK在下一个窗口继续点击 OK再一个窗口选择 Fcitx然后 OK第三步安装谷歌拼音输入法完成后重启电脑sudoaptinstallfcitx-googlepinyinsudoreboot然后运行fcitx-config-gtk3打开 Input Method Confuguration窗口点击左下角 号搜索添加Google Pinyin输入法。最后使用 Ctrl空格 切换输入法即可。2如果 ubuntu22.04 安装的 vscode 无法使用谷歌拼音输入法看这个UbuntuFcitx 搜狗拼音无法在 VS Code 输入中文的修复方案3如果 ubuntu22.04 无法使用火狐浏览器打开 github 看这个虚拟机ubuntu-firefox有网但是打不开github怎么办。有时候还是打不开执行下面的命令sudosystemctl restart NetworkManager2.3 CUDA 官方学习资料1学 CUDA 资料很多找资料的原则是官方英文文档求准 中文社区教程求易 实际编码练习求实。2官方资料的总源头CUDA Toolkit Documentation3官方资料最核心的几个第一安装指南cuda-quick-start-guide第二编程指南最重要cuda-programming-guide补充1这有一份高质量的中文版编程指南cuda-programming-guide-zh补充2英伟达还有一份老的 CUD 编程指南大家注意识别CUDA C Programming Guide (Legacy)第三CUDA C 最佳编程实践CUDA C Best Practices Guide第四CUDA 运行时 API 手册cuda-runtime-api4还有很多 CUDA 库的资料GPU 架构资料CUDA 调试和性能分析的资料nvcc 编译器的资料都在 CUDA Toolkit Documentation 可以找到。3 总结这一篇我们了解了 CUDA 开发环境的组成并搭建了 CUDA 开发环境还拿到了官方文档下一篇我们将开始 CUDA 编程编写第一个 hello world