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

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

在这里插入图片描述

文章目录

  • NVIDIA 全面转向开源 GPU 内核模块
    • 支持的 GPU
    • 安装程序更改
      • 使用带有 CUDA 元包的包管理器
    • 使用运行文件
      • 使用安装帮助脚本
      • 包管理器详细信息
      • dnf:Red Hat Enterprise Linux、Fedora、Kylin、Amazon Linux 或 Rocky Linux
      • zypper:SUSE Linux Enterprise Server 或 OpenSUSE
      • 软件包管理器摘要
      • 适用于 Linux 的 Windows 子系统
      • CUDA 工具包
      • 更多信息

借助 R515 驱动程序,NVIDIA 于 2022 年 5 月发布了一组 Linux GPU 内核模块,作为具有双重 GPL 和 MIT 许可的开源模块。初始版本针对数据中心计算 GPU,GeForce 和 Workstation GPU 处于 alpha 状态。

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

NVIDIA GPU 共享通用的驱动程序架构和功能集。您的台式机或笔记本电脑的同一驱动程序在云中运行世界上最先进的 AI 工作负载。对NVIDIA来说,做到恰到好处非常重要。

两年过去了,NVIDIA利用开源 GPU 内核模块实现了同等甚至更好的应用程序性能,并增加了大量新功能:

  • 异构内存管理 (HMM) 支持
  • 机密计算
  • NVIDIA Grace 平台的一致内存架构
  • 还有更多

现在,NVIDIA正处于完全过渡到开源 GPU 内核模块的正确时机,NVIDIA将在即将发布的 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 Toolkit 时,安装元包存在并且很常用。通过安装顶级 cuda 包,您可以安装 CUDA Toolkit 和相关驱动程序版本的组合。例如,通过在 CUDA 12.5 发布时间范围内安装 cuda,您将获得专有的 NVIDIA 驱动程序 555 以及 CUDA Toolkit 12.5。

下图显示了此包结构。

以前,使用开源 GPU 内核模块意味着您无法使用顶级元包。您必须安装特定于发行版的 NVIDIA 驱动程序开放包以及您选择的 cuda-toolkit-X-Y 包。

从 CUDA 12.6 版本开始,流程有效地切换了位置(下图)。

使用运行文件

如果您使用 .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 文件进行安装,您会看到类似的选择(下图)。

您还可以使用命令行传递覆盖,以便在没有用户界面的情况下进行安装,或者如果您使用 Ansible 等自动化工具。

# 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 Toolkit 和驱动程序。但是,不同发行版使用哪些包管理系统或包的结构的具体细节可能会因您的特定发行版而异。

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

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 Toolkit 12.6 之后的所有版本都将使用这些打包约定。

DistroInstall the latestInstall a specific release
Fedora/RHEL/Kylindnf module install nvidia-driver:open-dkmsdnf module install nvidia-driver:560-open
openSUSE/SLESzypper install nvidia-open{-azure,-64k}zypper install nvidia-open-560{-azure,-64k}
Debianapt-get install nvidia-openapt-get install nvidia-open-560
Ubuntuapt-get install nvidia-openapt-get install nvidia-open-560

适用于 Linux 的 Windows 子系统

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

CUDA 工具包

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

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

更多信息

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/48225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络安全等级保护:什么是网络安全等级保护?(非常详细)零基础入门到精通,收藏这一篇就够了

关键词: 网络安全等级保护 等级保护 网络 信息系统 旧话重提,一直以来,我们不断强调“等级保护”制度是我国的网络安全领域的基本制度、基本策略和基本方法,是促进信息化健康发展,维护国家安全、社会秩序和公共利益的…

数字图像处理中的常用特殊矩阵及MATLAB应用

一、前言 Matlab的名称来源于“矩阵实验室(Matrix Laboratory)”,其对矩阵的操作具有先天性的优势(特别是相对于C语言的数组来说)。在数字图像处理中,为了提高编程效率,我们可以使用多种方式来创…

Mysql数据库和Sql语句

数据库管理: sql语句:数据库用来增删改查的语句(重要) 备份:数据库的数据进行备份 主从复制、读写分离、高可用(重要) Mysql数据库和Sql语句 一、Mysql数据库 1、数据库:组织、…

Java基础(四) 内部类详解

Java 内部类详解 一. 内部类概述 内部类是嵌套在类内部进行定义的类,其外部的类则被称为外部类;按照内部类的定义位置,内部类可进一步划分为成员内部类、静态内部类、局部内部类和匿名内部类四种类型。内部类的出现实际上是进一步丰富了类的…

使用Python实现深度学习模型:用户行为预测与个性化服务

介绍 在这篇教程中,我们将构建一个深度学习模型,用于用户行为预测和个性化服务。我们将使用TensorFlow和Keras库来实现这一目标。通过这个教程,你将学会如何处理数据、构建和训练模型,并将模型应用于实际的用户行为预测和个性化服务任务。 项目结构 首先,让我们定义项目…

Modbus转BACnet/IP网关的技术实现与应用

引言 随着智能建筑和工业自动化的快速发展,不同通信协议之间的数据交换也变得日益重要。Modbus和BACnet/IP是两种广泛应用于自动化领域的通信协议,Modbus以其简单性和灵活性被广泛用于工业自动化,而BACnet/IP则在楼宇自动化系统中占据主导地…

