CUDA 工具包对于使用 NVIDIA GPU 的开发人员来说至关重要,它为 GPU 加速应用程序提供了全面的开发环境。它包括库、调试和优化工具、编译器和运行时库,用于在支持 CUDA 的 GPU 上构建和部署应用程序。在 Ubuntu 上安装 CUDA 工具包可让您利用并行计算的强大功能来完成机器学习、科学计算和实时数据处理等任务。
要在 Ubuntu 24.04、22.04 或 20.04 上安装 CUDA 工具包,您可以使用 NVIDIA 的官方 APT 存储库镜像。此方法可确保您可以访问该工具包的最新版本以及 NVIDIA 发布的任何更新或补丁。本指南将逐步指导您完成安装过程。
删除现有的 CUDA 和 NVIDIA 安装
安装 NVIDIA 驱动程序时,从头开始至关重要,尤其是在计划升级或更改版本时。这意味着从系统中删除任何现有的 NVIDIA 安装包。此步骤有助于防止因重叠安装而产生的潜在冲突和问题。但是,如果您之前没有安装过 NVIDIA 驱动程序,请跳过此部分并继续下一步。
注意:如果您的系统是全新且之前未安装任何 NVIDIA 或 CUDA,则可以跳过此建议。但是,如果您已经安装了 NVIDIA 或 CUDA,则必须先将其删除。否则,可能会导致与软件相关的安装问题或系统不稳定。
删除通过 APT 命令安装的 NVIDIA 软件包
如果您使用 APT 软件包管理器安装了 NVIDIA 驱动程序,则可以使用单个命令从系统中删除 NVIDIA 的所有痕迹。此命令会搜索所有与 NVIDIA 相关的软件包并将其从系统中清除。在您的终端中运行以下命令:
sudo apt autoremove cuda* nvidia* --purge
此命令使用 apt 命令的 autoremove 选项,该选项会删除那些为了满足其他软件包的依赖关系而自动安装但现在不再需要的软件包。nvidia* 模式匹配所有以“nvidia”开头的软件包。–purge 选项告诉 apt 不仅要删除软件包,还要删除它们的配置文件。
删除通过 Runfile 安装的 NVIDIA 驱动程序
如果你使用 .run
文件(由于有更好的替代方案,如 NVIDIA CUDA 存储库,通常不推荐使用),您需要使用不同的方法来删除它们。
要卸载 runfile 类型的安装,请使用以下命令:
sudo /usr/bin/nvidia-uninstall
该命令执行运行文件安装中包含的 nvidia-uninstall 脚本。此脚本确保彻底删除通过运行文件安装的 NVIDIA 驱动程序。
删除通过 Runfile 安装的 CUDA 工具包
如果您使用运行文件安装了 CUDA 工具包,则必须将其删除。使用与卸载 NVIDIA 驱动程序类似的方法。要删除 CUDA 工具包,请运行以下命令:
sudo /usr/local/cuda-X.Y/bin/cuda-uninstall
将 XY 替换为您已安装的 CUDA 工具包的版本号。使用此命令运行 CUDA 工具包运行文件安装附带的 cuda-uninstall 脚本。此脚本可确保从系统中彻底删除 CUDA 工具包。
通过 APT 命令安装 CUDA Toolkit
如前所述,直接从 NVIDIA CUDA 存储库安装 CUDA 是最有效的方法。此方法可确保您能第一时间收到任何新的增强功能、错误修复、安全更新或功能。
为 NVIDIA CUDA PPA 准备系统
在开始安装过程之前,我们必须确保您的系统已准备就绪。这涉及安装几个必要的软件包。这些软件包可能已经在您的系统中,但仔细检查一下也无妨。在您的终端中运行以下命令:
sudo apt install build-essential gcc dirmngr ca-certificates software-properties-common apt-transport-https dkms curl -y
此命令会安装几个对以下步骤必不可少的软件包。这些软件包包括 dirmngr(用于管理密钥)、ca-certificates(用于处理 SSL 证书)、software-properties-common(用于管理软件存储库)、apt-transport-https(用于安全软件包下载)、dkms(用于管理内核模块)和 curl(用于从互联网下载文件)。
导入 NVIDIA CUDA PPA 的 GPG 密钥
安全性是软件安装过程中的首要任务。为了验证我们要安装的软件包的真实性和完整性,我们必须导入特定发行版的 GPG 密钥。存储库使用此密钥对软件包进行签名。通过导入它,我们指示系统信任此密钥已签名的软件包。
首先,对于 Ubuntu 24.04 Numble Numbat 版本,使用以下命令:
curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/3bf863cc.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1
其次,对于 Ubuntu 22.04 Jammy Jellyfish 版本,使用以下命令:
curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1
最后,对于 Ubuntu 20.04 Focal Fossa 版本,请改用以下命令:
curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1
导入 NVIDIA 存储库
有了 GPG 密钥后,我们现在可以将 NVIDIA 存储库添加到我们的系统中。此存储库包含我们安装 CUDA 所需的软件包。
首先,对于 Ubuntu 24.04 Numble Numbat,使用以下命令:
echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list
其次,对于 Ubuntu 22.04 Jammy Jellyfish,使用以下命令:
echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list
最后,对于 Ubuntu 20.04 Focal Fossa,请使用以下命令:
echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list
刷新 NVIDIA CUDA Toolkit PPA 的软件包列表
现在我们已经添加了 NVIDIA 存储库,我们必须更新系统的软件包列表。这可确保我们的系统知道 NVIDIA 存储库中可用的新软件包。为此,请运行以下命令:
sudo apt update
此命令从所有配置的存储库(包括新添加的 NVIDIA 存储库)获取最新的包信息。
安装 CUDA 工具包
我们可以安装带有最新 NVIDIA 驱动程序的 CUDA,并设置好一切。但在执行此操作之前,最好先检查可用的驱动程序版本。您可以使用 APT 搜索命令执行此操作:
apt search cuda-drivers
此命令列出所有可用的 CUDA 版本。您可以选择最适合您需求的版本。在本指南中,我们将演示如何安装最新版本。
或者,你可以搜索 cuda 和 nvidia 驱动程序:
sudo apt search cuda-drivers
sudo apt search nvidia-driver
现在,您可以安装要使用的 CUDA/NVIDIA 版本。请记住根据您的喜好将 550 替换为 545、535、530、525、520、515 等。
sudo apt install nvidia-driver-550 cuda-drivers-550 cuda
请记住,上述命令仅作为示例。如前所示,您可以使用 APT 搜索安装所需的版本。
安装后,您需要重新启动系统:
sudo reboot
CUDA 入门
在 Ubuntu Linux 上开始使用 CUDA 的旅程可能会令人兴奋。为了帮助您更顺利地完成这一旅程,以下是一些提示和技巧,可增强您的体验并提高您的工作效率。
了解 GPU 功能 使用 NVIDIA CUDA
在深入研究 CUDA 编程之前,了解 GPU 的功能至关重要。不同的 GPU 支持不同版本的 CUDA,并且具有不同的核心数量、内存大小和其他功能。您可以使用 nvidia-smi
命令来获取有关 GPU 的详细信息:
nvidia-smi
此命令提供有关 GPU 名称、总内存、CUDA 版本等的信息。了解 GPU 的功能可以帮助您编写更高效的 CUDA 程序。
CUDA 工具包文档
CUDA 工具包拥有丰富的文档,包括编程指南、最佳实践指南和 API 参考。熟悉这些资源将大有裨益。您可以在 NVIDIA CUDA 工具包文档 页。
CUDA 示例
CUDA 工具包包含示例程序,演示了 CUDA 编程的各个方面,从基本概念到高级技术。这些示例可以成为很好的学习资源。安装 CUDA 工具包后,您可以在 /usr/local/cuda/samples 目录中找到它们。
更新 NVIDIA Cuda 工具包
NVIDIA 定期发布 CUDA 工具包的新版本,通常包括性能改进、错误修复和新功能。保持 CUDA 安装为最新可确保您能够使用这些增强功能。请记住,您已将系统设置为直接从 NVIDIA CUDA 存储库接收更新,因此您可以使用 APT 包管理器轻松更新 CUDA 安装:
sudo apt update
sudo apt upgrade
使用 NVIDIA CUDA 探索 CUDA 库
CUDA 提供了多个库,为线性代数、傅里叶变换等日常计算任务提供高级功能。cuBLAS、cuFFT 和 cuDNN 等库经过高度优化,可节省时间和精力。CUDA 工具包文档包含有关这些库的更多详细信息。
调试和分析 CUDA 程序 Ubuntu
调试和分析是 CUDA 编程的重要方面。cuda-gdb 和 nvprof
可以帮助您调试 CUDA 程序并分析其性能。这些工具是 CUDA 工具包的一部分,对于优化您的 CUDA 程序非常有用。
结束语
使用 NVIDIA 官方 APT 存储库在 Ubuntu 系统上安装 CUDA 工具包后,您就可以开始开发利用 GPU 加速功能的高性能应用程序。此设置可确保您拥有最新的工具和库,满足您的 CUDA 开发需求。定期更新您的工具包,以利用 NVIDIA 提供的最新改进和优化,使您能够突破 Ubuntu 系统上并行计算的界限。
于 22.04 执行:
sudo apt autoremove cuda* nvidia* –purge
sudo apt install build-essential gcc dirmngr ca-certificates 软件属性-通用 apt-transport-https dkms curl -y
curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub | sudo gpg –dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1
echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list
sudo apt 安装 nvidia-driver-535 cuda-drivers-535 cuda
但得到:
~$ sudo apt install nvidia-driver-535 cuda-drivers-535 cuda
正在读取软件包列表…完成
构建依赖关系树…完成
正在读取状态信息…完成
无法安装某些软件包。这可能意味着您
请求一个不可能的情况,或者如果你正在使用不稳定
发行版中某些必需的软件包尚未创建
或已移出传入。
以下信息可能有助于解决该情况:
以下软件包具有未满足的依赖关系:
cuda-drivers-535:依赖:nvidia-kernel-source-535(>= 535.183.06)但无法安装或
nvidia-kernel-open-535 (>= 535.183.06) 但无法安装
nvidia-dkms-535:依赖:nvidia-kernel-source-535 但无法安装或
nvidia-kernel-open-535 但无法安装
nvidia-driver-535:依赖:nvidia-kernel-source-535(= 535.183.06-0ubuntu1)但无法安装或
nvidia-kernel-open-535 (= 535.183.06-0ubuntu1) 但无法安装
nvidia-driver-560-open:依赖:libnvidia-gl-560(= 560.35.03-0ubuntu1)但无法安装
依赖:nvidia-dkms-560-open (= 560.35.03) 但无法安装
依赖:nvidia-kernel-common-560(= 560.35.03)但无法安装
依赖:libnvidia-compute-560 (= 560.35.03-0ubuntu1) 但无法安装
依赖:libnvidia-extra-560 (= 560.35.03-0ubuntu1) 但无法安装
依赖:nvidia-compute-utils-560 (= 560.35.03-0ubuntu1) 但无法安装
依赖:libnvidia-decode-560 (= 560.35.03-0ubuntu1) 但无法安装
依赖:libnvidia-encode-560 (= 560.35.03-0ubuntu1) 但无法安装
依赖:nvidia-utils-560 (= 560.35.03-0ubuntu1) 但无法安装
依赖:xserver-xorg-video-nvidia-560 (= 560.35.03-0ubuntu1) 但无法安装
依赖:libnvidia-cfg1-560 (= 560.35.03-0ubuntu1) 但无法安装
依赖:libnvidia-fbc1-560 (= 560.35.03-0ubuntu1) 但无法安装
推荐:libnvidia-compute-560:i386 (= 560.35.03-0ubuntu1)
推荐:libnvidia-decode-560:i386 (= 560.35.03-0ubuntu1)
推荐:libnvidia-encode-560:i386 (= 560.35.03-0ubuntu1)
推荐:libnvidia-fbc1-560:i386 (= 560.35.03-0ubuntu1)
推荐:libnvidia-gl-560:i386 (= 560.35.03-0ubuntu1)
E:无法纠正问题,您持有破损的包裹。
看来您当前的存储库中可能没有 NVIDIA 535 驱动程序的软件包。要验证这一点,您可以尝试使用以下命令搜索软件包:
apt-cache search nvidia-kernel-source
或者
apt-cache search nvidia-kernel-source-535
这将显示所需的软件包是否可用。如果没有显示任何内容,则可能表示当前存储库配置中不存在 535 驱动程序。
据我所知,NVIDIA 535 驱动程序在 Linux 上的使用寿命 (EOL) 预计要到 2026 年 6 月才会结束,因此它们应该仍受支持。如果软件包不可用,则可能是存储库存在问题或暂时出现故障。
请告诉我您发现了什么,如果需要,我们可以进一步排除故障!