0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NVIDIA 开源GPU内核模块将集成到未来的驱动程序版本中

星星科技指导员 来源:NVIDIA 作者:NVIDIA 2022-05-16 09:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

NVIDIA 现在将 Linux GitHub 内核模块发布为具有双 GPL / MIT 许可证的开放源代码,从 R515 驱动程序版本开始。您可以在 GPU 上的 NVIDIA Open GPU kernel modules repo 中找到这些内核模块的源代码。

本次发布是改善在 Linux 中使用 NVIDIA GPU 的体验、与操作系统更紧密集成以及开发人员调试、集成和反馈的重要一步。对于 Linux 发行商来说,开源模块增加了易用性。他们还改进了开箱即用的用户体验,以签署和分发 NVIDIA GPU 驱动程序。 Canonical 和 SUSE 能够立即用 Ubuntu 和 SUSE Linux 企业版打包开放内核模块。

开发人员可以追踪代码路径,了解内核事件调度如何与他们的工作负载交互,以更快地进行根本原因调试。此外,企业软件开发人员现在可以将驱动程序无缝集成到为其项目配置的定制 Linux 内核中。

这将进一步帮助提高 NVIDIA GPU 驱动程序的质量和安全性,并获得 Linux 最终用户社区的输入和评论。

每发布一个新的驱动程序, NVIDIA 都会在 GitHub 上发布源代码的快照。社区提交的补丁将被审查,如果获得批准,将集成到未来的驱动程序版本中。

支持的功能

开放式 GPU 内核模块的第一个版本是 R515 。除了源代码,还提供了驱动程序的完整构建和打包版本。

对于 NVIDIA Turing 和 NVIDIA Ampere 体系结构系列中的数据中心 GPU ,此代码已准备就绪。这是因为 GSP 驱动程序体系结构 在过去一年中分阶段推出,旨在使 NVIDIA 客户更容易过渡。我们专注于测试各种各样的工作负载,以确保与专有内核模式驱动程序的功能和性能对等。

将来, HMM 等功能将成为 NVIDIA Hopper 架构 上 confidential computing 的基础组件。

在这个开源版本中,对 GeForce 和 Workstation GPU 的支持是 alpha 质量的。 GeForce 和工作站用户可以在 Turing 和 NVIDIA Ampere architecture GPU 上使用此驱动程序来运行 Linux 桌面,并在 Vulkan 和 NVIDIA OptiX 中使用多显示器、 G-SYNC 和 NVIDIA RTX 光线跟踪等功能。用户可以选择使用 文档 中突出显示的内核模块参数NVreg_EnableUnsupportedGpus。后续版本将提供更强大、功能更全面的 GeForce 和 Workstation 支持, NVIDIA 开放内核模块最终将取代封闭源代码驱动程序。

使用图灵和安培 GPU 的客户可以选择安装哪些模块。图灵前用户将继续运行封闭源代码模块。

开源内核模式驱动程序使用相同的固件和相同的用户模式堆栈,如 CUDA 、 OpenGL 和 Vulkan 。但是,驱动程序堆栈的所有组件都必须与版本中的版本匹配。例如,您不能从以前或将来的版本中获取一个版本的源代码、构建并使用用户模式堆栈运行它。

有关安装正确版本和其他故障排除步骤的说明,请参阅驱动程序 README 文档。

安装选择加入

R515 版本包含闭源驱动程序和开源内核模块的预编译版本。这些版本相互排斥,用户可以在安装时进行选择。默认选项确保为NVIDIA Volta和较老的图形处理器(与NVIDIA Turing+图形处理器相比)选择最佳安装方式。

用户可以从源代码构建内核模块,并使用相关的用户模式驱动程序安装它们。

pYYBAGKBpvOAXMyzAAB3PfHpzhg039.png

图 1 :最终用户选择打开 GPU 内核模块的安装选项以及封闭源代码模块的默认路径的图示。

伙伴生态系统

NVIDIA 一直在与 Canonical 、 Red Hat 和 SUSE 合作,为我们的共同客户提供更好的打包、部署和支持模型。

Canonical

Canonical 的硅联盟副总裁辛迪·戈德伯格( Cindy Goldberg )评论道:“新的 NVIDIA 开源 GPU 内核模块将简化 Ubuntu 用户的安装并提高其安全性,无论他们是 AI / ML 开发者、游戏玩家还是云用户。”。“作为开发人员最受欢迎的基于 Linux 的操作系统 Ubuntu 的制造商,我们现在可以通过在 Ubuntu 上与 NVIDIA GPU 进行更紧密的集成,为处于 AI 和 ML 前沿的开发人员提供更好的支持。”

在接下来的几个月里, NVIDIA Open GPU 内核模块将进入最近发布的 Canonical Ubuntu 22.04 LTS 。

SUSE

