Ubuntu 24.04 LTS 保姆级教程:安装 NVIDIA 显卡驱动、CUDA 12.5 及 Docker 容器工具包

Ubuntu 24.04 LTS 保姆级教程:安装 NVIDIA 显卡驱动、CUDA 12.5 及 Docker 容器工具包

摘要: 本文为一篇详尽的指南,旨在帮助开发者和研究人员在最新的 Ubuntu 24.04 LTS (Noble Numbat) 系统上,从零开始成功安装 NVIDIA 显卡驱动、CUDA Toolkit 12.5 以及配置 NVIDIA Container Toolkit,从而使 Docker 容器能够利用 GPU 的强大算力。本文适用于深度学习、机器学习、高性能计算等领域的用户。

目录

  1. 前言
  2. 第一步:环境准备与清理
  3. 第二步:添加 NVIDIA CUDA 官方软件源
  4. 第三步:安装 NVIDIA 驱动和 CUDA Toolkit
  5. 第四步:配置系统环境变量
  6. 第五步:验证驱动和 CUDA 安装
  7. 第六步:安装和配置 NVIDIA Container Toolkit
  8. 第七步:最终测试——在 Docker 容器中访问 GPU
  9. 总结与常见问题

前言

随着 Ubuntu 24.04 LTS 的发布,许多需要进行 GPU 加速计算的开发者都希望能够在这个最新的长期支持版本上搭建自己的开发环境。NVIDIA 显卡驱动是基础,CUDA 是连接硬件和上层计算框架(如 PyTorch, TensorFlow)的桥梁,而 NVIDIA Container Toolkit 则是实现容器化 GPU 应用的关键。

本文将手把手带你走完整个安装流程,确保每一步都清晰明了,避免踩坑。

第一步:环境准备与清理

在开始安装之前,强烈建议先将系统中可能存在的旧版本 NVIDIA 驱动彻底卸载,以避免潜在的冲突。

打开终端(快捷键 Ctrl+Alt+T),执行以下命令:

# 更新软件包列表 sudo apt update # 卸载所有与 nvidia 相关的软件包 sudo apt-get --purge remove '*nvidia*' sudo apt-get autoremove sudo apt-get autoclean 

执行完毕后,最好重启一下系统,确保所有旧的驱动模块都已被卸载。

sudo reboot 

重启后,你可以通过 lspci 命令确认你的 NVIDIA 显卡型号,确保硬件被系统正确识别。

# 查看 PCI 设备列表,并筛选出 NVIDIA 相关的设备 lspci | grep -i nvidia 

你会看到类似下面的输出,显示你的显卡型号(例如 NVIDIA Corporation GA102 [GeForce RTX 3090])。

第二步:添加 NVIDIA CUDA 官方软件源

为了确保我们安装的是最新且最匹配的驱动和 CUDA 版本,最佳实践是使用 NVIDIA 官方提供的软件源。

更新软件包列表完成上述步骤后,再次更新你的 apt 软件包列表,以加载新的 CUDA 软件源。

sudo apt-get update 

添加 CUDA 软件源

# 下载 CUDA for Ubuntu 24.04 的仓库配置文件 wget https://developer.download.nvidia.com/compute/cuda/12.5.1/local_installers/cuda-repo-ubuntu2404-12-5-local_12.5.1-555.42.06-1_amd64.deb # 使用 dpkg 安装该仓库配置文件 sudo dpkg -i cuda-repo-ubuntu2404-12-5-local_12.5.1-555.42.06-1_amd64.deb # 从本地仓库中提取 GPG 密钥并添加到系统的信任列表 sudo cp /var/cuda-repo-ubuntu2404-12-5-local/cuda-*-keyring.gpg /usr/share/keyrings/ 

下载并添加官方源的 GPG 密钥

# 下载官方的 .pin 文件,用于指定仓库优先级 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin # 将 .pin 文件移动到 apt 的偏好设置目录 sudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600 

第三步:安装 NVIDIA 驱动和 CUDA Toolkit