Android APP 音视频(03)CameraX预览与MediaCodec编码

说明: 此CameraX预览和编码实操主要针对Android12.0系统。通过CameraX预览获取yuv格式数据,将yuv格式数据通过mediacodec编码输出H264码流(使用ffmpeg播放),存储到sd卡上。 1 CameraX 和 MediaCodec简介 1.1 CameraX…

Redission中的Lua脚本写法、理解

对于Redission看门狗机制中的为了保证原子性的Lua脚本的写法规则是什么样的呢 ? 对于源码中的Lua脚本又是什么意思? 我们一起来看一下 首先,我们先基本的熟悉一下lua脚本的逻辑 在Lua脚本中,if (…) then … end 语句的执行过程…

“微软蓝屏”事件,给IT行业带来的宝贵经验和教训

“微软蓝屏”事件是指2024年7月19日发生的一次全球性技术故障,主要涉及微软视窗(Windows)操作系统及其相关应用和服务。 以下是对该事件的详细解析: 一、事件概述 发生时间:2024年7月19日事件影响:全球多个…

【科学文献计量】中国知网(CNKI) 文献素材库生成软件详细使用说明

CNKI 文献素材库生成软件制作 1 背景2 使用步骤2.1 文献检索2.2 文献导出2.3 软件生成1 背景 在进行中文文献的综述时,往往是要借助中国知网(CNKI)文献检索平台,写作插入文献时会用Endnote软件进行辅助。因此就有需求:对于CNKI检索的结果直接导出到本地,第一是方便快速阅…

com.alibaba.fastjson.JSONObject类介绍、应用场景和示例代码

概述 功能特点: 解析 JSON 字符串为 Java 对象。将 Java 对象序列化为 JSON 字符串。支持链式操作,便于对 JSON 数据进行增删改查。 应用场景: 与前端进行 JSON 数据的交互,如 RESTful API 的数据传输。处理第三方接口返回的 …

基于STM32的农业大棚温湿度采集控制系统的设计

目录 1、设计要求 2、系统功能 3、演示视频和实物 4、系统设计框图 5、软件设计流程图 6、原理图 7、主程序 8、总结 🤞大家好,这里是5132单片机毕设设计项目分享,今天给大家分享的是智能教室。 设备的详细功能见网盘中的文章《8、基…

“机器说人话”-AI 时代的物联网

万物互联的物联网愿景已经提了许多年了,但是实际效果并不理想,除了某些厂商自己的产品生态中的产品实现了互联之外,就连手机控制空调,电视机和调光灯都没有实现。感觉小米做的好一点,而华为的鸿蒙的全场景,…

Ubuntu24.04安装mysql-server小计,解决mysql_secure_installation时不能重置密码的问题

Ubuntu24.04安装mysql-server小计,解决mysql_secure_installation时不能重置密码的问题 为什么要写这往篇文章? 一般情况下,我安装mysql都用源码编译,以此方便安装更多自定义插件,但这次只需要安装一台开发机&#x…

C#+layui+echarts实现动态生成折线图

概要 C#layuiecharts实现动态生成折线图 整体架构流程 后端是c#语言编写的业务流程,前端是layui和echarts 技术细节 1.先看echarts折线图需要什么样子的数据,在想后端怎么处理 2.后端代码 List<ValveTempData> list new List<ValveTempData>(); string …

学懂C语言(十九):C语言指针详解

一、什么是指针&#xff1f; 指针是一个变量&#xff0c;其存储的是另一个变量的内存地址。在计算机内存中&#xff0c;每个存储单元都有一个唯一的地址&#xff0c;指针就是用来存放这些地址的。因此&#xff0c;通过指针&#xff0c;你可以间接访问和修改内存中的数据。就像其…

Linux提供的定时器

定时器在许多场景中非常有用&#xff0c;尤其是在需要精确定时或定时执行某些任务的情况下。而Linux专门为定时器提供了一套定时器接口。 timerfd_creat timerfd_create是 Linux 中用于创建定时器文件描述符的函数。这个功能主要是用来在指定的时间后或定时间隔内触发事件&am…

TS的访问修饰符有哪些

如果你和我一样是从强类型语言(如C、C#、Java)转过来的&#xff0c;相信你会一眼就知道是什么 public&#xff08;默认&#xff09; - 全部可访问 protected - 自己和派生类可访问 private - 只有自己可访问 废话不多说&#xff0c;上代码&#xff1a; class Person {publ…

Docker容器逃逸漏洞-CVE-2024-21626

Snyk 在 Docker 引擎以及其他容器化技术(例如 Kubernetes)使用的 runc <=1.1.11 的所有版本中发现了一个漏洞。利用此问题可能会导致容器逃逸到底层主机操作系统,无论是通过执行恶意映像还是使用恶意 Dockerfile 或上游映像构建映像(即使用时FROM) CVE-2024-21626原理…

生成式人工智能之路,从马尔可夫链到生成对抗网络

人工智能&#xff08;Artificial intelligence&#xff0c;AI&#xff09;技术在过去几年中取得了显著进展&#xff0c;其中生成式AI&#xff08;Generative AI&#xff09;因其强大的内容生成能力而备受关注。生成式AI可以创建新的文本、图像、音频、视频、代码以及其他形式的…