“在SUSE,我们为 NVIDIA 以开源的形式发布他们的 GPU 内核模式驱动感到兴奋。这对于开源社区和加速计算来说是一个真正的里程碑。 SUSE 自豪地成为第一个在 6 月份通过 SUSE Linux Enterprise 15 SP4 实现这一突破的大型 Linux 发行版。 NVIDIA 和 SUSE 通过安全的软件供应链和卓越的支持,共同满足您在云计算、数据中心和 edge 方面的 GPU 加速计算需求。” -Markus Noga , SUSE 业务关键型 Linux 总经理

Red Hat

“企业开源可以刺激创新,改善客户体验,这是 Red Hat 一直倡导的。我们对 NVIDIA 开放其 GPU 的决定表示赞赏。”内核驱动程序。Red Hat 与 NVIDIA 合作多年,我们很高兴看到他们迈出了下一步。我们期待着将这些功能带给我们的客户,并改善与 NVIDIA 硬件的互操作性。” -Mike McGrath ,Red Hat 公司 Linux 工程副总裁

上游进近

多年来, NVIDIA GPU 驱动程序的设计旨在跨操作系统、 GPU 和 Jetson SOC 共享代码,以便我们能够在所有受支持的平台上提供一致的体验。当前的代码库不符合 Linux 内核设计约定,也不是 Linux 上游的候选代码库。

有计划与 Linux 内核社区以及 Canonical 、 Red Hat 和 SUSE 等合作伙伴一起研究上游方法。

同时,已发布的源代码可以作为参考,帮助改进 Nouveau driver 。 Nouveau 可以利用 NVIDIA 驱动程序使用的相同固件,公开许多 GPU 功能,如时钟管理和热管理,为树内 Nouveau 驱动程序带来新功能。

请继续关注 GitHub 上未来驱动程序发布和协作的更多发展。

常见问题

在哪里可以下载 R515 驱动程序?

您可以下载 R515 开发驱动程序作为 CUDA 工具包 11.7 ,或来自“测试版”驱动程序下的驱动程序 下载页面 。 R515 数据中心驱动程序将按照我们通常的节奏在后续版本中发布。

GPU 开放内核模块可以分发吗?

是的, NVIDIA 开放内核模块根据双重 GPL / MIT 许可证获得许可;许可证条款规定了分发和重新包装授权。

是否会发布 CUDA 等用户模式驱动程序的源代码?

这些变化是针对内核模块的;而用户模式组件未被触及。因此,用户模式将保持封闭源代码,并在驱动程序和 CUDA 工具包中使用预构建的二进制文件发布。

开放的 GPU 内核模块支持哪些 GPU ?

开放内核模块支持所有安培和图灵 GPU 。数据中心 GPU 支持生产,而 GeForce 和工作站 GPU 支持 alpha quality 。请参考数据中心、 NVIDIA RTX 和 GeForce 产品表 了解更多详细信息(图灵及以上版本的计算能力为 7.5 或更高)。

如何报告错误

可以通过 GitHub 存储库问题跟踪器 或我们现有的 最终用户支持论坛 报告问题。请通过 GitHub 存储库安全策略 上列出的渠道报告安全问题。

补丁提交和补丁 SLA / CLA 的流程是什么?

我们鼓励通过 GitHub 页面上的 pull 请求提交社区信息。提交的补丁将被审查,如果获得批准,将与可能的修改集成到未来的驱动程序版本中。请参阅 NVIDIA 驱动程序生命周期 文档。

发布的源代码是从共享代码库生成的快照,因此在 GitHub repo 中,贡献可能不会作为单独的 Git 提交反映出来。我们正在制定一个承认社区贡献的程序。出于同样的原因,我们还建议不要对代码进行重大的重新格式化。

我们的 GitHub page 中描述了提交请求的过程, 贡献者许可协议 中涵盖了这些贡献。

关于作者

Ram Cherukuri 是 CUDA 平台和 DLA 软件的高级产品经理。在 NVIDIA 之前, Ram 是 MathWorks 的产品经理,负责嵌入式软件开发的代码生成和验证产品,与汽车和航空 def 客户合作。他持有普渡大学航空工程硕士学位,并在孟买大学获得同一学科的学士学位。Shirish Baskaran 是 NVIDIA 的高级系统软件经理,他领导核心 GPU 内核驱动程序团队。在过去几年中,他一直专注于构建和引入 GPU 系统处理器( GSP )驱动程序体系结构和开放式 Linux 内核模块。

Shirish Baskaran 是 NVIDIA 的高级系统软件经理,他领导核心 GPU 内核驱动程序团队。在过去几年中,他一直专注于构建和引入 GPU 系统处理器( GSP )驱动程序体系结构和开放式 Linux 内核模块。

Andy Ritger 在 2000 年秋季 NVIDIA 首次发布 Linux GPU 驱动程序后不久加入 NVIDIA ,担任 Linux OpenGL 驱动程序工程师。从那以后,安迪一直在公司的整个 Linux GPU 驱动程序堆栈中工作,目前他是 NVIDIA 杰出的工程师。他就读于伊利诺伊卫斯理大学,并获得了计算机科学学士学位。

