写点什么

英伟达正式宣布开源 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 加速计算需求。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2022-05-13 11:354525

评论 1 条评论

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

TIDB DM功能使用实践

TiDB 社区干货传送门

6.x 实践

TiDB 7.5 LTS版本新增的Hint

TiDB 社区干货传送门

管理与运维 新版本/特性解读 7.x 实践

【必备】,95页初级前端模块笔记分享

阿里、莫言

前端 前端面试

国际领先!天翼云驭“数”有道!

天翼云开发者社区

云计算 大数据 云平台

一文了解TiDB的执行计划绑定功能

TiDB 社区干货传送门

性能调优 实践案例

TIDB 行转列和列转行操作(附SQL实战)

TiDB 社区干货传送门

实践案例

非遗之美与科技之力的碰撞,易开得谱写一首《定军山》

脑极体

TIKV 源码学习笔记--分布式事务接口 CheckTxnStatus/ ResolveLock

TiDB 社区干货传送门

TiDB 底层架构

为什么Python语言那么受欢迎呢?

小魏写代码

知识图谱数据开发是做什么的

悦数图数据库

图数据库

MySQL的JOIN到底是怎么玩的

派大星

:MySQL 数据库 互联网大厂

HTTP/3:全面剖析

Apifox

前端 后端 HTTP http3 HTTP/3

记录一次Region is Unavailable问题的排查

TiDB 社区干货传送门

监控 性能调优 故障排查/诊断 6.x 实践

现网修改TiDB集群IP和端口

TiDB 社区干货传送门

6.x 实践

增长分析系列一:社交行业指标体系设计与运营策略探究

ClkLog

2024年3月最新注册Chatgpt教程,国内可用,无需手机号!

蓉蓉

GPT-4 ChatGPT4

“数字孪生技术” 推动数字人产业驶入快车道!

青否数字人

数字人

TIKV BatchSystem 概述

TiDB 社区干货传送门

TiDB 底层架构

TIKV 源码学习笔记--BatchSystem 创建初始化流程

TiDB 社区干货传送门

TiDB 底层架构 TiKV 源码解读 TiKV 底层架构

TIDB数据库在某省妇幼业务系统应用

TiDB 社区干货传送门

实践案例 数据库架构选型 性能测评 7.x 实践

Haproxy 探活 TiDB in Action

TiDB 社区干货传送门

.NET开源快速、强大、免费的电子表格组件

EquatorCoco

.net 开源 表格

Mac平台上的强大软件卸载工具:AppDelete中文直装版

Rose

软件卸载工具 Mac卸载软件 苹果电脑软件下载 AppDelete

TDengine 签约优力电,查询速度提升至毫秒级别

TDengine

tdengine 时序数据库

web快速开发框架,前端开发学习教程

阿里、莫言

前端 前端面试 前端知识

支持M2/M3 macbook高效率工具:Alfred 5汉化包下载

Rose

mac效率工具 Alfred 5破解版 Alfred 中文 Alfred下载

生成式 AI 术语指南:带有配图说明,没有数学公式

Baihai IDP

程序员 AI AIGC 白海科技 GenAI

全能解压 mac版 Dr Unarchiver for Mac中文下载

Rose

Mac软件 解压软件 Dr Unarchiver

TIKV 源码学习笔记--分布式事务接口 Commit/Rollback

TiDB 社区干货传送门

TiDB 底层架构 TiKV 源码解读 TiKV 底层架构

基于信通院混沌测试工具databench-c对TiDB数据库进行混沌测试

TiDB 社区干货传送门

实践案例 性能测评

TIKV 源码学习笔记--分布式事务接口 Prewrite

TiDB 社区干货传送门

开发语言 TiDB 底层架构 TiKV 源码解读 TiKV 底层架构

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