NVIDIA CUDA Linux 安装指南

CUDA 工具包在 Linux 上的安装说明。

1. 简介

CUDA® 是 NVIDIA® 发明的并行计算平台和编程模型。它通过利用图形处理单元 (GPU) 的强大功能,显著提高计算性能。

CUDA 的开发考虑了以下几个设计目标

  • 为标准编程语言(如 C 语言)提供一小组扩展,以便直接实现并行算法。借助 CUDA C/C++,程序员可以将精力集中在算法的并行化任务上,而不是花费时间来实现它们。

  • 支持异构计算,应用程序同时使用 CPU 和 GPU。应用程序的串行部分在 CPU 上运行,并行部分卸载到 GPU。因此,CUDA 可以逐步应用于现有应用程序。CPU 和 GPU 被视为具有各自内存空间的独立设备。这种配置还允许 CPU 和 GPU 上的同时计算,而不会争用内存资源。

支持 CUDA 的 GPU 具有数百个内核,这些内核可以共同运行数千个计算线程。这些内核具有共享资源,包括寄存器文件和共享内存。片上共享内存允许在这些内核上运行的并行任务共享数据,而无需通过系统内存总线发送数据。

本指南将向您展示如何安装和检查 CUDA 开发工具的正确运行。

注意

有关安装 NVIDIA 驱动程序的说明,现在位于 https://docs.nvda.net.cn/datacenter/tesla/driver-installation-guide/index.html

1.1. 系统要求

要在您的系统上使用 NVIDIA CUDA,您需要安装以下组件

CUDA 开发环境依赖于与主机开发环境(包括主机编译器和 C 运行时库)的紧密集成,因此仅在已针对此 CUDA 工具包版本进行限定的发行版版本上受支持。

下表列出了受支持的 Linux 发行版。请查看与该表关联的脚注。

表 1 CUDA 12.8 中的原生 Linux 发行版支持

发行版

内核1

默认 GCC

GLIBC

x86_64

RHEL 9.y (y <= 5)

5.14.0-503

11.5.0

2.34

RHEL 8.y (y <= 10)

4.18.0-553

8.5.0

2.28

OpenSUSE Leap 15.y (y <= 6)

6.4.0-150600.21

7.5.0

2.38

Rocky Linux 8.y (y<=10)

4.18.0-553

8.5.0

2.28

Rocky Linux 9.y (y<=5)

5.14.0-503

11.5.0

2.34

SUSE SLES 15.y (y <= 6)

6.4.0-150600.21

7.5.0

2.31

Ubuntu 24.04.z (z <= 1) LTS

6.8.0-41

13.2.0

2.39

Ubuntu 22.04.z (z <= 5) LTS

6.5.0-45

12.3.0

2.35

Ubuntu 20.04.z (z <= 6) LTS

5.15.0-67

9.4.0

2.31

Debian 12.8

6.1.0-27

12.2.0

2.36

Fedora 41

6.11.4-301

14.2.1

2.40

KylinOS V10 SP3 2403

4.19.90-89.11.v2401

10.x

2.28

MSFT Azure Linux 2.0

5.15.158.2-1

11.2.0

2.35

Amazon Linux 2023

6.1.82-99.168

11.4.1

2.34

Oracle Linux 8

4.18.0-553

8.5.0

2.28

Oracle Linux 9

5.14.0-427

11.4.1

2.34

Arm64 sbsa

RHEL 9.y (y <= 5)

5.14.0-503

11.5.0

2.34

RHEL 8.y (y <= 10)

4.18.0-553

8.5.0

2.28

SUSE SLES 15.y (y == 6)

6.4.0-150600.21

7.5.0

2.38

Kylin V10 SP3 2403

4.19.90-89

10.x

2.28

Ubuntu 24.04.z (z <= 1) LTS

6.8.0-31

13.2.0

2.39

Ubuntu 22.04 LTS (z <= 5) LTS

6.5.0-1019

11.4.0

2.35

Ubuntu 20.04.z (z <= 5) LTS

5.4.0-174

11.4.0

2.31

Arm64 sbsa Jetson (dGPU)

20.04.06 LTS Rel35 JP 5.x

5.10.65-tegra

9.4.0

2.31

22.04.4 LTS Rel36 - JP6.x

5.15.136-tegra

11.4.0

2.35

AArch64 Jetson (iGPU)

L4T Ubuntu 22.04 Rel36 - JP6.x

6.1.80-tegra

11.4.0

2.35

  1. 以下注释适用于 CUDA 支持的内核版本

  1. Debian 11.x 的支持已弃用。

1.2. 操作系统支持策略

  • CUDA 对 Ubuntu 20.04.x、Ubuntu 22.04.x、Ubuntu 24.04.x、RHEL 8.x、RHEL 9.x、Rocky Linux 8.x、Rocky Linux 9.x、SUSE SLES 15.x、OpenSUSE Leap 15.x、Amazon linux 2023 和 Azure Linux 2.0 的支持将持续到每个操作系统定义的标准 EOSS。请参阅这些操作系统的支持生命周期以了解其支持时间表。

  • CUDA 支持最新的 Fedora 发行版本。支持的版本可能需要特定的 GCC 兼容性软件包。有关 Fedora 发布时间表,请访问 https://docs.fedoraproject.org/en-US/releases/

  • CUDA 支持单个 KylinOS 发行版本。有关详细信息,请访问 https://www.kylinos.cn/

请参阅这些受支持操作系统的支持生命周期,以了解其支持时间表并计划相应地迁移到较新版本。

1.3. 主机编译器支持策略

为了编译 CUDA 源代码中的 CPU “主机” 代码,CUDA 编译器 NVCC 需要在系统上安装兼容的主机编译器。Linux 平台上支持的主机编译器版本如下表所示。NVCC 对主机编译器的主要版本执行版本检查,因此将支持下面列出的编译器的较新次要版本,但不支持超出范围的主要版本。

表 2 支持的编译器

发行版

GCC

Clang

NVHPC

XLC

ArmC/C++

ICC

x86_64

6.x - 14.x

7.x - 19.x

24.9

2021.7

Arm64 sbsa

6.x - 14.x

7.x - 19.x

24.9

24.04

对于 GCC 和 Clang,上表指示了支持的最低版本和最新版本。如果您的 Linux 发行版可能使用比上面列出的版本更旧的 GCC 工具链作为默认设置,建议升级到较新的工具链 CUDA 11.0 或更高版本的工具包。例如,Red Hat Developer Toolset 提供了较新的 GCC 工具链。对于默认情况下提供的编译器版本早于 GCC 6 的平台,不支持链接到 CUDA 工具包附带的静态或动态库。对于上面列出的平台,我们仅支持 libstdc++(GCC 的实现)用于所有受支持的主机编译器。

1.3.1. 主机编译器兼容性软件包

非常新的发行版可能会附带比上面的“支持的编译器”表涵盖的更新的编译器。通常,这些发行版还提供 GCC 兼容性软件包,该软件包可以代替默认软件包使用。

根据发行版的不同,需要安装的软件包也不同,但是配置逻辑是相同的。如果需要,配置步骤将在特定 Linux 发行版的相应部分中描述,但是它们总是以配置 NVCC_BIN 环境变量结尾,如 NVCC 文档中所述。

1.3.2. 支持的 C++ 方言

NVCC 和 NVRTC(CUDA 运行时编译器)在受支持的主机编译器上支持以下 C++ 方言:C++11、C++14、C++17、C++20。NVCC 的默认 C++ 方言由用于编译的主机编译器的默认方言决定。有关语言支持的更多详细信息,请参阅主机编译器文档和CUDA 编程指南

C++20 在主机代码和设备代码中都支持以下主机编译器版本。

GCC

Clang

NVHPC

Arm C/C++

>=10.x

>=11.x

>=22.x

>=22.x

1.4. 关于本文档

本文档适用于熟悉 Linux 环境以及从命令行编译 C 程序的读者。您不需要以前的 CUDA 经验或并行计算经验。注意:本指南仅涵盖在安装了 X Windows 的系统上的安装。

注意

本文档中的许多命令可能需要超级用户权限。在大多数 Linux 发行版上,这将要求您以 root 用户身份登录。对于已启用 sudo 软件包的系统,请为所有必要的命令使用 sudo 前缀。

2. 预安装操作

在 Linux 上安装 CUDA 工具包之前,必须执行一些操作

  • 验证系统是否具有支持 CUDA 的 GPU。

  • 验证系统是否正在运行受支持的 Linux 版本。

  • 验证系统是否已安装 gcc。

  • 下载 NVIDIA CUDA 工具包。

  • 处理冲突的安装方法。

注意

您可以通过使用 -override 标志运行安装程序来覆盖安装时先决条件检查。请记住,仍然需要先决条件才能使用 NVIDIA CUDA 工具包。

2.1. 验证您是否拥有支持 CUDA 的 GPU

要验证您的 GPU 是否支持 CUDA,请转到您的发行版等效的“系统属性”,或者从命令行输入

lspci | grep -i nvidia

如果您没有看到任何设置,请通过在命令行输入 update-pciids(通常位于 /sbin 中)来更新 Linux 维护的 PCI 硬件数据库,然后重新运行之前的 lspci 命令。