Fred Oh 是 CUDA 、 CUDA on WSL 和 CUDA Python 的高级产品营销经理。弗雷德拥有加州大学戴维斯分校计算机科学和数学学士学位。他的职业生涯开始于一名 UNIX 软件工程师,负责将内核服务和设备驱动程序移植到 x86 体系结构。他喜欢《星球大战》、《星际迷航》和 NBA 勇士队。

Dwayne Swoboda 是 NVIDIA 服务器软件高级总监。他成立了核心驱动程序组织,领导新的开源驱动程序模型的开发,并支持跨 NVIDIA 的过渡。德韦恩现在还领导着负责 NVIDIA DGX 和 HGX 服务器产品的软件团队。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    5509

    浏览量

    109152
  • 服务器
    +关注

    关注

    13

    文章

    10108

    浏览量

    90969
  • python
    +关注

    关注

    57

    文章

    4859

    浏览量

    89644
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux驱动开发的必备知识

    驱动框架进行开发。 6、调试技能: 掌握内核调试工具,如 KDB、KGDB、printk 等。 能够分析内核日志,定位驱动程序的问
    发表于 12-04 07:58

    Linux内核模块的加载机制

    内核模块是什么? 内核模块是动态加载到内核的代码,可以在不重启系统的情况下扩展功能,比如设备驱动或者文件系统支持。这样用户不需要把所有功能
    发表于 11-25 06:59

    【迅为工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解

    【迅为工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解
    的头像 发表于 11-21 13:25 727次阅读
    【迅为工业RK3568稳定可靠】itop-3568开发板Linux<b class='flag-5'>驱动</b>开发实战:RK3568<b class='flag-5'>内核模块</b>符号导出详解

    【OK3506-S12Mini试用评测】编译你的第一个内核模块

    OK3506 开发板内核模块编译与加载 一、前言 在嵌入式 Linux 系统开发内核模块(Kernel Module) 是一种可动态加载到内核
    发表于 10-24 21:00

    NVIDIA Isaac Lab多GPU多节点训练指南

    NVIDIA Isaac Lab 是一个适用于机器人学习的开源统一框架,基于 NVIDIA Isaac Sim 开发,其模块化高保真仿真适用于各种训练环境,可提供各种物理 AI 功能和
    的头像 发表于 09-23 17:15 2032次阅读
    <b class='flag-5'>NVIDIA</b> Isaac Lab多<b class='flag-5'>GPU</b>多节点训练指南

    如何 GPIO PWM 和 GPIO Capture 驱动程序导入 Linux 内核,实现 PWM 输出并检测引脚的变化状态?

    如何 GPIO PWM 和 GPIO Capture 驱动程序导入 Linux 内核,实现 PWM 输出并检测引脚的变化状态
    发表于 08-20 08:20

    zephyr设备驱动程序模型

        1:Zephyr 内核支持多种设备驱动程序驱动程序是否可用取决于board 和驱动程序。 Zephyr 设备模型为配置作为系统一部分的驱动
    的头像 发表于 07-29 10:34 505次阅读
    zephyr设备<b class='flag-5'>驱动程序</b>模型

    迅为RK3568开发板内核模块实现-查看模块信息

    驱动模块加载之后,使用“modinfo helloworld.ko”命令可以获得模块的信息,包括模块作者,模块说明,
    发表于 05-16 11:18

    迅为RK3568开发板内核模块实现-模块加载与卸载

    有了内核模块以后,我们要如何使用呢?编译驱动有俩种方式,那 Linux 驱动的运行方式也肯定有俩种。一种就是驱动编译进
    发表于 05-14 10:56

    迅为RK3568开发板内核模块实现-编译模块

    有了 Makefile 以后,输入“make”命令就可以编译 helloworld 驱动模块,如下图(图 4-7)所示: 编译完生成 helloworld.ko 目标文件就是我们需要的内核模块
    发表于 05-12 11:09

    飞凌嵌入式ElfBoard ELF 1板卡-Linux驱动模块之helloworld驱动

    驱动程序的基本结构和加载过程。源码编写(一)首先包含头文件#include // 包含模块相关函数的头文件#include // 包含内核相关函数的头文件#include// 包含初始化和清理函数
    发表于 03-12 10:15

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-驱动基本介绍

    的方式可以驱动程序内核进行集成驱动模块和编译
    发表于 03-10 17:03

    飞凌嵌入式ElfBoard ELF 1板卡-驱动基本介绍

    的方式可以驱动程序内核进行集成驱动模块和编译
    发表于 03-07 10:19

    OpenVINO™检测到GPU,但网络无法加载到GPU插件,为什么?

    OpenVINO™安装在旧的 Windows 10 版本 Windows® 10 (RS1) 上。 已安装 GPU 驱动程序版本 25.20.100.6373,检测到
    发表于 03-05 06:01

    如果系统日志显示驱动问题,我该怎么办?

    'error|fail'   此命令会显示内核消息的错误和失败信息,帮助您快速定位问题。 2.确认硬件和模块状态 使用以下命令检查硬件设备和已加载的内核模块:   lspci |
    的头像 发表于 01-20 17:38 1207次阅读