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

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…

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

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

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

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

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

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

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

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

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

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

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可以创建新的文本、图像、音频、视频、代码以及其他形式的…

SSRF学习笔记

1.NAT学习 Nat&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;是 一种网络通信技术主要用于将私有网络中的内部IP地址转换成公共网络中的公共IP地址&#xff0c;以实现局域网内部设备访问互联网的功能。具体来说&#xff0c;Nat有以下几个主要…

Matlab画不同指标的对比图

目录 一、指标名字可修改 二、模型名字可修改 三、输入数据可修改 软件用的是Matlab R2024a。 clear,clc,close all figure1figure(1); % set(figure1,Position,[300,100,800,600],Color,[1 1 1]) axes1 axes(Parent,figure1);%% Initialize data points 一、指标名字可修…

MongoDB 学习笔记

一、简介 1、MongoDB 是什么 MongoDB 是一个基于分布式文件存储的数据库&#xff0c;官方地址 https://www.mongodb.com/ 2、数据看是什么 数据库&#xff08;DataBase&#xff09;是按照数据结构来组织、存储和管理数据的应用程序。 3、数据库的作用 主要作用是 管理数据…

mybatis中的缓存(一级缓存、二级缓存)

文章目录 前言一、MyBatis 缓存概述二、一级缓存1_初识一级缓存2_一级缓存命中原则1_StatementId相同2_查询参数相同3_分页参数相同4_sql 语句5_环境 3_一级缓存的生命周期1_缓存的产生2_缓存的销毁3_网传的一些谣言 4_一级缓存核心源码5_总结 三、二级缓存1_开启二级缓存2_二级…

基于Hutool实现自定义模板引擎,实现json个性化模板引擎转换

文章目录 前言编写引擎类&#xff1a;JsonTemplateEngine编写模板类&#xff1a;CustomTemplate编写测试代码测试json文件测试类 前言 由于百度搜索json模板引擎&#xff0c;推荐的都是一些freemarker之类的&#xff0c;需要引入其他的依赖&#xff0c;而且在编写json模板的时…

学习在测试时学习(Learning at Test Time)_ 具有表达性隐藏状态的循环神经网络(RNNs)

摘要 https://arxiv.org/pdf/2407.04620 自注意力机制在长文本语境中表现良好&#xff0c;但其复杂度为二次方。现有的循环神经网络&#xff08;RNN&#xff09;层具有线性复杂度&#xff0c;但其在长文本语境中的性能受到隐藏状态表达能力的限制。我们提出了一种新的序列建模…

LabVIEW多线圈电磁式振动发电机测试

开发了一种基于LabVIEW设计的多线圈电磁式振动发电机测试系统。系统通过高效的数据采集、波峰检测及相位差计算&#xff0c;优化了传统振动发电机的测试流程&#xff0c;提升了电压波形分析的精度和效率&#xff0c;具有较好的应用前景和推广价值。 项目背景 随着可再生能源技…