“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

英伟达正式宣布开源 GPU 内核模块代码

  • 2022-05-13
  • 本文字数:3508 字

    阅读完需:约 12 分钟

英伟达正式宣布开源GPU内核模块代码

近日,英伟达(NVIDIA)宣布,将 Linux GPU 内核模块作为开放源代码发布。早在几天前,NVIDIA 开始在 GitHub 上陆续公开相关代码,目前该项目已经收获 7.7k star,众多网友对本次开源纷纷表示难以置信。

英伟达开源 GPU 内核模块代码


本次开源无疑可以帮助改善英伟达 GPU 在 Linux 环境下的体验,与操作系统的紧密集成是帮助开发人员开展调试、集成和贡献回馈的重要一步。这些模块的开源还使得驱动程序在 Linux 发行版供应商手中更加易用。英伟达也改进了开箱即用体验,让用户轻松对英伟达 GPU 驱动程序进行签署与分发。现在,Canonical 和 SUSE 可以即刻将开放内核模块与 Ubuntu 及 SUSE Linux Enterprise Distributions 共同打包。



开发者可以跟进代码路径,查看内核事件调度如何与工作负载进行交互,从而快速开展根源性调试。此外,企业软件开发者现可将驱动程序无缝集成至项目配置的定制化 Linux 内核当中。此番开源举措将帮助英伟达充分吸纳来自 Linux 最终用户社区的意见和评论,进而提升 GPU 驱动程序的质量和安全性。

每次发布新驱动,英伟达都会在 NVIDIA/open-gpu-kernel-modules 页面上发布源代码快照。社区提交的补丁一旦经过审核批准,即可被集成到后续驱动程序版本当中。


