十年前被Linux之父骂 比AMD晚六年:NVIDIA终于开源GPU内核

小猪 643 0

NVIDIA在昨日发布了其Linux GPU内核模块的R515驱动版本,该版本采用开源、双GPL/MIT许可。

这一消息引爆了无数Linux开发者的情绪。此前,因为英伟达的闭源驱动,天下Linux开发者“苦英伟达久矣”。

英伟达也因为“自顾自玩耍”的态度,曾经引来Linux之父Linus的批评,后者在10年前一次活动时因为英伟达对Linux的支持力度欠缺对其表达了严重不满。并留下了经典的“竖中指”名场面。

目前,内核模块的代码已经在GitHub上提供了下载。据悉,目前只有数据中心的GPU代码是完全可用的,GeForce和Workstation GPU的代码仍为“Alpha质量”。

开源的Linux和异类英伟达

产品经理Shirish Baskaran、Ram Cherukuri和Linux OpenGL驱动程序工程师 Andy Ritger和高级产品营销经理Fred Oh在一篇博文中表示,“这一版本朝着改善在Linux中使用英伟达GPU的体验迈出了重要一步,让驱动和操作系统更紧密地集成,使开发人员能够更好地调试和反馈。” 

Linux可以说是世界上最著名的开源操作系统。由于其完全免费并且开源,深受开发者喜爱。开发者可以轻松查看用于创建Linux内核的可用代码,并基于此进行错误修复和程序开发。

同时Linux稳定性与安全性都更高,发生进程崩溃或卡死的概率很低。对开发者来说,Linux的开发环境也更加友好。总的来讲,Linux是一个推崇共享,“众人拾柴火焰高”的平台。

此前英伟达在其中显得更像是一个异类。

相比于其有力竞争者AMD在6年前就宣布开源Linux显卡驱动,英伟达的步子显然迈的慢了一些。虽然英伟达一直积极参与开发Linux显卡驱动,但一直没有采取开源的方式。

英伟达也因为其对Linux支持不力,曾经收获了Linux之父Linus的一根中指和一句国骂。

Linus曾经在10年吐槽英伟达是“与我们打交道的公司中最麻烦的。”

作为一名坚定的开源支持者,Linus一直希望英伟达能够开源驱动。如今他的愿望终于在那根竖向英伟达的著名中指出现在镜头中后十年得以实现。

开源一小步,Linux的一大步

有了完整构建的软件包和源代码,开发人员将能够更容易将驱动程序打包进他们的软件库中。

英伟达表示,在过去一年分阶段推出GSP驱动程序架构之后,该代码目前已经为支持Turing和Ampere系列的数据中心GPU做好了准备,并对各种工作负载进行了测试,以确保与此前在这些GPU上运行的非开源模式内核驱动程序的特性和性能相当。

十年前被Linux之父骂 比AMD晚六年:NVIDIA终于开源GPU内核-第1张图片-小猪号

在适用性方面,这次开源的驱动和此前的程序适用完全一致的固件和用户模式堆栈,能够在20系和30系两种不同架构的GPU上使用。

科技媒体Tom’s Hardware认为,英伟达推出开源驱动程序的主要目标之一是提升对超级计算机和大型数据中心的支持,但家庭用户的情况并不那么乐观。据英伟达称,他们将在之后的一整年中对此进行改进。

英伟达发布的驱动程序将包含之前版本的驱动程序和开源驱动程序,在驱动程序安装期间由用户决定使用哪个驱动。

英伟达承认,它的驱动程序还没有准备好进入Linux内核的上游,但它将和开原方案提供商Canonical、Red Hat和Suse 一起为此努力。英伟达还表示,已经发布的源代码可以作为改进Nouveau驱动的参考。

在英伟达宣布发布开源驱动后,Red Hat的主管 Christian Schaller 在一篇博客文章中称过去一个月中,Nouveau和内核维护者一直在与 英伟达 会面。

在这篇博文中,Christian对英伟达发布的开源驱动可能造成的影响进行了详尽的解读。

“现代图形驱动程序的很大一部分可以在固件和用户空间组件中找到,这些仍然是封闭源代码,”Schaller 写道。

“但这确实意味着我们现在有了一个 英伟达 内核驱动程序,它将能够在 Linux内核中使用 GPL-only API,尽管这个初始版本与旧版相比没有加入新的API。”

Schaller补充说,即使构建了新的开源驱动程序,现有的英伟达二进制和Nouveau驱动程序也会继续存在。

“在短期内,它不会产生重大影响。但随着时间的推移,它提供了一条从根本上简化支持英伟达硬件的途径,”他说。

“从长远来看,我们希望英伟达做到与今天的AMD和英特尔一样“开箱即用”的体验。接下来还有很多工作要做。”

十年前被Linux之父骂 比AMD晚六年:NVIDIA终于开源GPU内核-第2张图片-小猪号

责任编辑:万南文章纠错

话题标签:NVIDIALinux开源

标签: NVIDIA Linux

抱歉,评论功能暂时关闭!