暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

英伟达开源 Linux GPU驱动

分布式实验室 2022-05-12
1694
 1 
背景介绍


今天,英伟达宣布开源GPU内核驱动这次开源使用双GPL/MIT许可,从R515驱动程序版本开始。开发者们可以在GitHub上的NVIDIA Open GPU Kernel Modules repo中找到这些内核模块的源代码:https://github.com/NVIDIA/open-gpu-kernel-modules

英伟达表示,此次开源将大幅提升用户在Linux系统中使用英伟达GPU的体验,可使其更紧密地与操作系统集成,有利于开发人员的调试、集成和反馈。对于Linux发行版提供商,开源的内核模块增加了易用性,还改善了开箱即用的用户体验,以签署和分发NVIDIA GPU驱动程序。Canonical和SUSE能够立即将这些开源的内核模块与Ubuntu和SUSE Linux Enterprise Distributions打包在一起。

开发人员可以跟踪代码路径,了解内核事件调度如何与他们的工作负载交互,以便更快地进行根源调试。此外,企业软件开发人员现在可以将该驱动无缝集成到为他们的项目定制的Linux内核中。这将进一步提高NVIDIA GPU驱动的质量和安全性,并得到Linux终端用户社区的反馈。

在本文中,我们将借此机会了解相关背景、并展望此举将给Linux的图形与计算发展带来怎样的影响。

可能很多朋友并不清楚,Red Hat是唯一一家在Linux计算与图形工程领域拥有强大影响力的Linux操作系统厂商。诚然,英特尔、AMD和英伟达的工程师,乃至Collabora等咨询企业的员工或个人社区成员也在为此贡献力量,但Red Hat长期以来一直是唯一一家提供可维护、共享式上游开源堆栈的操作系统集成厂商。

也正是在他们的不懈努力下,Linux阵营才得以跟上重要技术的发展脚步,包括几年前正式支持hiDPI;以及与英伟达合作建立glvnd,帮助用户摆脱了在英伟达驱动程序和Mesa同OpenGL .so驱动文件间的艰难选择。

Red Hat一直将自己视为开源社区的合作伙伴,努力保障Linux图形堆栈的连续性与可维护性,并以硬件OEM合作伙伴的姿态帮助推动Linux与GPU方案间的重大协同与发展路径。作为唯一一家在GPU领域拥有重要工程足迹的Linux厂商,Red Hat与英伟达长期保持着密切合作,希望帮助英伟达铺平道路、成功建立起具有开源内核的驱动程序模型。

随着英伟达此次为自家GPU产品发布树外内核驱动程序,Red Hat的努力也已经初见成果。Red Hat GPU技术团队经理Kevin Martin、Nouveau维护者Ben Skeggs和图形子系统上游内核维护者Dave Airlie、Nouveau贡献者Karol Herbst以及Red Hat加速器负责人Tom Rix均出席了上个月与英伟达召开的讨论会。下面,Red Hat就将从自己的视角出发,谈谈英伟达的举措意味着什么、Red Hat自己又期待迎来怎样的长期结果。

本文作者为Red Hat桌面高级经理Christian F.K. Schaller。


 
2 
首先,这款新驱动是干嘛用的?


此次发布的是一款树外源代码内核驱动程序。经过测试,此驱动能够支持数据中心GPU上的CUDA用例。虽然此前相关显示支持代码就已存在,但并未完全经过测试验证。

此外,此次公布的只是内核部分,而现代图形驱动程序的很大一部分体现在固件和用户空间组件当中,而这些仍处于闭源状态。但无论如何,我们已经有了首个英伟达内核驱动程序,所支持的API范围虽仍与旧版驱动程序保持一致,但确已能够使用Linux内核中的纯GPL API。

该驱动程序目前仅支持英伟达Turing芯片GPU及更新版本,因此无法兼容2018年之前推出的GPU。因此对于普通Linux桌面用户来说,这意义重大、影响深远的一步虽然值得关注,但还不会很快改变您的日常使用感受。


 
3 
旧款英伟达二进制驱动程序会有何影响?