关于更多详细信息,请参阅英伟达贡献指南(https://github.com/NVIDIA/open-gpu-kernel-modules/blob/main/README.md)与驱动程序发布节奏与周期(https://docs.nvidia.com/datacenter/tesla/drivers/index.html#lifecycle)说明文档。

支持的功能


作为首个开放 GPU 内核模块版本的 R515 不仅包含源代码,同时也提供驱动程序的完整构建与打包版本。

对于英伟达 Turing 和 Ampere 架构家族中的数据中心用 GPU 产品,此版本代码可用于生产支持。英伟达专注于测试各类工作负载,确保开源版本与专有内核模式驱动程序具备相同的功能和性能。


未来,HMM 等功能也将成为英伟达 Hopper 架构上实现机密计算的基础组件。这个开源版本对 GeForce 和 Workstation GPU 的支持度已经很高。GeForce 和 Workstation 用户可以在英伟达 Turing 和 Ampere 架构 GPU 上使用此驱动来运行 Linux 桌面,并在 Vulkan 和英伟达 Optix 中实现多屏显示、G-SYNC 和英伟达 RTX 光线追踪等功能。


开发者也可以选择将内核模块参数设置为 NVreg_OpenRmEnableUnsupportedGpus=1。在后续版本中,英伟达还将提供更加强大、功能齐备的 GeForce 与 Workstation 支持,最终推动英伟达开放内核模块全面取代闭源驱动程序。


拥有英伟达 Turing 和 Ampere 架构 GPU 的客户可以具体选择要安装的模块。对于 Turing 之前产品的用户,将继续使用闭源模块。


开源内核模式驱动程序继续沿用相同的固件和用户模式堆栈,包括 CUDA、OpenGL 和 Vulkan,但驱动程序中的所有组件必须与发行版中的版本相匹配。例如,用户不能使用来自更早或更新版本中的用户模式堆栈,发布、构建或运行当前版本中的源代码。


关于如何安装正确版本的更多信息及其他故障排查步骤,请参阅驱动程序自述文件(http://us.download.nvidia.com/XFree86/Linux-x86_64/515.43.04/README/kernel_open.html)。

安装选择


R515 版本包含闭源驱动程序和开源内核模块的预编译版本。这些版本间彼此互斥,需要在安装过程中做出选择。与英伟达 Turing+ GPU 相比,默认选项提供的静默安装能够为英伟达 Volta 及其他较早 GPU 提供最佳路径。可以根据源代码构建内核模块,并配合相关用户模式驱动进行安装。


图一:启用 GPU 内核模块和闭源模块默认路径的安装选项

上游方法


多年以来,英伟达 GPU 驱动程序在设计上一直强调跨操作系统、跨 GPU 和跨 Jetson SOC 实现代码共享,以确保能够在全部受支持的平台上提供一致的体验。但当前代码库并不符合 Linux 内核设计约定,因此并未成为 Linux 上游社区的备选方法。


但我们已经在积极筹划,希望与 Linux 内核社区及合作伙伴(包括 Canonical、Red Hat 和 SUSE)合作开发上游方法。


与此同时,已发布的这部分源代码也可作为参考,帮助改进 Nouveau 驱动程序。Nouveau 与此次开源的驱动程序共享相同固件,因此公开的多项 GPU 功能,包括时钟管理与热量管理也将为 Nouveau 驱动带来更多新功能。也欢迎大家继续关注 GitHub 上的后续驱动发布与协作进展。

常见问题


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


开发者可以在 CUDA Toolkit 11.7 中下载 R515 开发驱动,或者在“Beta”驱动程序中的驱动下载页面(https://www.nvidia.com/en-us/drivers/unix/)处下载。R515 数据中心版驱动程序将根据英伟达的发布节奏,在后续版本中与大家见面。


开放 GPU 内核模块本身能否二次分发?


可以,英伟达开放内核模块遵循 GPL/MIT 双许可,许可条款允许二次分发和打包。


英伟达是否会开放其他用户模式驱动程序(例如 CUDA)?


此次变更主要针对内核模块,用户模式组件将保持不变。用户模式继续保持闭源形式,并将与驱动程序和 CUDA 工具包内的预构建二进制文件一同发布。


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


开放内核模块支持所有英伟达 Ampere 及 Turing 架构 GPU。数据中心 GPU 将获得生产级支持,GeForce 和 Workstation GPU 则为高质量支持。关于更多详细信息,请参阅数据中心、英伟达 RTX 与 GeForce CUDA GPU 产品表(https://developer.nvidia.com/cuda-gpus)。可以看到,英伟达 Turing 及更新 GPU 的算力评分均为 7.5 及以上。


如何上报 bug?


开发者可以通过 GitHub repo 问题跟踪器(https://github.com/NVIDIA/open-gpu-kernel-modules/issues)或我们的最终用户支持论坛(https://forums.developer.nvidia.com/c/gpu-graphics/linux/148)上报问题。另外,安全问题请通过 GitHub repo 安全政策(https://github.com/NVIDIA/open-gpu-kernel-modules/security/policy)中列出的渠道进行上报。


如何提交补丁?补丁 SLA/CLA 流程是怎样的?


欢迎社区通过 PR 请求在 GitHub 页面上提交补丁。提交的补丁将在审查核准后,与其他修改成果一道被集成到后续驱动程序版本当中。关于更多详细信息,请参阅英伟达驱动程序生命周期(https://docs.nvidia.com/datacenter/tesla/drivers/index.html#lifecycle)文档。


这里发布的源代码是根据共享代码库生成的快照,因此各项贡献可能不会在 GitHub repo 中体现为单独的 Git 提交。英伟达正在规划社区贡献认可流程。出于同样的理由,建议各位贡献者不要对代码进行重大格式调整。


提交 PR 请求的流程请参阅 NVIDIA/open-gpu-kernel-modules GitHub 页面,贡献规则请参阅贡献者许可协议(https://cla-assistant.io/NVIDIA/open-gpu-kernel-modules)。关于更多信息,请参阅开放 GPU 内核模块 NVIDIA/open-gpu-kernel-modules GitHub 页面。


博客地址:

https://developer.nvidia.com/blog/nvidia-releases-open-source-gpu-kernel-modules/

项目地址:

https://github.com/NVIDIA/open-gpu-kernel-modules

开源的重要意义


在英伟达宣布开源后不久,Red Hat 的桌面高级经理 Christian F.K. Schaller 发表了篇题为《Why is the open source driver release from NVidia so important for Linux?》的文章表示,这次开源意味着英伟达已经发布了一个能够使用 Linux 内核中 GPL-only API 的内核驱动程序,尽管这个初始版本不使用旧驱动程序未使用的任何 API。该驱动程序还仅支持 NVidia Turing 芯片 GPU 及之后的更新版本,这意味着它不能用于 2018 年之前的 GPU。因此,对于大多数 Linux 桌面用户来说,并不是立即可用。


对于开源社区来说,这意味着我们将有一个内核驱动程序和固件,允许改变 GPU 时钟,以提供研究者期望从英伟达显卡获得的性能;我们将拥有一个开源驱动程序,可以访问新一代英伟达硬件固件和内核更新;可以开始使用 Linux 内核中的 GPL-only API。


Canonical 公司芯片联盟副总裁 Cindy Goldberg 评论道,“新的英伟达开源 GPU 内核模块在简化安装流程之余,也提升了 Ubuntu 用户的安全保障水平。无论您是 AI/ML 开发者、游戏玩家还是云用户,都能够从中受益。作为最受开发者欢迎的 Linux 类操作系统 Ubuntu 的开发商,我们现在能够立足 Ubuntu 与英伟达 GPU 实现紧密集成,为 AI 和 ML 等前沿领域的开发人员提供更好的支持。”在未来几个月内,英伟达开放 GPU 内核模块将正式登陆刚刚推出的 Canonical Ubuntu 22.04 LTS。


SUSESUSE 公司业务关键 Linux 总经理 Markus Noga 指出,“我们 SUSE 高兴地看到,英伟达决定将 GPU 内核模式驱动程序以开源形式发布。这是开源社区与加速计算领域的真正里程碑。SUSE 有幸通过今年 6 月的 SUSE Linux Enterprise 15 SP4,成为首个引入这一突破性成果的主要 Linux 发行版。英伟达与 SUSE 将凭借安全的软件供应链和卓越的技术支持,共同满足用户跨云、数据中心及边缘等位置的 GPU 加速计算需求。

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2022-05-13 11:354494

评论 1 条评论

发布
用户头像
回顾一下大新闻
2022-10-02 22:36 · 北京
回复
没有更多了
发现更多内容

vue移动端自适应,mybatis面试问题

Java 程序员 后端

WPF学习——依赖项属性,中软国际java面试流程

Java 程序员 后端

“一学就会”微服务的架构模式,一名毕业三年的女程序媛面试头条经验

Java 程序员 后端

“情商比智商重要”,java面试代码题

Java 程序员 后端

《零基础》MySQL 安装(二),java高级程序设计作业系统

Java 程序员 后端

requests库与 lxml 库常用操作整理+总结,爬虫120例阶段整理篇

梦想橡皮擦

11月日更

ICCV 2021人脸鉴伪比赛全赛道冠军!AI反诈这块,百度算是弄明白了

科技热闻

“数组&方法”常见知识分解,简述java编译原理

Java 程序员 后端

“穷苦乡村”小伙就得安于现状,你掌握了多少?

Java 程序员 后端

《零基础》MySQL GROUP BY 语句(十九),java并发编程实战pdf百度云

Java 程序员 后端

zabbix监控nginx、mysql、java应用,64位java8百度云盘

Java 程序员 后端

yum安装ansible报错如何解决,自定义线程池面试题

Java 程序员 后端

zookeeper分布式锁,java开发技术教程

Java 程序员 后端

技术分享| RTC通讯中常用的音频格式

anyRTC开发者

音视频 WebRTC RTC 语音通话 音频格式

windows下nginx的安装及使用,linux实用教程第三版pdf

Java 程序员 后端

ZooKeeper实现生产-消费者队列,万字长文总结Java多进程

Java 程序员 后端

Zookeeper用作注册中心的原理,张孝祥jsp视频教程

Java 程序员 后端

《Spring实战》读书笔记-第3章 高级装配,全网最具深度的三次握手、四次挥手讲解

Java 程序员 后端

【终极预告】Apache ShardingSphere Dev Meetup 彩蛋篇

SphereEx

开源社区 ShardingSphere Meetup SphereEx 热门活动

《JVM系列》 第五章 -- 堆空间与对象分配,springboot项目分层架构

Java 程序员 后端

《大型数据库技术》MySQL的进阶开发技巧,java基础知识重点总结pdf

Java 程序员 后端

《菜菜的机器学习sklearn课堂》逻辑回归,java教程百度云最新版

Java 程序员 后端

《零基础》MySQL 连接的使用(二十),springcloud开发教程

Java 程序员 后端

zookeeper原理篇-Zookeeper选举过程分析,深入linux内核架构pdf下载

Java 程序员 后端

xxl-job 源码运行解析,java基础编程视频

Java 程序员 后端

XXL-Job启动源码详解,Java日常开发的12个坑,你踩过几个

Java 程序员 后端

Zookeeper 集群部署的那些事儿,消息队列rabbitmq面试

Java 程序员 后端

“ShardingCore”是如何针对分表下的分页进行优化的,深入理解linux内核架构

Java 程序员 后端

“打工人”都在用的邮件使用规范,入职3个月的Java程序员面临转正

Java 程序员 后端

《重构 改善既有代码的设计 3》代码的可理解性应该是我们虔诚追求的目标

Java 程序员 后端

vue遇到的坑,linux网络编程pdf百度云

Java 程序员 后端

英伟达正式宣布开源GPU内核模块代码_语言 & 开发_赵钰莹_InfoQ精选文章