数据中心/云端

NVIDIA 全面转向开源 GPU 内核模块

借助 R515 驱动程序,NVIDIA 于 2022 年 5 月发布了一套开源的 Linux GPU 内核 模块,该模块采用双许可证,即 GPL 和 MIT 许可。初始版本主要面向数据中心计算 GPU,而 GeForce 和工作站 GPU 则处于 Alpha 状态。

当时,我们宣布,在后续版本中将提供更可靠、功能齐全的 GeForce 和工作站 Linux 支持, NVIDIA 开放内核模块最终将取代闭源驱动。

NVIDIA GPU 具有通用的驱动架构和功能集。这意味着同一驱动适用于您的台式机或笔记本电脑,也可在云端运行世界上最先进的 AI 工作负载。对我们来说,正确的选择非常重要。

两年过去了,我们利用开源的 GPU 内核模块实现了与原来的应用程序性能相当或更好的性能,并添加了大量新的功能。

  • 异构内存管理 (HMM) 支持
  • 机密计算
  • Grace 平台的连贯内存架构
  • 等等

现在,我们处于完全过渡到开源 GPU 内核模块的时刻,这是正确的做法。在即将发布的 R560 驱动版本中,我们将作出这一更改。

支持的 GPU

并不是每个 GPU 都能与开源 GPU 内核模块兼容。

对于 NVIDIA Grace Hopper 或 NVIDIA Blackwell 等尖端平台,您必须使用开源的 GPU 内核模块,因为这些平台不支持专有的驱动程序。

对于来自 Turing、Ampere、Ada Lovelace 或 Hopper 架构的较新 GPU,NVIDIA 建议将其切换到开源的 GPU 内核模块。

对于 Maxwell、Pascal 或 Volta 架构中的旧版 GPU,其开源 GPU 内核模块不兼容您的平台。因此,请继续使用 NVIDIA 专有驱动。

对于在同一系统中混合部署较旧和较新 GPU,请继续使用专有驱动程序。

如果您不确定,NVIDIA 提供了一种新的检测辅助脚本,以帮助指导您选择合适的驱动程序。有关更多信息,请参阅本文后面的使用安装辅助脚本部分。

安装程序更改

通常情况下,通过各种安装方法安装的驱动程序默认版本正在从专有驱动程序切换到开源驱动程序。这有一些特定情况值得特别注意:

  • 具有 CUDA 元软件包的软件包管理器
  • 运行文件
  • 安装辅助脚本
  • 软件包管理器详细信息
  • 适用于 Linux 的 Windows 子系统
  • CUDA 工具包

将软件包管理器与 CUDA 元软件包结合使用

当您使用包管理器(而非 .run 文件)安装 CUDA 工具包时,存在并常用的安装元包。通过安装顶级 cuda 软件包,您将安装 CUDA 工具包和相关驱动版本的组合。例如,在 CUDA 12.5 发布时间范围内安装 cuda 时,您将获得专有的 NVIDIA 驱动 515 以及 CUDA 工具包 12.5。

图 1 显示此软件包结构。

Diagram shows the flow of installing CUDA software that includes installing both the nvidia-driver-555 and cuda-toolkit-12.5 modules.
图 1.CUDA 工具包 12.6 之前的 CUDA 软件包

以前,使用开源 GPU 内核模块意味着您可以使用顶级元软件包。这意味着您需要安装发行版特定的 NVIDIA 驱动开放软件包,同时还需要安装您选择的 cuda-toolkit-X-Y 软件包。

从 CUDA 12.6 版本开始,流的位置将有效切换(图 2)。

Diagram shows the revised flow of installing CUDA software, where the nvidia-driver-open-560 and cuda-toolkit-12.6 modules are installed instead.
图 2. CUDA 工具包 12.6 版本发布后的 CUDA 软件包

使用运行文件

如果您使用 .run 文件安装 CUDA 或 NVIDIA 驱动,安装程序将查询您的硬件,并自动安装最适合您系统的驱动。此外,您还可以使用 UI 开关来选择专有驱动或开源驱动。

如果您通过 CUDA .run 文件并使用 ncurses 用户界面进行安装,现在将看到一个类似于以下内容的菜单:

┌──────────────────────────────────────────────────────────────────────────────┐
│ CUDA Driver                                                                  │
│   [ ] Do not install any of the OpenGL-related driver files                  │
│   [ ] Do not install the nvidia-drm kernel module                            │
│   [ ] Update the system X config file to use the NVIDIA X driver             │
│ - [X] Override kernel module type                                            │
│      [X] proprietary                                                         │
│      [ ] open                                                                │
│   Change directory containing the kernel source files                        │
│   Change kernel object output directory                                      │
│   Done                                                                       │
│                                                                              │
│                                                                              │
│                                                                              │
│ Up/Down: Move | Left/Right: Expand | 'Enter': Select | 'A': Advanced options │
└──────────────────────────────────────────────────────────────────────────────┘

如果您通过驱动 .run 文件进行安装,将看到类似的选择(图 3)。

Screenshot shows the user interface highlighting two buttons labeled NVIDIA Proprietary and MIT/GPL, respectively. It suggests the user choose the MIT/GPL button to install the correct kernel module type.
图 3. 新的运行文件交互式选择(驱动安装程序)

如果您使用 Ansible 等自动化工具,也可以使用命令行传递 overrides,以在不使用用户界面的情况下进行安装。

# sh ./cuda_12.6.0_560.22_linux.run --override --kernel-module-type=proprietary
 
# sh ./NVIDIA-Linux-x86_64-560.run --kernel-module-type=proprietary

使用安装助手脚本

如前所述,如果您不确定为系统中的 GPU 选择哪种驱动程序,NVIDIA 创建了一个辅助脚本,以指导您完成驱动程序的选择过程。

要使用它,请首先使用包管理器安装nvidia-driver-assistant包,然后运行该脚本。

$ nvidia-driver-assistant

软件包管理器详细信息

为获得一致的体验,NVIDIA 建议您使用软件包管理器来安装 CUDA 工具包和驱动。然而,具体来说,不同的发行版使用哪些软件包管理系统或软件包的结构方式可能会因您的特定发行版而异。

本节概述了各种平台所需的具体细节、注意事项或迁移步骤。

apt:基于 Ubuntu 和 Debian 的发行版

运行以下命令:

$ sudo apt-get install nvidia-open

要在 Ubuntu 20.04 上使用 cuda 元软件包进行升级,请先切换到开启的内核模块。

$ sudo apt-get install -V nvidia-kernel-source-open
 
$ sudo apt-get install nvidia-open

dnf:Red Hat Enterprise Linux、Fedora、Kylin、Amazon Linux 或 Rocky Linux

运行以下命令:

$ sudo dnf module install nvidia-driver:open-dkms

要在基于 DNF 的发行版上使用 cuda 元软件包进行升级,必须首先禁用模块流。

$ echo "module_hotfixes=1" | tee -a /etc/yum.repos.d/cuda*.repo
$ sudo dnf install --allowerasing nvidia-open
$ sudo dnf module reset nvidia-driver

zypper:SUSE Linux Enterprise Server 或 OpenSUSE

运行以下命令之一:

# default kernel flavor
$ sudo zypper install nvidia-open
# azure kernel flavor (sles15/x86_64)
$ sudo zypper install nvidia-open-azure
# 64kb kernel flavor (sles15/sbsa) required for Grace-Hopper
$ sudo zypper install nvidia-open-64k

软件包管理器摘要

为简化起见,我们已将包管理器建议压缩为表格格式。从驱动版本 560 和 CUDA 工具包 12.6 开始的所有版本都将使用这些打包规范。

发行版 安装最新的 安装特定版本
Fedora/RHEL/Mylin dnf module install nvidia-driver:open-dkms dnf module install nvidia-driver:560-open
openSUSE/SLES zypper install nvidia-open{-azure,-64k} zypper install nvidia-open-56{-azure, -64k}
Debian apt-get install nvidia-open apt-get install nvidia-open 560
Ubuntu apt-get install nvidia-open apt-get install nvidia-open 560
表 1. 软件包管理器安装建议

有关更多信息,请参阅 NVIDIA 数据中心驱动

适用于 Linux 的 Windows 子系统

适用于 Linux 的 Windows 子系统(WSL)使用来自主机 Windows 操作系统的 NVIDIA 内核驱动程序。因此,您不应该专门为此平台安装任何驱动程序。如果您使用的是 WSL,则无需进行任何更改或操作。

CUDA 工具包

通过软件包管理器,CUDA 工具包的安装保持不变。请运行以下命令:

$ sudo apt-get/dnf/zypper install cuda-toolkit

更多信息

如需详细了解如何安装 NVIDIA 驱动程序或 CUDA 工具包,请参阅《CUDA 安装指南》中的驱动程序安装部分

 

标签