目前来说,其实没有太大影响。Turing之前的老款英伟达GPU仍要沿用旧款二进制内核驱动程序,而且在此次开源内核模块完成全面测试和扩展之前,即使是Turing或更新版本的用户、也只能在系统中继续使用旧驱动。另外前面也提到,驱动程序的相当一部分主体源自固件和用户空间组件,所以即使开源内核驱动完全准备就绪,旧款驱动也仍将继续存在。


 
4 
Nouveau会受到什么影响?


Nouveau是目前英伟达GPU产品的内核内图形驱动程序。它功能完善,但因不能re-clock而无法像二进制驱动程序那样为用户提供完整的性能。所以新驱动的出现会对Nouveau造成怎样的影响?跟旧驱动类似,初期影响很小,但从长远来看意义重大。

先说点背景,Linux内核不允许为同一硬件安装多个驱动,因此要让新的英伟达内核驱动发挥作用,先要清退旧驱动、或者为其指定另外一组不同硬件。首当其冲的自然就是Nouveau,跟二进制驱动程序一样,Nouveau有很大一部分也不在内核之中、而是体现在Mesa中的用户空间组件和英伟达当前发布的Nouveau固件上。因此,无论英伟达是否会根据此次新开源驱动为后续硬件开发新的开源树内内核驱动程序,Nouveau都将在前Turing硬件上继续发挥作用。

我们正在努力推进规划,尽可能让英伟达二进制驱动与Mesa共享同一套内核驱动,但这预计还需要几年才能完全实现。我们还在就具体实现细节与英伟达合作方进行讨论,届时很可能会推出一款全新的驱动程序,希望能同时满足英伟达用户空间和Mesa用户空间需求。

在此期间,我们也希望能与英伟达工程师合作,重新调整Mesa用户空间组件,让这些目前仅支持Nouveau的功能也能匹配新的内核驱动程序,最终实现二进制驱动与Nouveau共享相同固件。

如果能够完成,这将给开源社区和二进制驱动程序本身带来明显助益。对于开源社区,这意味着我们将拥有统一的内核驱动程序和固件,通过改变GPU时钟以提供用户需要的英伟达显卡性能。如此一来,我们的开源驱动程序才能原生访问到最新一代英伟达硬件的固件一内核更新。

对于“二进制”驱动程序,这意味着它可以使用内核中的纯GPL API,与发行版同步推出、安全启动,其内核驱动也将由此被开源用户所接受、逐步向上游群体渗透。

但目前,我们还无法断言新的共享内核驱动程序会继续沿用Nouveau的名号,还是彻底改旗易帜。最终答案,完全取决于我们自己、开源社区的其他成员以及英伟达能否共同找到一条可行的实施路径。


 
5 
新驱动的推出,对于Fedora、RHEL等Linux发行版意味着什么?


在短期内,并不会产生重大影响。但随着时间推移,新驱动带来了一条从根本上简化英伟达硬件支持的途径。从长远角度出发,我们希望能在英伟达硬件上获得类似于当前英特尔和AMD硬件的使用体验,特别是实现更多开箱即用功能。这意味着第一时间支持新型芯片组,为英伟达提供高性能开源Mesa驱动程序,进而对英伟达驱动和内核中的其余部分一同签名、实现安全启动等原生支持功能。本次初代版本主要针对计算需求,因此相关选项将首先对计算用户开放,之后再逐步拓展至图形用户。


 
6 
后续计划


我们还有很多工作要做。英伟达需要继续努力为计算和图形显示用例完善新驱动功能,并为未来的统一内核驱动制定开发计划,再据此制定出符合英伟达及整个开源社区需求的模型。我们还需要提供类似于Mesa Vulkan驱动的成果,类似于AMD芯片上的RADV。作为唯一有能力达成这项目标的Linux供应商,Red Hat将积极推动并参与这项工作,并努力确保广泛开源社区也有机会充分加入到这场意义深远的开源生态拓展中来。


推荐阅读:



点击下方卡片关注分布式实验室,和我们一起

关注分布式最佳实践

 点击上方卡片关注分布式实验室,掌握前沿分布式技术


团队对新技术认知少,团队遇到问题不知道怎么解决,想快速提升团队技术能力,想看别人的最佳实践,可扫描下方二维码咨询详情。

最后修改时间:2022-05-12 15:35:23
文章转载自分布式实验室,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论