现在,我们可以直接通过 apt 来安装 CUDA Toolkit。一个好消息是,安装 cuda-toolkit 会自动处理其依赖关系,将最匹配的 NVIDIA 驱动一并安装上。

# 安装 CUDA Toolkit 12.5 # 这个过程会下载并安装驱动、CUDA 核心组件等,可能需要一些时间 sudo apt-get -y install cuda-toolkit-12-5 

安装完成后,再次重启系统以加载新的内核模块和驱动。

sudo reboot 

第四步:配置系统环境变量

为了让系统能够在任何路径下都能找到 CUDA 的可执行文件(如 nvcc)和库文件,我们需要配置 PATHLD_LIBRARY_PATH 环境变量。

    • PATH 变量用于指定可执行文件的搜索路径。
    • LD_LIBRARY_PATH 变量用于指定动态链接库的搜索路径。
    • ${VAR:+:${VAR}} 是一种安全的写法,表示如果 VAR 变量已存在且非空,则在其前面添加一个冒号,否则不加,避免路径开头出现多余的冒号。

使配置立即生效保存并关闭文件后,执行以下命令让配置立即生效。

source ~/.bashrc 

在文件末尾添加以下内容

# NVIDIA CUDA Toolkit Environment Variables export PATH=/usr/local/cuda-12.5/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-12.5/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} 

说明:

编辑 ~/.bashrc 文件使用你喜欢的文本编辑器(如 nanovim)打开 ~/.bashrc 文件。

nano ~/.bashrc 

第五步:验证驱动和 CUDA 安装

现在是激动人心的验证环节!

验证 CUDA Toolkit执行 nvcc -Vnvcc --version 命令,检查 CUDA 编译器的版本。

nvcc -V 

如果安装成功,你会看到类似下面的输出,确认 CUDA Toolkit 12.5 已安装。

nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2024 NVIDIA Corporation Built on Tue_Mar_19_18:45:25_PDT_2024 Cuda compilation tools, release 12.5, V12.5.40 Build cuda_12.5.r12.5/compiler.34174849_0 

验证 NVIDIA 驱动执行 nvidia-smi 命令。

nvidia-smi 

如果一切正常,你将看到一个表格,详细列出了你的 GPU 型号、驱动版本、CUDA 版本以及 GPU 的实时状态(温度、功耗、显存使用情况等)。

第六步:安装和配置 NVIDIA Container Toolkit

为了让 Docker 容器能够使用 GPU,我们需要安装 NVIDIA Container Toolkit。

重启 Docker 服务应用新的配置,需要重启 Docker 守护进程。

sudo systemctl restart docker 

配置 Docker 守护进程安装完成后,我们需要配置 Docker,让它知道如何使用 NVIDIA 运行时。

sudo nvidia-ctk runtime configure --runtime=docker 

更新软件包列表并安装

sudo apt-get update sudo apt-get install -y nvidia-container-toolkit 

设置 GPG 密钥和软件源

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list 

第七步:最终测试——在 Docker 容器中访问 GPU

最后一步,我们来验证一下 Docker 容器是否真的能调用到 GPU 资源。

我们将运行一个官方的 CUDA 基础镜像,并在容器内部执行 nvidia-smi

# --gpus all 参数是关键,它告诉 Docker 为该容器分配所有可用的 GPU sudo docker run --rm --gpus all nvidia/cuda:12.5.1-base-ubuntu22.04 nvidia-smi 

如果命令成功执行,并且在容器的输出中看到了和主机上一样的 nvidia-smi 表格,那么恭喜你!整个环境已经完美搭建成功!

总结与常见问题

通过以上七个步骤,我们成功地在 Ubuntu 24.04 LTS 系统上完成了 NVIDIA 驱动、CUDA Toolkit 12.5 以及 NVIDIA Container Toolkit 的安装和配置。现在,你的系统已经准备就绪,可以投入到激动人心的 AI 开发和深度学习研究中去了。