如果您的显卡来自 NVIDIA,并且在 https://developer.nvidia.com/cuda-gpus 中列出,则您的 GPU 支持 CUDA。

CUDA 工具包的发行说明还包含受支持产品的列表。

2.2. 验证您是否拥有受支持的 Linux 版本

CUDA 开发工具仅在某些特定的 Linux 发行版上受支持。这些在 CUDA 工具包发行说明中列出。

要确定您正在运行哪个发行版和发行号,请在命令行中键入以下内容

uname -m && cat /etc/*release

您应该看到类似于以下内容的输出,该输出已针对您的特定系统进行了修改

x86_64
Red Hat Enterprise Linux Workstation release 6.0 (Santiago)

x86_64 行表示您正在 64 位系统上运行。其余部分提供有关您的发行版的信息。

2.3. 验证系统是否已安装 gcc

使用 CUDA 工具包进行开发需要 gcc 编译器。运行 CUDA 应用程序不需要它。它通常作为 Linux 安装的一部分安装,并且在大多数情况下,随受支持的 Linux 版本一起安装的 gcc 版本将正常工作。

要验证系统上安装的 gcc 版本,请在命令行中键入以下内容

gcc --version

如果显示错误消息,则需要从 Linux 发行版安装开发工具,或者从 Web 获取 gcc 版本及其随附的工具链。

2.4. 选择安装方法

可以使用两种不同的安装机制来安装 CUDA 工具包:特定于发行版的软件包(RPM 和 Deb 软件包)或独立于发行版的软件包(runfile 软件包)。

独立于发行版的软件包的优点是在更广泛的 Linux 发行版上工作,但不更新发行版的本机软件包管理系统。特定于发行版的软件包与发行版的本机软件包管理系统交互。建议尽可能使用特定于发行版的软件包。

注意

对于本机开发和交叉开发,都必须使用特定于发行版的安装程序来安装工具包。有关更多详细信息,请参见 CUDA 跨平台安装 部分。

2.5. 下载 NVIDIA CUDA 工具包

NVIDIA CUDA 工具包可在 https://developer.nvidia.com/cuda-downloads 获取。

选择您正在使用的平台并下载 NVIDIA CUDA 工具包。

CUDA 工具包包含创建、构建和运行 CUDA 应用程序所需的工具,以及库、头文件和其他资源。

下载验证

可以通过将 https://developer.download.nvidia.com/compute/cuda/12.6.2/docs/sidebar/md5sum.txt 上发布的 MD5 校验和与下载文件的校验和进行比较来验证下载。如果任一校验和不同,则下载的文件已损坏,需要重新下载。

要计算下载文件的 MD5 校验和,请运行以下命令

md5sum <file>

2.6. 处理冲突的安装方法

在安装 CUDA 之前,应卸载任何可能冲突的先前安装。这不会影响以前未安装 CUDA 的系统,或者安装方法已保留(RPM/Deb 与 Runfile)的系统。有关详细信息,请参见下表。

表 3 CUDA 工具包安装兼容性矩阵

已安装的工具包版本 == X.Y

已安装的工具包版本 != X.Y

RPM/Deb

run

RPM/Deb

run

正在安装工具包版本 X.Y

RPM/Deb

无操作

卸载 Run

无操作

无操作

run

卸载 RPM/Deb

卸载 Run

无操作

无操作

使用以下命令卸载工具包 runfile 安装

sudo /usr/local/cuda-X.Y/bin/cuda-uninstaller

使用以下命令卸载 RPM/Deb 安装

sudo dnf remove <package_name>                      # RHEL 8 / Rocky Linux 8 / RHEL 9 / Rocky Linux 9 / Fedora / KylinOS 10 / Amazon Linux 2023
sudo tdnf remove <package_name>                     # Azure Linux
sudo zypper remove <package_name>                   # OpenSUSE / SLES
sudo apt-get --purge remove <package_name>          # Debian / Ubuntu

3. 包管理器安装

基本说明可以在 快速入门指南中找到。请继续阅读以获取更详细的说明。

3.1. 概述

使用 RPM 或 Debian 软件包进行安装可与系统的软件包管理系统交互。当使用 RPM 或 Debian 本地仓库安装程序时,下载的软件包包含存储在本地文件系统 /var/ 中的仓库快照。这样的软件包仅通知软件包管理器在哪里可以找到实际的安装软件包,但不会安装它们。

如果启用了在线网络仓库,则将在安装时使用软件包管理器 apt-get、dnf、tdnf 或 zypper 自动下载 RPM 或 Debian 软件包。

特定于发行版的说明详细说明了如何安装 CUDA

最后,详细介绍了某些有用的软件包管理器功能

这些说明仅适用于本机开发。对于跨平台开发,请参见 CUDA 跨平台环境 部分。

注意

可选组件(例如 nvidia-fslibnvidia_nscqfabricmanager)默认情况下未安装,必须根据需要单独安装。

3.2. RHEL / Rocky

3.2.1. 准备 RHEL / Rocky

  1. 执行预安装操作

  2. 满足第三方软件包依赖性

    • 启用可选仓库

      仅在 RHEL 9 Linux 上,执行以下步骤以启用可选仓库。

      • 在 x86_64 系统上

        subscription-manager repos --enable=rhel-9-for-x86_64-appstream-rpms
        subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms
        subscription-manager repos --enable=codeready-builder-for-rhel-9-x86_64-rpms
        

      仅在 RHEL 8 Linux 上,执行以下步骤以启用可选仓库。

      • 在 x86_64 系统上

        subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms
        subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms
        subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms
        
  3. 移除过期的签名密钥

    sudo rpm --erase gpg-pubkey-7fa2af80*
    
  4. 选择安装方法:RHEL / Rocky 的本地仓库安装RHEL / Rocky 的网络仓库安装

3.2.2. RHEL / Rocky 的本地仓库安装

  1. 在文件系统上安装本地仓库

    sudo rpm --install cuda-repo-<distro>-X-Y-local-<version>*.<arch>.rpm
    

    其中 <distro> 应替换为以下之一

    • rhel8

    • rhel9

    并且 <arch> 应替换为以下之一

    • x86_64

    • aarch64

3.2.3. RHEL / Rocky 的网络仓库安装

  1. 启用网络仓库

    sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>/cuda-<distro>.repo
    

    其中 <distro>/<arch> 应替换为以下之一

    • rhel8/sbsa

    • rhel8/x86_64

    • rhel9/sbsa

    • rhel9/x86_64

  2. 安装新的 CUDA 公共 GPG 密钥

    CUDA 仓库(基于 RPM 的发行版)的新 GPG 公共密钥是 d42d0685

    在 RHEL 的全新安装上,dnf 软件包管理器将在首次安装软件包时提示用户接受新密钥。当提示时,指示您接受更改。

    对于升级,您还必须获取更新的 .repo 条目

    sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>/cuda-<distro>.repo
    
  3. 清理 DNF 仓库

    sudo dnf clean all
    

3.2.4. RHEL / Rocky 的通用说明

以下说明适用于本地和网络安装。

  1. 安装 CUDA SDK

    sudo dnf install cuda-toolkit
    
  2. 安装 GPUDirect 文件系统

    sudo dnf install nvidia-gds
    
  3. 添加 libcuda.so 符号链接(如果需要)

    libcuda.so 库安装在 /usr/lib{,64}/nvidia 目录中。对于使用 libcuda.so 的现有项目,从 /usr/lib{,64} 目录中的 libcuda.so 添加符号链接可能很有用。

  4. 重启系统

    sudo reboot
    
  5. 执行安装后操作

3.3. KylinOS

3.3.1. 准备 KylinOS

  1. 执行预安装操作

  2. 选择安装方法:本地仓库网络仓库

3.3.2. KylinOS 的本地仓库安装

  1. 在文件系统上安装本地仓库

    sudo rpm --install cuda-repo-<distro>-X-Y-local-<version>*.<arch>.rpm
    

    其中 <distro> 应替换为以下之一

    • kylin10

    并且 <arch> 应替换为以下之一

    • x86_64

    • aarch64

3.3.3. KylinOS 的网络仓库安装

  1. 启用网络仓库

    sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>/cuda-<distro>.repo
    

    其中 <distro>/<arch> 应替换为以下之一

    • kylin10/sbsa

    • kylin10/x86_64

  2. 安装新的 CUDA 公共 GPG 密钥

    CUDA 仓库(基于 RPM 的发行版)的新 GPG 公共密钥是 d42d0685

    在 KylinOS 的全新安装上,dnf 软件包管理器将在首次安装软件包时提示用户接受新密钥。当提示时,指示您接受更改。

  3. 清理 DNF 仓库

    sudo dnf clean all
    

3.3.4. KylinOS 的通用说明

以下说明适用于本地和网络安装。

  1. 安装 CUDA SDK

    sudo dnf install cuda-toolkit
    
  2. 安装 GPUDirect 文件系统

    sudo dnf install nvidia-gds
    
  3. 添加 libcuda.so 符号链接(如果需要)

    libcuda.so 库安装在 /usr/lib{,64}/nvidia 目录中。对于使用 libcuda.so 的现有项目,从 /usr/lib{,64} 目录中的 libcuda.so 添加符号链接可能很有用。

  4. 重启系统

    sudo reboot
    
  5. 执行安装后操作

3.4. Fedora

3.4.1. 准备 Fedora

  1. 执行预安装操作

  2. 移除过期的签名密钥

    sudo rpm --erase gpg-pubkey-7fa2af80*
    
  3. 选择安装方法:本地仓库网络仓库

3.4.2. Fedora 的本地仓库安装

  1. 在文件系统上安装本地仓库

    sudo rpm --install cuda-repo-<distro>-X-Y-local-<version>*.x86_64.rpm
    

    其中 <distro> 应替换为以下之一

    • fedora39

3.4.3. Fedora 的网络仓库安装

  1. 启用网络仓库

    sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/<distro>/x86_64/cuda-<distro>.repo
    

    其中 <distro> 应替换为以下之一

    • fedora39

  2. 安装新的 CUDA 公共 GPG 密钥

    CUDA 仓库(基于 RPM 的发行版)的新 GPG 公共密钥是 d42d0685

    在 Fedora 的全新安装上,dnf 软件包管理器将在首次安装软件包时提示用户接受新密钥。当提示时,指示您接受更改。

    对于升级,您还必须获取更新的 .repo 条目

    sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/<distro>/x86_64/cuda-<distro>.repo
    
  3. 清理 DNF 仓库

    sudo dnf clean all
    

3.4.4. Fedora 的通用安装说明

以下说明适用于 Fedora 的本地和网络安装。

  1. 安装 CUDA SDK

    sudo dnf install cuda-toolkit
    
  2. 重启系统

    sudo reboot
    
  3. 添加 libcuda.so 符号链接(如果需要)

    libcuda.so 库安装在 /usr/lib{,64}/nvidia 目录中。对于使用 libcuda.so 的现有项目,从 /usr/lib{,64} 目录中的 libcuda.so 添加符号链接可能很有用。

  4. 执行安装后操作

3.4.5. Fedora 的 GCC 兼容性软件包

支持的 Fedora 版本可能附带比 NVCC 实际支持的更新的编译器。可以通过安装 GCC 兼容性软件包并设置一些环境变量来克服此问题。

例如,Fedora 41 附带 GCC 14 以及兼容的 GCC 13 版本,该版本可用于 NVCC。要安装和配置本地 NVCC 二进制文件以使用该版本,请按以下步骤操作。

  1. 安装所需的软件包

    sudo dnf install gcc13-c++
    

    然后,这些二进制文件以以下方式出现在系统上

    /usr/bin/gcc-13
    /usr/bin/g++-13
    
  2. 覆盖默认的 g++ 编译器。 请参阅 NVCC 关于环境变量的文档。 例如

    export NVCC_CCBIN='g++-13'
    

3.5. SLES

3.5.1. 准备 SLES

  1. 执行预安装操作

  2. 在 SLES12 SP4 上,在继续之前安装 Mesa-libgl-devel Linux 软件包。

    请参阅 Mesa-libGL-devel。

  3. 将用户添加到视频组

    sudo usermod -a -G video <username>
    
  4. 移除过期的签名密钥

    sudo rpm --erase gpg-pubkey-7fa2af80*
    
  5. 选择安装方法:本地仓库网络仓库

3.5.2. SLES 本地仓库安装

  1. 在文件系统上安装本地仓库

    sudo rpm --install cuda-repo-<distro>-X-Y-local-<version>*.<arch>.rpm
    

    其中 <distro> 应替换为以下之一

    • sles15

    并且 <arch> 应替换为以下之一

    • x86_64

    • aarch64

3.5.3. SLES 网络仓库安装

  1. 启用网络仓库

    sudo zypper addrepo https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>/cuda-<distro>.repo
    

    其中 <distro>/<arch> 应替换为以下之一

    • sles15/sbsa

    • sles15/x86_64

  2. 安装新的 CUDA 公共 GPG 密钥

    CUDA 仓库(基于 RPM 的发行版)的新 GPG 公共密钥是 d42d0685

    在全新安装的 SLES 上,zypper 包管理器会在首次安装软件包时提示用户接受新密钥。 当提示时,请指示您接受更改。

    对于升级,您还必须获取更新的 .repo 条目

    sudo zypper removerepo cuda-<distro>-<arch>
    sudo zypper addrepo https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>/cuda-<distro>.repo
    
  3. 刷新 Zypper 仓库缓存

    sudo SUSEConnect --product PackageHub/<SLES version number>/<arch>
    sudo zypper refresh
    

3.5.4. SLES 常用安装说明

这些说明适用于 SLES 的本地和网络安装。

  1. 安装 CUDA SDK

    sudo zypper install cuda-toolkit
    
  2. 重启系统

    sudo reboot
    
  3. 执行安装后操作

3.6. OpenSUSE

3.6.1. 准备 OpenSUSE

  1. 执行预安装操作

  2. 将用户添加到视频组

    sudo usermod -a -G video <username>
    
  3. 移除过期的签名密钥

    sudo rpm --erase gpg-pubkey-7fa2af80*
    
  4. 选择安装方法:本地仓库网络仓库

3.6.2. OpenSUSE 本地仓库安装

  1. 在文件系统上安装本地仓库

    sudo rpm --install cuda-repo-<distro>-X-Y-local-<version>*.x86_64.rpm
    

    其中 <distro> 应替换为以下之一

    • opensuse15

3.6.3. OpenSUSE 网络仓库安装

  1. 启用网络仓库

    sudo zypper addrepo https://developer.download.nvidia.com/compute/cuda/repos/<distro>/x86_64/cuda-<distro>.repo
    

    其中 <distro> 应替换为以下之一

    • opensuse15

  2. 安装新的 CUDA 公共 GPG 密钥

    CUDA 仓库(基于 RPM 的发行版)的新 GPG 公钥是 d42d0685。 在全新安装的 openSUSE 上,zypper 包管理器会在首次安装软件包时提示用户接受新密钥。 当提示时,请指示您接受更改。

    对于升级,您还必须获取更新的 .repo 条目

    sudo zypper removerepo cuda-<distro>-x86_64
    sudo zypper addrepo https://developer.download.nvidia.com/compute/cuda/repos/<distro>/x86_64/cuda-<distro>.repo
    
  3. 刷新 Zypper 仓库缓存

    sudo zypper refresh
    

3.6.4. OpenSUSE 常用安装说明

这些说明适用于 OpenSUSE 的本地和网络安装。

  1. 安装 CUDA SDK

    sudo zypper install cuda-toolkit
    
  2. 重启系统

    sudo reboot
    
  3. 执行安装后操作

3.7. WSL

如果您在 WSL 环境中安装,则必须使用这些说明。

3.7.1. 准备 WSL

  1. 执行预安装操作

  2. 移除过期的签名密钥

    sudo apt-key del 7fa2af80
    
  3. 选择安装方法:本地仓库网络仓库

3.7.2. WSL 本地仓库安装

  1. 在文件系统上安装本地仓库

    sudo dpkg -i cuda-repo-<distro>-X-Y-local_<version>*_amd64.deb
    

    其中 <distro> 应替换为以下之一

    • wsl-ubuntu

  2. 注册临时公用 GPG 密钥

    sudo cp /var/cuda-repo-<distro>-X-Y-local/cuda-*-keyring.gpg /usr/share/keyrings/
    
  3. 添加 pin 文件以优先使用 CUDA 仓库

    wget https://developer.download.nvidia.com/compute/cuda/repos/<distro>/x86_64/cuda-<distro>.pin
    sudo mv cuda-<distro>.pin /etc/apt/preferences.d/cuda-repository-pin-600
    

3.7.3. WSL 网络仓库安装

CUDA 仓库(基于 Debian 的发行版)的新 GPG 公钥是 3bf863cc。 这必须在系统上注册,可以使用 cuda-keyring 软件包或手动注册; apt-key 命令已弃用,不建议使用。

  1. 安装新的 cuda-keyring 软件包

    wget https://developer.download.nvidia.com/compute/cuda/repos/<distro>/x86_64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    

    其中 <distro> 应替换为以下之一

    • wsl-ubuntu

3.7.4. WSL 常用安装说明

这些说明适用于 WSL 的本地和网络安装。

  1. 更新 Apt 仓库缓存

    sudo apt-get update
    
  2. 安装 CUDA SDK

    sudo apt-get install cuda-toolkit
    
  3. 执行安装后操作

3.8. Ubuntu

3.8.1. 准备 Ubuntu

  1. 执行预安装操作

  2. 移除过期的签名密钥

    sudo apt-key del 7fa2af80
    
  3. 选择安装方法:本地仓库网络仓库

3.8.2. Ubuntu 本地仓库安装

  1. 在文件系统上安装本地仓库

    sudo dpkg -i cuda-repo-<distro>-X-Y-local_<version>*_<arch>.deb
    

    其中 <distro> 应替换为以下之一

    • ubuntu2004

    • ubuntu2204

    • ubuntu2404

    并且 <arch> 应替换为以下之一

    • amd64

    • arm64

  2. 注册临时公用 GPG 密钥

    sudo cp /var/cuda-repo-<distro>-X-Y-local/cuda-*-keyring.gpg /usr/share/keyrings/
    
  3. 添加 pin 文件以优先使用 CUDA 仓库

    wget https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>/cuda-<distro>.pin
    sudo mv cuda-<distro>.pin /etc/apt/preferences.d/cuda-repository-pin-600
    

3.8.3. Ubuntu 网络仓库安装

CUDA 仓库的新 GPG 公钥是 3bf863cc。 这必须在系统上注册,可以使用 cuda-keyring 软件包或手动注册; apt-key 命令已弃用,不建议使用。

  1. 安装新的 cuda-keyring 软件包

    wget https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    

    其中 <distro>/<arch> 应替换为以下之一

    • ubuntu2004/arm64

    • ubuntu2004/sbsa

    • ubuntu2004/x86_64

    • ubuntu2204/sbsa

    • ubuntu2204/x86_64

    • ubuntu2404/sbsa

    • ubuntu2404/x86_64

    注意

    arm64-Jetson 仓库

    • 原生:<distro>/arm64

    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    

3.8.4. Ubuntu 常用安装说明

这些说明适用于 Ubuntu 的本地和网络安装。

  1. 更新 Apt 仓库缓存

    sudo apt-get update
    
  2. 安装 CUDA SDK

    注意

    这两个命令必须分开执行。

    sudo apt-get install cuda-toolkit
    

    要包含所有 GDS 软件包

    sudo apt-get install nvidia-gds
    
    1. 对于原生 arm64-Jetson 仓库,请安装其他软件包

      sudo apt-get install cuda-compat
      
  3. 重启系统

    sudo reboot
    
  4. 执行安装后操作

3.9. Debian

3.9.1. 准备 Debian

  1. 执行预安装操作

  2. 启用 contrib 仓库

    sudo add-apt-repository contrib
    
  3. 移除过期的签名密钥

    sudo apt-key del 7fa2af80
    
  4. 选择安装方法:本地仓库网络仓库

3.9.2. Debian 本地仓库安装

  1. 在文件系统上安装本地仓库

    sudo dpkg -i cuda-repo-<distro>-X-Y-local_<version>*_amd64.deb
    

    其中 <distro> 应替换为以下之一

    • debian11

    • debian12

  2. 注册临时公用 GPG 密钥

    sudo cp /var/cuda-repo-<distro>-X-Y-local/cuda-*-keyring.gpg /usr/share/keyrings/
    

3.9.3. Debian 网络仓库安装

CUDA 仓库(基于 Debian 的发行版)的新 GPG 公钥是 3bf863cc。 这必须在系统上注册,可以使用 cuda-keyring 软件包或手动注册; apt-key 命令已弃用,不建议使用。

  1. 安装新的 cuda-keyring 软件包

    wget https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>/cuda-keyring_1.1-1_all.deb
    

    其中 <distro>/<arch> 应替换为以下之一

    • debian11/x86_64

    • debian12/x86_64

    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    

3.9.4. Debian 常用安装说明

这些说明适用于 Debian 的本地和网络安装。

  1. 更新 Apt 仓库缓存

    sudo apt-get update
    

    注意

    如果您使用的是 Debian 11,则可能需要改为运行

    sudo apt-get --allow-releaseinfo-change update
    
  2. 安装 CUDA SDK

    sudo apt-get install cuda-toolkit
    
  3. 重启系统

    sudo reboot
    
  4. 执行安装后操作

3.10. Amazon Linux

3.10.1. 准备 Amazon Linux

  1. 执行预安装操作

  2. 选择安装方法:本地仓库网络仓库

3.10.2. Amazon Linux 本地仓库安装

  1. 在文件系统上安装本地仓库

    sudo rpm --install cuda-repo-<distro>-X-Y-local-<version>*.x86_64.rpm
    

    其中 <distro> 应替换为以下之一

    • amzn2023

3.10.3. Amazon Linux 网络仓库安装

  1. 启用网络仓库

    sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/<distro>/x86_64/cuda-<distro>.repo
    
  2. 清理 DNF 仓库

    sudo dnf clean all
    

3.10.4. Amazon Linux 常用安装说明

这些说明适用于 Amazon Linux 的本地和网络安装。

  1. 安装 CUDA SDK

    sudo dnf install cuda-toolkit
    
  2. 安装 GPUDirect 文件系统

    sudo dnf install nvidia-gds
    
  3. 添加 libcuda.so 符号链接(如果需要)

    libcuda.so 库安装在 /usr/lib{,64}/nvidia 目录中。对于使用 libcuda.so 的现有项目,从 /usr/lib{,64} 目录中的 libcuda.so 添加符号链接可能很有用。

  4. 重启系统

    sudo reboot
    
  5. 执行安装后操作

3.11. Azure Linux CM2

3.11.1. 准备 Azure Linux CM2

  1. 执行预安装操作

  2. 选择安装方法:本地仓库网络仓库

3.11.2. Azure Linux 本地仓库安装

  1. 在文件系统上安装本地仓库

    sudo rpm --install cuda-repo-<distro>-X-Y-local-<version>*.x86_64.rpm
    

    其中 <distro> 应替换为以下之一

    • cm2

3.11.3. Azure Linux 网络仓库安装

  1. 启用网络仓库

    curl https://developer.download.nvidia.com/compute/cuda/repos/<distro>/x86_64/cuda-<distro>.repo | sudo tee /etc/yum.repos.d/cuda-<distro>.repo
    
  2. 清理 TDNF 仓库缓存

    sudo tdnf clean expire-cache
    

3.11.4. Azure Linux 常用安装说明

这些说明适用于 Azure Linux 的本地和网络安装。

  1. 启用 Mariner 扩展仓库

    sudo tdnf install mariner-repos-extended
    
  2. 安装 Cuda SDK

    sudo tdnf install cuda-toolkit
    
  3. 安装 GPUDirect 文件系统

    sudo tdnf install nvidia-gds
    
  4. 重启系统

    sudo reboot
    
  5. 执行安装后操作 <post-installation-actions>

3.12. 其他软件包管理器功能

以下是软件包管理器的其他一些功能,用户可以利用这些功能。

3.12.1. 可用软件包

推荐的安装包是 cuda 软件包。 此软件包将安装本地开发所需的其他 CUDA 软件包的完整集合,并且应涵盖大多数情况。

cuda 软件包安装用于本地开发的所有可用软件包。 其中包括编译器、调试器、分析器、数学库等等。 对于 x86_64 平台,这还包括 Nsight Eclipse Edition 和可视化分析器。

在受支持的平台上,cuda-cross-aarch64cuda-cross-sbsa 软件包分别安装用于交叉平台开发到 arm64-Jetson 和 arm64-Server 的所有软件包。

注意

32 位编译本机和交叉编译已从 CUDA 12.0 及更高版本的工具包中删除。 对于 32 位编译,请使用早期版本的 CUDA 工具包。 Hopper 不支持 32 位应用程序。

上述软件包安装的软件包也可以通过显式指定其名称来单独安装。 可用软件包的列表可以通过以下方式获得

dnf --disablerepo="*" --enablerepo="cuda*" list available    # Amazon Linux / Fedora / KylinOS / RHEL / Rocky Linux
tdnf --disablerepo="*" --enablerepo="cuda-cm2-<cuda X-Y version>-local" list available   # Azure Linux
zypper packages -r cuda                                      # OpenSUSE / SLES
cat /var/lib/apt/lists/*cuda*Packages | grep "Package:"      # Debian / Ubuntu

3.12.2. 元软件包

元软件包是 RPM/Deb/Conda 软件包,其中不包含(或很少包含)文件,但具有多个依赖项。 它们用于在您可能不知道所需软件包的详细信息时安装许多 CUDA 软件包。 下表列出了元软件包。

表 4 CUDA 12.8 可用的元软件包

元软件包

目的

cuda

安装所有 CUDA 工具包和驱动程序软件包。 处理升级到下一个版本的 cuda 软件包(发布时)。

cuda-12-8

安装所有 CUDA 工具包和驱动程序软件包。 保持在 12.5 版本,直到安装其他 CUDA 版本。

cuda-toolkit-12-8

安装开发 CUDA 应用程序所需的所有 CUDA 工具包软件包。 不包括驱动程序。

cuda-toolkit-16

安装开发应用程序所需的所有 CUDA 工具包软件包。 不会升级到 12.x 系列工具包之外。 不包括驱动程序。

cuda-toolkit

安装开发应用程序所需的所有 CUDA 工具包软件包。 处理升级到下一个 12.x 版本的 CUDA(发布时)。 不包括驱动程序。

cuda-tools-12-8

安装所有 CUDA 命令行和可视化工具。

cuda-runtime-12-8

安装运行 CUDA 应用程序所需的所有 CUDA 工具包软件包,以及驱动程序软件包。

cuda-compiler-12-8

安装所有 CUDA 编译器软件包。

cuda-libraries-12-8

安装所有运行时 CUDA 库软件包。

cuda-libraries-dev-12-8

安装所有开发 CUDA 库软件包。

3.12.3. 软件包升级

cuda 软件包指向 CUDA 工具包的最新稳定版本。 当新版本可用时,请使用以下命令升级工具包

3.12.3.1. Amazon Linux

sudo dnf upgrade cuda-toolkit

3.12.3.2. Fedora

当将工具包升级到新的主要分支时

sudo dnf install cuda-toolkit

当将工具包升级到新的次要分支时

sudo dnf upgrade cuda-toolkit

3.12.3.3. KylinOS / RHEL / Rocky Linux

sudo dnf install cuda-toolkit

3.12.3.4. Azure Linux

sudo tdnf install cuda-toolkit

3.12.3.5. OpenSUSE / SLES

sudo zypper install cuda-toolkit

3.12.3.6. Debian / Ubuntu

sudo apt-get install cuda-toolkit

3.12.3.7. 其他软件包注意事项

cuda-cross-<arch> 软件包也可以以相同方式升级。

某些桌面环境(例如 GNOME 或 KDE)会在新软件包可用时显示通知警报。

要避免任何自动升级,并将工具包安装锁定到 X.Y 版本,请安装 cuda-toolkit-X-Ycuda-cross-<arch>-X-Y 软件包。

支持并行安装。 例如,要同时安装 X.Y CUDA 工具包和 X.Y+1 CUDA 工具包,请安装 cuda-toolkit-X.Ycuda-toolkit-X.Y+1 软件包。

4. 驱动程序安装

有关驱动程序安装的更多信息,请参阅 Linux 驱动程序安装指南

5. Runfile 安装

基本说明可以在 快速入门指南中找到。请继续阅读以获取更详细的说明。

本节介绍使用独立安装程序时 CUDA 的安装和配置。 独立安装程序是一个 .run 文件,并且是完全独立的。

5.1. Runfile 概述

Runfile 安装通过交互式基于 ncurses 的界面安装 CUDA 工具包。

安装步骤 在下面列出。

最后,高级选项 用于安装程序,卸载步骤 在下面详细介绍。

Runfile 安装不包括对跨平台开发的支持。 对于跨平台开发,请参阅 CUDA 跨平台环境 部分。

5.2. 安装

  1. 执行预安装操作

  2. 重启进入文本模式(运行级别 3)。

    这通常可以通过将数字“3”添加到系统内核引导参数的末尾来完成。

    由于 NVIDIA 驱动程序尚未安装,文本终端可能无法正确显示。 临时将 “nomodeset” 添加到系统内核引导参数可能会解决此问题。

    有关如何进行上述引导参数更改的信息,请查阅系统引导加载程序文档。

  3. 运行安装程序并按照屏幕提示进行操作

    sudo sh cuda_<version>_linux.run
    

    安装程序将提示以下内容

    • EULA 接受

    • CUDA 工具包安装、位置和 /usr/local/cuda 符号链接

    工具包的默认安装位置是 /usr/local/cuda-12.6

    /usr/local/cuda 符号链接指向安装 CUDA 工具包的位置。 此链接允许项目使用最新的 CUDA 工具包,而无需任何配置文件更新。

    必须使用足够的权限执行安装程序才能执行某些操作。 当当前权限不足以执行操作时,安装程序将要求用户输入密码以尝试使用 root 权限进行安装。 导致安装程序尝试使用 root 权限进行安装的操作包括

    • 将 CUDA 工具包安装到用户没有写入权限的位置

    • 创建 /usr/local/cuda 符号链接

    如上所示,使用 sudo 运行安装程序将授予安装到需要 root 权限的目录的权限。 使用 sudo 运行安装程序时创建的目录和文件将具有 root 所有权。

  4. 重启系统以重新加载图形界面

    sudo reboot
    
  5. 执行安装后操作

5.3. 高级选项

操作

使用的选项

说明

静默安装

--silent

任何静默安装都必需。 基于下面提供的选项执行安装,无需进一步的用户输入,并且命令行输出最少。 静默安装对于编写 CUDA 安装脚本很有用。 使用此选项意味着接受 EULA。 以下标志可用于自定义安装期间执行的操作。 如果使用非 root 权限运行,则必须传递 --driver--uninstall--toolkit 中的至少一个。

--driver

安装 CUDA 驱动程序。

--toolkit

安装 CUDA 工具包。

--toolkitpath=<path>

将 CUDA 工具包安装到 <path> 目录。 如果未提供,则使用默认路径 /usr/local/cuda-12.6

--defaultroot=<path>

将库安装到 <path> 目录。 如果未提供 <path>,则使用发行版的默认路径。 这仅适用于 CUDA 工具包路径之外安装的库。

提取

--extract=<path>

将以下内容提取到 <path>:驱动程序 runfile,工具包的原始文件到 <path>。

当有人想要使用驱动程序安装程序提供的一个或多个命令行选项安装驱动程序时,这尤其有用,这些选项在此安装程序中未公开。

覆盖安装检查

--override

忽略编译器、第三方库和工具包检测检查,这些检查会阻止 CUDA 工具包安装。

无 OpenGL 库

--no-opengl-libs

阻止驱动程序安装安装 NVIDIA 的 GL 库。 适用于显示器由非 NVIDIA GPU 驱动的系统。 在此类系统中,NVIDIA 的 GL 库可能会阻止 X 正确加载。

无 man 页面

--no-man-page

不要在 /usr/share/man 下安装 man 页面。

覆盖内核源

--kernel-source-path=<path>

告诉驱动程序安装在构建 NVIDIA 内核模块时使用 <path> 作为内核源目录。 对于内核源安装在非标准位置的系统是必需的。

运行 nvidia-xconfig

--run-nvidia-xconfig

告诉驱动程序安装运行 nvidia-xconfig 以更新系统 X 配置文件,以便使用 NVIDIA X 驱动程序。 预先存在的 X 配置文件将被备份。

无 nvidia-drm 内核模块

--no-drm

不要安装 nvidia-drm 内核模块。 此选项仅应用于解决在不需要提供功能的系统上构建或安装 nvidia-drm 内核模块的失败问题。

自定义临时目录选择

--tmpdir=<path>

在 <path> 中而不是 /tmp 中执行任何临时操作。 在无法使用 /tmp 的情况下很有用(不存在、已满、以 ‘noexec’ 等方式挂载)。

内核模块构建目录

--kernel-module-build-directory=<kernel|kernel-open>

告诉驱动程序安装在构建 NVIDIA 内核模块时使用内核源的传统或开放风格。 kernel-open 风格仅在 Turing GPU 及更新版本上受支持。

-m=kernel

告诉驱动程序安装在构建 NVIDIA 内核模块时使用内核源的传统风格。 --kernel-module-build-directory=kernel 的简写

m=kernel-open

告诉驱动程序安装在构建 NVIDIA 内核模块时使用内核源的开放风格。 kernel-open 风格仅在 Turing GPU 及更新版本上受支持。 --kernel-module-build-directory=kernel-open 的简写

显示安装程序选项

--help

将命令行选项列表打印到 stdout。

5.4. 卸载

要卸载 CUDA 工具包,请运行工具包的 bin 目录中提供的卸载脚本。 默认情况下,它位于 /usr/local/cuda-12.6/bin

sudo /usr/local/cuda-12.6/bin/cuda-uninstaller

6. Conda 安装

本节介绍使用 Conda 安装程序时 CUDA 的安装和配置。 Conda 软件包可在 https://anaconda.org/nvidia 上找到。

6.1. Conda 概述

Conda 安装安装 CUDA 工具包。 安装步骤在下面列出。

6.2. 使用 Conda 安装 CUDA

要使用 Conda 执行所有 CUDA 工具包组件的基本安装,请运行以下命令

conda install cuda -c nvidia

6.3. 使用 Conda 卸载 CUDA

要使用 Conda 卸载 CUDA 工具包,请运行以下命令

conda remove cuda

6.4. 安装以前的 CUDA 版本

在特定 CUDA 版本下发布的所有 Conda 软件包都标有该发布版本。 要安装以前的版本,请在 install 命令中包含该标签,例如

conda install cuda -c nvidia/label/cuda-12.4.0

6.5. 从 cudatoolkit 软件包升级

如果您之前使用 cudatoolkit 软件包安装了 CUDA,并且想要保持类似的安装占用空间,则可以将安装限制为以下软件包

  • cuda-libraries-dev

  • cuda-nvcc

  • cuda-nvtx

  • cuda-cupti

注意

某些额外文件(例如标头)将包含在此安装中,这些文件未包含在 cudatoolkit 软件包中。 如果您需要进一步减少安装,请将 cuda-libraries-dev 替换为您需要的特定库。

7. Pip Wheels

NVIDIA 提供 Python Wheels 以通过 pip 安装 CUDA,主要用于将 CUDA 与 Python 结合使用。 这些软件包旨在用于运行时,目前不包括开发人员工具(这些工具可以单独安装)。

请注意,使用此安装方法,CUDA 安装环境通过 pip 管理,并且必须格外小心地设置您的主机环境,以便在 pip 环境之外使用 CUDA。

先决条件

要安装 Wheels,您必须首先安装 nvidia-pyindex 软件包,这是设置 pip 安装以从 NVIDIA NGC PyPI 仓库获取其他 Python 模块所必需的。 如果您的 pip 和 setuptools Python 模块不是最新的,请使用以下命令升级这些 Python 模块。 如果这些 Python 模块已过时,则本节稍后介绍的命令可能会失败。

python3 -m pip install --upgrade setuptools pip wheel

您现在应该能够安装 nvidia-pyindex 模块。

python3 -m pip install nvidia-pyindex

如果您的项目正在使用 requirements.txt 文件,则可以将以下行添加到您的 requirements.txt 文件中,作为安装 nvidia-pyindex 软件包的替代方法

--extra-index-url https://pypi.ac.cn/simple

步骤

安装 CUDA 运行时软件包

python3 -m pip install nvidia-cuda-runtime-cu12

(可选)使用以下命令安装下面列出的其他软件包

python3 -m pip install nvidia-<library>

元软件包

以下元软件包将在 Linux 上为指示的 CUDA 版本安装命名组件的最新版本。 “cu12” 应理解为 “cuda12”。

  • nvidia-cuda-runtime-cu12

  • nvidia-cuda-cccl-cu12

  • nvidia-cuda-cupti-cu12

  • nvidia-cuda-nvcc-cu12

  • nvidia-cuda-opencl-cu12

  • nvidia-cuda-nvrtc-cu12

  • nvidia-cublas-cu12

  • nvidia-cuda-sanitizer-api-cu12

  • nvidia-cufft-cu12

  • nvidia-curand-cu12

  • nvidia-cusolver-cu12

  • nvidia-cusparse-cu12

  • nvidia-npp-cu12

  • nvidia-nvfatbin-cu12

  • nvidia-nvjitlink-cu12

  • nvidia-nvjpeg-cu12

  • nvidia-nvml-dev-cu12

  • nvidia-nvtx-cu12

这些元软件包安装以下软件包

  • nvidia-cuda-runtime-cu128

  • nvidia-cuda-cccl-cu128

  • nvidia-cuda-cupti-cu128

  • nvidia-cuda-nvcc-cu128

  • nvidia-cuda-opencl-cu128

  • nvidia-cublas-cu126

  • nvidia-cuda-sanitizer-api-cu128

  • nvidia-cuda-nvrtc-cu128

  • nvidia-cufft-cu128

  • nvidia-curand-cu128

  • nvidia-cusolver-cu128

  • nvidia-cusparse-cu128

  • nvidia-npp-cu128

  • nvidia-nvfatbin-cu128

  • nvidia-nvjitlink-cu128

  • nvidia-nvjpeg-cu128

  • nvidia-nvml-dev-cu128

  • nvidia-nvtx-cu128

8. CUDA 跨平台环境

Ubuntu 20.04、Ubuntu 22.04、Ubuntu 24.04、KylinOS 10、RHEL 8、RHEL 9 和 SLES 15 支持 arm64-sbsa 的交叉开发。

Ubuntu 22.04 仅支持 arm64-Jetson 的交叉开发

我们建议选择与支持的交叉目标环境匹配的主机开发环境。 此选择有助于防止可能的主机/目标不兼容性,例如 GCC 或 GLIBC 版本不匹配。

8.1. CUDA 跨平台安装

以下某些步骤可能已作为本地安装部分的一部分执行。 可以安全地跳过这些步骤。

这些步骤应在 x86_64 主机系统上执行,而不是在目标系统上执行。 要在目标系统上安装本机 CUDA 工具包,请参阅软件包管理器安装中的本机安装部分。

8.1.1. Ubuntu

  1. 执行预安装操作。

  2. 选择安装方法:本地仓库网络仓库

8.1.1.1. Ubuntu 的本地交叉仓库安装

  1. 使用以下命令安装仓库元数据包

    sudo dpkg -i cuda-repo-cross-<arch>-<distro>-X-Y-local-<version>*_all.deb
    

    其中 <arch>-<distro> 应替换为以下之一

    • aarch64-ubuntu2204

    • sbsa-ubuntu2004

    • sbsa-ubuntu2204

    • sbsa-ubuntu2404

8.1.1.2. Ubuntu 的网络交叉仓库安装

CUDA 仓库的新 GPG 公钥是 3bf863cc。 这必须在系统上注册,可以使用 cuda-keyring 软件包或手动注册; apt-key 命令已弃用,不建议使用。

  1. 安装新的 cuda-keyring 软件包

    wget https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    

    其中 <distro>/<arch> 应替换为以下之一

    • ubuntu2004/cross-linux-sbsa

    • ubuntu2204/cross-linux-aarch64

    • ubuntu2204/cross-linux-sbsa

    • ubuntu2404/cross-linux-sbsa

8.1.1.3. Ubuntu 的通用安装说明

  1. 更新 Apt 仓库缓存

    sudo apt-get update
    
  2. 安装适当的跨平台 CUDA 工具包

    1. 对于 arm64-sbsa

      sudo apt-get install cuda-cross-sbsa
      
    2. 对于 arm64-Jetson

      sudo apt-get install cuda-cross-aarch64
      
    3. 对于 QNX

      sudo apt-get install cuda-cross-qnx
      
  3. 执行后安装操作。

8.1.2. KylinOS / RHEL / Rocky Linux

  1. 执行预安装操作。

  2. 选择安装方法:本地仓库网络仓库

8.1.2.1. KylinOS / RHEL / Rocky Linux 的本地交叉仓库安装

  1. 使用以下命令安装仓库元数据包

    sudo rpm -i cuda-repo-cross-<arch>-<distro>-X-Y-local-<version>*.noarch.rpm
    

    其中 <arch>-<distro> 应替换为以下之一

    • sbsa-kylin10

    • sbsa-rhel8

    • sbsa-rhel9

8.1.2.2. KylinOS / RHEL / Rocky Linux 的网络交叉仓库安装

  1. 启用网络仓库

    sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>/cuda-<distro>-cross-linux-sbsa.repo
    

    其中 <distro>/<arch> 应替换为以下之一

    • kylin10/cross-linux-sbsa

    • rhel8/cross-linux-sbsa

    • rhel9/cross-linux-sbsa

8.1.2.3. KylinOS / RHEL / Rocky Linux 的通用安装说明

  1. 清理 DNF 仓库

    sudo dnf clean all
    
  2. 安装 CUDA 工具

    sudo dnf install cuda-cross-sbsa
    

8.1.3. SLES

  1. 执行预安装操作。

  2. 选择安装方法:本地仓库网络仓库

8.1.3.1. SLES 的本地交叉仓库安装

  1. 使用以下命令安装仓库元数据包

    sudo rpm -i cuda-repo-cross-<arch>-<distro>-X-Y-local-<version>*.noarch.rpm
    

    其中 <arch>-<distro> 应替换为以下之一

    • sbsa-sles15

8.1.3.2. SLES 的网络交叉仓库安装

  1. 启用网络仓库

    sudo zypper addrepo https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>/cuda-<distro>-cross-linux-sbsa.repo
    

    其中 <distro>/<arch> 应替换为以下之一

    • sles15/cross-linux-sbsa

8.1.3.3. SLES 的通用安装说明

  1. 刷新 Zypper 仓库缓存

    sudo zypper refresh
    
  2. 安装 CUDA 工具

    sudo zypper install cuda-cross-sbsa
    

9. Tarball 和 Zip 归档交付件

为了满足不断增长的客户群的需求,他们需要替代的安装程序包格式,以及社区 CI/CD 系统的输入手段,每个组件都提供了 tarball 和 zip 归档文件。

这些 tarball 和 zip 归档文件,也称为二进制归档文件,可在 https://developer.download.nvidia.com/compute/cuda/redist/ 找到。

_images/tarball-archives.png

这些组件的 .tar.xz 和 .zip 二进制归档文件不会取代现有的软件包,如 .deb、.rpm、runfile、conda 等,也不适用于一般消费,因为它们不是安装程序。然而,这种标准化方法将取代现有的 .txz 归档文件。

对于每个版本,都会提供一个 JSON 清单,例如 redistrib_11.4.2.json,它对应于 CUDA 11.4.2 版本标签(CUDA 11.4 更新 2),其中包括发布日期、每个组件的名称、许可证名称、每个平台的相对 URL 和校验和。

建议软件包维护人员在重新分发之前检查每个组件提供的 LICENSE。后续章节提供了针对使用 CMake 和 Bazel 构建系统的开发人员的说明。

9.1. 解析 Redistrib JSON

以下 JSON 清单示例包含每个组件的键:name、license、version 和平台数组,其中包括每个归档文件的 relative_path、sha256、md5 和 size(字节)。

{
    "release_date": "2021-09-07",
    "cuda_cudart": {
        "name": "CUDA Runtime (cudart)",
        "license": "CUDA Toolkit",
        "version": "11.4.108",
        "linux-x86_64": {
            "relative_path": "cuda_cudart/linux-x86_64/cuda_cudart-linux-x86_64-11.4.108-archive.tar.xz",
            "sha256": "d08a1b731e5175aa3ae06a6d1c6b3059dd9ea13836d947018ea5e3ec2ca3d62b",
            "md5": "da198656b27a3559004c3b7f20e5d074",
            "size": "828300"
        },
        "linux-ppc64le": {
            "relative_path": "cuda_cudart/linux-ppc64le/cuda_cudart-linux-ppc64le-11.4.108-archive.tar.xz",
            "sha256": "831dffe062ae3ebda3d3c4010d0ee4e40a01fd5e6358098a87bb318ea7c79e0c",
            "md5": "ca73328e3f8e2bb5b1f2184c98c3a510",
            "size": "776840"
        },
        "linux-sbsa": {
            "relative_path": "cuda_cudart/linux-sbsa/cuda_cudart-linux-sbsa-11.4.108-archive.tar.xz",
            "sha256": "2ab9599bbaebdcf59add73d1f1a352ae619f8cb5ccec254093c98efd4c14553c",
            "md5": "aeb5c19661f06b6398741015ba368102",
            "size": "782372"
        },
        "windows-x86_64": {
            "relative_path": "cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-11.4.108-archive.zip",
            "sha256": "b59756c27658d1ea87a17c06d064d1336576431cd64da5d1790d909e455d06d3",
            "md5": "7f6837a46b78198402429a3760ab28fc",
            "size": "2897751"
        }
    }
}

JSON 架构在 https://developer.download.nvidia.com/compute/redist/redistrib-v2.schema.json 中提供。

可在 GitHub 上找到解析这些 JSON 清单的示例脚本

  • 下载每个归档文件

  • 验证 SHA256 校验和

  • 提取归档文件

  • 展平到折叠目录结构中

表 5 可用的 Tarball 和 Zip 归档文件

产品

示例

CUDA 工具包

./parse_redist.py --product cuda --label 12.6.0

cuBLASMp

./parse_redist.py --product cublasmp --label 0.2.1

cuDNN

./parse_redist.py --product cudnn --label 9.2.1

cuDSS

./parse_redist.py --product cudss --label 0.3.0

cuQuantum

./parse_redist.py --product cuquantum --label 24.03.0

cuSPARSELt

./parse_redist.py --product cusparselt --label 0.6.2

cuTENSOR

./parse_redist.py --product cutensor --label 2.0.2.1

NVIDIA 驱动程序

./parse_redist.py --product nvidia-driver --label 550.90.07

nvJPEG2000

./parse_redist.py --product nvjpeg2000 --label 0.7.5

NVPL

./parse_redist.py --product nvpl --label 24.7

nvTIFF

./parse_redist.py --product nvtiff --label 0.3.0

9.2. 将 Tarball 导入 CMake

将这些 tarball 导入 CMake 构建系统的推荐模块是通过 FindCUDAToolkit(3.17 及更高版本)。

注意

FindCUDA 模块已弃用。

可以使用 CUDAToolkit_ROOT 环境变量指定提取位置的路径。有关示例 CMakeLists.txt 和命令,请参阅 cmake/1_FindCUDAToolkit/

对于旧版本的 CMake,ExternalProject_Add 模块是另一种方法。有关示例 CMakeLists.txt 文件和命令,请参阅 cmake/2_ExternalProject/

9.3. 将 Tarball 导入 Bazel

将这些 tarball 导入 Bazel 构建系统的推荐方法是使用 http_archivepkg_tar

有关示例,请参阅 bazel/1_pkg_tar/

10. 后安装操作

后安装操作必须手动执行。这些操作分为强制性、推荐性和可选性部分。

10.1. 强制性操作

在可以使用 CUDA 工具包之前,安装后必须执行一些操作。

10.1.1. 环境设置

PATH 变量需要包含 export PATH=/usr/local/cuda-12.8/bin${PATH:+:${PATH}}。Nsight Compute 仅在 rpm/deb 安装方法中已移至 /opt/nvidia/nsight-compute/。当使用 .run 安装程序时,它仍然位于 /usr/local/cuda-12.6/ 下。

要将此路径添加到 PATH 变量

export PATH=/usr/local/cuda-12.6/bin${PATH:+:${PATH}}

此外,当使用 runfile 安装方法时,LD_LIBRARY_PATH 变量需要在 64 位系统上包含 /usr/local/cuda-12.8/lib64,或者在 32 位系统上包含 /usr/local/cuda-12.8/lib

  • 要更改 64 位操作系统的环境变量

    export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64\
                             ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    
  • 要更改 32 位操作系统的环境变量

    export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib\
                             ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    

请注意,当使用 runfile 安装方法和自定义安装路径时,上述路径会发生变化。

10.3. 可选操作

其他选项对于使用 CUDA 工具包不是必需的,但可用于提供其他功能。

10.3.1. 安装第三方库

一些 CUDA 示例使用第三方库,这些库可能未在您的系统上默认安装。这些示例在构建时尝试检测任何所需的库。

如果未检测到库,它将放弃自身并警告您缺少哪个库。要构建和运行这些示例,您必须安装缺少的库。如果未安装这些依赖项,请按照以下说明操作。

Amazon Linux / Fedora / KylinOS / RHEL / Rocky Linux

sudo dnf install freeglut-devel libX11-devel libXi-devel libXmu-devel \
    make mesa-libGLU-devel freeimage-devel libglfw3-devel

SLES

sudo zypper install libglut3 libX11-devel libXi6 libXmu6 libGLU1 make

OpenSUSE

sudo zypper install freeglut-devel libX11-devel libXi-devel libXmu-devel \
    make Mesa-libGL-devel freeimage-devel

Debian / Ubuntu

sudo apt-get install g++ freeglut3-dev build-essential libx11-dev \
    libxmu-dev libxi-dev libglu1-mesa-dev libfreeimage-dev libglfw3-dev

10.3.2. 安装 cuda-gdb 的源代码

cuda-gdb 源代码必须使用 runfile 安装方法显式选择安装。在安装期间,在组件选择页面中,展开组件“CUDA Tools 12.8”并选择 cuda-gdb-src 进行安装。默认情况下,它处于未选中状态。

要使用 RPM 和 Debian 安装方法获取 cuda-gdb 的源代码副本,必须安装 cuda-gdb-src 软件包。

源代码以 tarball 形式安装在 /usr/local/cuda-12.8/extras 目录中。

10.3.3. 选择 CUDA 的活动版本

对于依赖于符号链接 /usr/local/cuda/usr/local/cuda-MAJOR 的应用程序,您可能希望使用提供的替代方案更改为 CUDA 的其他已安装版本。

显示 CUDA 的活动版本和所有可用版本

update-alternatives --display cuda

显示给定主要 CUDA 版本的活动次要版本

update-alternatives --display cuda-12

更新 CUDA 的活动版本

sudo update-alternatives --config cuda

11. 删除 CUDA 工具包

请按照以下步骤正确地从您的系统中卸载 CUDA 工具包。这些步骤将确保卸载是干净的。

Amazon Linux / Fedora / Kylin OS / RHEL / Rocky Linux

删除 CUDA 工具包

sudo dnf remove "cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \
                    "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"

Azure Linux

删除 CUDA 工具包

sudo tdnf remove "cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"

清理卸载

sudo tdnf autoremove

OpenSUSE / SLES

删除 CUDA 工具包

sudo zypper remove "cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \
 "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"

Debian / Ubuntu

删除 CUDA 工具包

sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \
 "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"

清理卸载

sudo apt-get autoremove --purge -V

12. 高级设置

以下是关于一些高级设置场景的信息,这些场景未在上面的基本说明中涵盖。

表 6 安装 CUDA 时的高级设置场景

场景

说明

安装 GPUDirect Storage

请参阅 安装 GPUDirect Storage

GDS 在两种不同的模式下受支持

  • GDS(默认/全性能模式)

  • 兼容模式。

它们的安装说明略有不同。由于软件依赖性限制,兼容模式是某些发行版上唯一支持的模式。

完整的 GDS 支持仅限于以下 Linux 发行版

  • Ubuntu 20.04、Ubuntu 22.04、Ubuntu 24.04

  • RHEL 8.y (y <= 10)、RHEL 9.y (y <= 5)

使用软件包管理器安装方法将 CUDA 安装到特定目录。

RPM

RPM 软件包不支持通过软件包管理器(Yum 和 Zypper)自定义安装位置,但可以使用 rpm 的 --relocate 参数将 RPM 软件包安装到自定义位置

sudo rpm --install --relocate /usr/local/cuda-12.6=/new/toolkit package.rpm

您需要以正确的依赖顺序安装软件包;此任务通常由软件包管理器负责处理。例如,如果软件包“foo”依赖于软件包“bar”,则应先安装软件包“bar”,然后再安装软件包“foo”。您可以按如下方式检查 RPM 软件包的依赖项

rpm -qRp package.rpm

请注意,驱动程序软件包无法重定位。

Deb

Deb 软件包不支持自定义安装位置。但是,可以提取 Deb 软件包的内容,并将文件移动到所需的安装位置。有关提取 Deb 软件包的更多详细信息,请参阅下一个场景。

提取安装程序的内容。

Runfile

可以使用 --extract 参数将 Runfile 提取到独立的工具包 Runfile 中。可以通过运行以下命令进一步提取工具包独立的 Runfile

./runfile.run --tar mxvf
./runfile.run -x

RPM

可以通过运行以下命令提取 RPM 软件包

rpm2cpio package.rpm | cpio -idmv

Deb

可以通过运行以下命令提取 Deb 软件包

dpkg-deb -x package.deb output_dir

修改 Ubuntu 的 apt 软件包管理器以查询特定存储库的特定架构。

当添加了外部架构时,这很有用,这会导致在更新存储库元数据时出现“404 Not Found”错误。

您希望限制为特定架构的每个存储库都必须修改其 sources.list 条目。这是通过修改 /etc/apt/sources.list 文件和 /etc/apt/sources.list.d/ 目录下包含您希望限制的存储库的任何文件来完成的。通常,仅修改 /etc/apt/sources.list 中的条目就足够了

架构受限的存储库条目如下所示

deb [arch=<arch1>,<arch2>] <url>

例如,如果您想将存储库限制为仅 amd64 和 i386 架构,它将如下所示

deb [arch=amd64,i386] <url>

没有必要限制 deb-src 存储库,因为这些存储库不提供特定于架构的软件包。

有关更多详细信息,请参阅 sources.list 手册页。

由于 TMP 目录中的空间有限,runfile 安装程序无法提取。

这可能会发生在 TMP 目录(通常为 /tmp)存储空间有限的系统上,或者在使用内存中的 tmpfs 来处理临时存储的系统上。在这种情况下,应使用 --tmpdir 命令行选项来指示 runfile 使用具有足够空间进行提取的目录。有关此选项的更多信息,请参见高级选项

如果出现错误:E: Failed to fetch file:/var/cuda-repo File not found

Debian 和 Ubuntu

这可能在卸载不同版本后安装 CUDA 时发生。在安装前使用以下命令

sudo rm -v /var/lib/apt/lists/*cuda* /var/lib/apt/lists/*nvidia*

Debian 和 Ubuntu 上的详细安装

使用 --verbose-versions 标志,例如

sudo apt-get install --verbose-versions cuda

13. 其他注意事项

现在您已经拥有了 CUDA 兼容硬件和 NVIDIA CUDA 工具包,您可以检查并享受众多包含的程序。要开始使用 CUDA 加速您自己的应用程序的性能,请查阅 CUDA C++ 编程指南,该指南位于 /usr/local/cuda-12.8/doc 中。

CUDA 工具包中包含许多有用的开发工具,可帮助您开发 CUDA 程序,例如 NVIDIA® Nsight™ Eclipse Edition、NVIDIA Visual Profiler、CUDA-GDB 和 CUDA-MEMCHECK。

如需有关编程问题的技术支持,请访问并参与开发者论坛:https://forums.developer.nvidia.com/c/accelerated-computing/cuda/206

14. 常见问题解答

14.1. 如何在不同的位置安装工具包?

Runfile 安装程序在交互式安装期间会询问您希望将工具包安装在何处。如果使用非交互式安装进行安装,则可以使用 --toolkitpath 参数来更改安装位置

./runfile.run --silent \
                --toolkit --toolkitpath=/my/new/toolkit

RPM 和 Deb 软件包无法直接使用软件包管理器安装到自定义安装位置。有关更多信息,请参阅高级设置部分中的“使用软件包管理器安装方法将 CUDA 安装到特定目录”场景。

14.2. 当我尝试构建 CUDA 应用程序时,为什么会看到“nvcc: No such file or directory”?

您的 PATH 环境变量未正确设置。确保您的 PATH 包含您安装工具包的 bin 目录,通常为 /usr/local/cuda-12.8/bin

export PATH=/usr/local/cuda-12.6/bin${PATH:+:${PATH}}

14.3. 当我尝试运行使用 CUDA 库的 CUDA 应用程序时,为什么会看到“error while loading shared libraries: <lib name>: cannot open shared object file: No such file or directory”?

您的 LD_LIBRARY_PATH 环境变量未正确设置。确保您的 LD_LIBRARY_PATH 包含您安装工具包的 lib 和/或 lib64 目录,通常为 /usr/local/cuda-12.8/lib{,64}

export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib\
                         ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

14.4. 为什么我在 Ubuntu 上更新存储库元数据时看到多个“404 Not Found”错误?

添加外部架构后会发生这些错误,因为 apt 正在尝试查询系统 sources.list 文件中列出的每个存储库中的每个架构。不为新添加的架构托管软件包的存储库将显示此错误。虽然很嘈杂,但错误本身并无害。请参阅高级设置部分,了解有关如何修改 sources.list 文件以防止这些错误的详细信息。

14.5. 如何告诉 X 忽略 GPU 以进行仅计算使用?

要确保 X 不会将特定 GPU 用于显示,您需要指定要用于显示的其他 GPU。有关更多信息,请参阅高级设置部分中的“使用特定 GPU 渲染显示器”场景。

14.6. 为什么 cuda-repo 软件包不安装 CUDA 工具包?

当使用 RPM 或 Deb 时,下载的软件包是存储库软件包。此类软件包仅告知软件包管理器在哪里可以找到实际的安装软件包,但不会安装它们。

有关更多详细信息,请参阅软件包管理器安装部分。

14.7. 如何使用网络仓库安装旧版本的 CUDA?

根据您的系统配置,您可能无法使用 cuda 元软件包安装旧版本的 CUDA。为了安装特定版本的 CUDA,您可能需要指定通常由 cuda 元软件包安装的所有软件包,以及您要安装的版本。

如果您使用 yum 安装特定版本的旧软件包,则依赖项可能无法按预期解析。在这种情况下,您可能需要将“--setopt=obsoletes=0”传递给 yum,以允许安装在您尝试安装的版本之后被废弃的软件包。

14.8. 如何处理“Errors were encountered while processing: glx-diversions”?

当尝试在干净的 .deb 安装后卸载 CUDA 时,有时会发生这种情况。运行以下命令

sudo apt-get install glx-diversions --reinstall
sudo apt-get remove nvidia-alternative

然后重新运行来自删除 CUDA 工具包的命令。

15. 声明

15.1. 声明

本文件仅供参考,不应被视为对产品特定功能、状况或质量的保证。NVIDIA Corporation(“NVIDIA”)对本文档所含信息的准确性或完整性不作任何明示或暗示的陈述或保证,并且对本文档中包含的任何错误不承担任何责任。对于因使用此类信息而造成的后果或使用,或因其使用可能导致的侵犯第三方专利或其他权利的行为,NVIDIA概不负责。本文档不构成对开发、发布或交付任何材料(如下所定义)、代码或功能的承诺。

NVIDIA 保留随时对此文档进行更正、修改、增强、改进和任何其他更改的权利,恕不另行通知。

客户在下订单前应获取最新的相关信息,并应验证此类信息是否为最新且完整。

NVIDIA 产品的销售受订单确认时提供的 NVIDIA 标准销售条款和条件约束,除非 NVIDIA 和客户的授权代表签署的个别销售协议(“销售条款”)另有约定。NVIDIA 在此明确反对将客户通用条款和条件应用于购买本文档中引用的 NVIDIA 产品。本文档不直接或间接地形成任何合同义务。

NVIDIA 产品并非设计、授权或保证适用于医疗、军事、航空、航天或生命维持设备,也不适用于 NVIDIA 产品的故障或 malfunction 可以合理预期会导致人身伤害、死亡或财产或环境损害的应用。NVIDIA 对在此类设备或应用中包含和/或使用 NVIDIA 产品不承担任何责任,因此,此类包含和/或使用由客户自行承担风险。

NVIDIA 不保证或声明基于本文档的产品将适用于任何特定用途。NVIDIA 不一定会对每个产品的所有参数进行测试。客户全权负责评估和确定本文档中包含的任何信息的适用性,确保产品适用于并适合客户计划的应用,并为该应用执行必要的测试,以避免应用或产品的故障。客户产品设计中的缺陷可能会影响 NVIDIA 产品的质量和可靠性,并可能导致超出本文档中包含的附加或不同的条件和/或要求。对于可能基于或归因于以下原因的任何故障、损坏、成本或问题,NVIDIA 概不负责:(i) 以任何违反本文档的方式使用 NVIDIA 产品,或 (ii) 客户产品设计。

本文件未授予任何 NVIDIA 专利权、版权或其他 NVIDIA 知识产权的明示或暗示许可。NVIDIA 发布的有关第三方产品或服务的信息不构成 NVIDIA 授予的使用此类产品或服务的许可,也不构成对其的保证或认可。使用此类信息可能需要获得第三方专利或其他知识产权的许可,或获得 NVIDIA 专利或其他知识产权的许可。

只有在事先获得 NVIDIA 书面批准的情况下,才允许复制本文档中的信息,且复制必须未经改动并完全遵守所有适用的出口法律和法规,并附带所有相关的条件、限制和声明。

本文件以及所有 NVIDIA 设计规范、参考板、文件、图纸、诊断程序、列表和其他文档(统称为“材料”,单独称为“材料”)均按“原样”提供。NVIDIA 对这些材料不作任何明示、暗示、法定或其他形式的保证,并明确声明不承担所有关于不侵权、适销性和特定用途适用性的暗示保证。在法律未禁止的范围内,在任何情况下,NVIDIA 均不对因使用本文档而引起的任何损害(包括但不限于任何直接、间接、特殊、附带、惩罚性或后果性损害,无论何种原因造成,也无论基于何种责任理论)承担责任,即使 NVIDIA 已被告知可能发生此类损害。尽管客户可能因任何原因遭受任何损害,NVIDIA 对此处描述产品的累计总责任应根据产品的销售条款进行限制。

15.2. OpenCL

OpenCL 是 Apple Inc. 的商标,Khronos Group Inc. 被许可使用。

15.3. 商标

NVIDIA 和 NVIDIA 徽标是 NVIDIA Corporation 在美国和其他国家/地区的商标或注册商标。其他公司和产品名称可能是与其相关的各自公司的商标。