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

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

关键点概述

NVIDIA于2022年5月推出了带有双重GPL和MIT许可的开源Linux GPU内核模块R515驱动程序。最初的版本主要针对数据中心计算GPU,GeForce和工作站GPU则处于alpha状态。

当时,NVIDIA宣布后续版本将提供更强大和全功能的GeForce和工作站Linux支持,最终由NVIDIA开源内核模块取代闭源驱动程序。

NVIDIA GPU共享一个通用的驱动程序架构和功能集。无论是在桌面还是笔记本电脑上,使用的都是同一款驱动程序,这也是全球最先进的AI工作负载在云端运行的驱动程序。对NVIDIA来说,做到这一点至关重要。

经过两年的努力,NVIDIA的开源GPU内核模块在应用性能上达到了相同甚至更高的水平,并增加了许多新功能:

  • 异构内存管理(HMM)支持
  • 机密计算
  • Grace平台的统一内存架构
  • 以及更多

现在,NVIDIA决定在即将发布的R560驱动程序中全面转向开源GPU内核模块。

支持的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元包的包管理器
  • 运行文件
  • 安装助手脚本
  • 包管理器详情
  • Windows子系统(WSL)
  • CUDA工具包

使用CUDA元包的包管理器

在使用包管理器安装CUDA工具包时,安装元包常用于此目的。安装顶级cuda包时,会同时安装CUDA工具包和相关的驱动程序。例如,在CUDA 12.5发布期间安装cuda包,会得到专有的NVIDIA驱动程序555以及CUDA工具包12.5。

从CUDA 12.6版本开始,流程发生了变化(见图2)。

使用运行文件

如果使用.run文件安装CUDA或NVIDIA驱动程序,安装程序会查询硬件并自动安装最适合系统的驱动程序。UI中还提供了选项,可以在专有驱动程序和开源驱动程序之间进行选择。

使用CUDA .run文件和ncurses用户界面时,现在会看到如下菜单:

sqlCopy code┌──────────────────────────────────────────────────────────────────────────────┐
│ 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)。

typescriptCopy code# 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包,然后运行脚本:

rubyCopy code$ nvidia-driver-assistant

包管理器详情

为确保一致的体验,NVIDIA建议使用包管理器安装CUDA工具包和驱动程序。然而,不同发行版使用的具体包管理系统或包结构可能有所不同。

以下是各种平台的具体详情、注意事项或迁移步骤:

apt:基于Ubuntu和Debian的发行版

运行以下命令:

arduinoCopy code$ sudo apt-get install nvidia-open

要在Ubuntu 20.04上使用CUDA元包进行升级,首先切换到开源内核模块:

arduinoCopy code$ 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

运行以下命令:

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

要在基于dnf的发行版上使用CUDA元包进行升级,必须禁用模块流:

shellCopy code$ 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

运行以下命令之一:

shellCopy code# 默认内核
$ sudo zypper install nvidia-open
# azure内核(sles15/x86_64)
$ sudo zypper install nvidia-open-azure
# 64kb内核(sles15/sbsa)适用于Grace-Hopper
$ sudo zypper install nvidia-open-64k

包管理器总结

为简化起见,NVIDIA在表格中汇总了包管理器推荐。所有驱动程序版本560及CUDA工具包12.6以后的版本将使用这些打包规范。

发行版 安装最新版本 安装特定版本
Fedora/RHEL/Kylin dnf module install nvidia-driver dnf module install nvidia-driver:560-open
openSUSE/SLES zypper install nvidia-open{-azure,-64k} zypper install nvidia-open-560{-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

Windows子系统(WSL)

Windows子系统(WSL)使用主机Windows操作系统中的NVIDIA内核驱动程序,不需要在该平台上专门安装任何驱动程序。如果使用WSL,无需进行任何更改或操作。

CUDA工具包

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

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

更多信息

有关如何安装NVIDIA驱动程序或CUDA工具包的更多信息,包括在目前无法迁移到开源GPU内核模块时如何确保安装专有驱动程序,请参阅CUDA安装指南中的驱动程序安装部分。

相关推荐

  1. NVIDIA GPU日志解读

    2024-07-20 07:52:03       54 阅读
  2. 配置docker 支持GPU方法(Nvidia GPU

    2024-07-20 07:52:03       50 阅读
  3. Centos7安装docker支持NVIDIA GPU

    2024-07-20 07:52:03       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 07:52:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 07:52:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 07:52:03       45 阅读
  4. Python语言-面向对象

    2024-07-20 07:52:03       55 阅读

热门阅读

  1. 探索Transformer:依存句法分析的新纪元

    2024-07-20 07:52:03       21 阅读
  2. AI学习指南机器学习篇-t-SNE的优缺点

    2024-07-20 07:52:03       10 阅读
  3. 部署django

    2024-07-20 07:52:03       16 阅读
  4. Leetcode 202. 快乐数

    2024-07-20 07:52:03       18 阅读
  5. bug等级和优先级

    2024-07-20 07:52:03       16 阅读
  6. Perl与数据库交互:深入理解DBI模块

    2024-07-20 07:52:03       17 阅读
  7. Apache Kylin

    2024-07-20 07:52:03       12 阅读