常见问题 (FAQ):

  • Q: 安装过程中提示 Secure Boot 相关问题怎么办?
    • A: NVIDIA 驱动是第三方内核模块,需要在 BIOS/UEFI 中禁用安全启动 (Secure Boot) 才能正常加载。请重启电脑进入 BIOS 设置,找到 Secure Boot 选项并将其设置为 Disabled
  • Q: nvidia-smi 命令找不到?
    • A: 最大的可能是环境变量没有配置正确或没有生效。请检查 ~/.bashrc 文件中的路径是否正确(特别是 CUDA 版本号),然后执行 source ~/.bashrc。如果还不行,请检查 /usr/local/ 目录下 CUDA 的实际安装路径。
  • Q: Docker 测试时报错 docker: Error response from daemon: ...
    • A: 确保 nvidia-container-toolkit 已正确安装,并且 sudo systemctl restart docker 命令已成功执行。检查 Docker 服务的状态 (sudo systemctl status docker) 看是否有错误信息。

希望这篇博客能对你有所帮助!如果你在安装过程中遇到任何问题,欢迎在评论区留言交流。

Read more

Spring Boot携手Leaflet,点亮省级旅游口号WebGIS可视化之路

Spring Boot携手Leaflet,点亮省级旅游口号WebGIS可视化之路

目录 前言 一、旅游口号信息管理 1、写在前面的 2、空间属性关联 二、SpringBoot后台实现 1、系统调用时序图 2、Mapper数据查询实现 3、控制层接口实现 三、Leaflet集成实现WebGIS 1、省级数据展示及可视化 2、东北三省旅游口号 3、长三角城市群口号 4、珠三角旅游口号 5、西北地区旅游口号 四、总结 前言         在当今数字化浪潮汹涌澎湃的时代,地理信息系统(GIS)技术正以前所未有的速度改变着我们对世界的认知与探索方式。它不仅为科学研究提供了强大的工具,更在旅游、城市规划、环境保护等诸多领域展现出巨大的应用潜力。而当我们将目光聚焦于旅游行业,一个充满活力与创新的领域,GIS技术的应用更是如鱼得水,为旅游体验的提升和旅        游管理的优化带来了全新的机遇。         省级旅游口号作为各地旅游宣传的重要名片,承载着地域文化的精髓与旅游资源的亮点,是吸引游客、塑造旅游品牌形象的关键要素。然而,传统的旅游口号宣传方式往往局限于文字、

By Ne0inhk
《C++ Web 自动化测试实战:常用函数全解析与场景化应用指南》

《C++ Web 自动化测试实战:常用函数全解析与场景化应用指南》

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. 元素定位:自动化测试的 “精准导航” * 1.1 cssSelector:简洁高效的选择器 * 1.2 xpath:灵活强大的路径语言 * 二. 测试对象操作:定位后的 “核心动作” * 2.1 点击与提交:触发页面交互 * 2.2 文本输入与清除:模拟用户输入 * 2.3 文本与属性获取:验证测试结果 * 三. 窗口与弹窗控制:解决 “多窗口与弹窗干扰” * 3.1 窗口控制:句柄是关键 * 3.

By Ne0inhk
前端大数据导出优化:解决Chrome内存崩溃的实战方案

前端大数据导出优化:解决Chrome内存崩溃的实战方案

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[[email protected]] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? * 专栏导航: 码农阿豪系列专栏导航 面试专栏:收集了java相关高频面试题,面试实战总结🍻🎉🖥️ Spring5系列专栏:整理了Spring5重要知识点与实战演练,有案例可直接使用🚀🔧💻 Redis专栏:Redis从零到一学习分享,经验总结,案例实战💐📝💡 全栈系列专栏:海纳百川有容乃大,可能你想要的东西里面都有🤸🌱🚀 目录 * 前端大数据导出优化:解决Chrome内存崩溃的实战方案 * 引言 * 问题分析 * 1. 为什么 Chrome 会崩溃,而 QQ 浏览器正常? * 2. 常见崩溃场景

By Ne0inhk