借助 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 顯示此軟件包結構。
以前,使用開源 GPU 內核模塊意味著您可以使用頂級元軟件包。這意味著您需要安裝發行版特定的 NVIDIA 驅動開放軟件包,同時還需要安裝您選擇的 cuda-toolkit-X-Y 軟件包。
從 CUDA 12.6 版本開始,流的位置將有效切換(圖 2)。
使用運行文件
如果您使用 .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)。

如果您使用 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 |
有關更多信息,請參閱 NVIDIA 數據中心驅動。
適用于 Linux 的 Windows 子系統
適用于 Linux 的 Windows 子系統(WSL)使用來自主機 Windows 操作系統的 NVIDIA 內核驅動程序。因此,您不應該專門為此平臺安裝任何驅動程序。如果您使用的是 WSL,則無需進行任何更改或操作。
CUDA 工具包
通過軟件包管理器,CUDA 工具包的安裝保持不變。請運行以下命令:
$ sudo apt-get/dnf/zypper install cuda-toolkit |
更多信息
如需詳細了解如何安裝 NVIDIA 驅動程序或 CUDA 工具包,請參閱《CUDA 安裝指南》中的驅動程序安裝部分。
?