英伟达宣布全面转向开源GPU内核模块!
这次开源行动是两年之前英伟达一个举措的延续——2022年5月宣布开源Linux GPU内核驱动模块。
这件事在当时引发了多个开源社区和机构的热议,还被网友揣测英伟达这么做的背后原因,是迫于Linux之父Linus Torwalds的压力。
过往的恩怨暂且不提,随着最新的英伟达555 Linux驱动程序系列的发布,开源内核驱动程序的支持情况大为改观,英伟达今天发布了一篇长篇博文对其进行推广。
博客地址:https://developer.nvidia.com/blog/nvidia-transitions-fully-towards-open-source-gpu-kernel-modules/
在这篇博文中,英伟达阐述了他们在过去两年中逐渐成熟的开源GPU内核模块,以及新增加的功能。
值得注意的是,此次开源的驱动程序代码仍在主线内核之外。
reddit网友将英伟达这种「开了,但没完全开」的做法类比为一个「半开放厨房」,原来,open source(开源)的意思竟是open sauce(开酱)。
无论如何,有了这种开源GPU内核驱动程序的支持,即使其用户空间驱动程序组件仍是闭源的,也是一种胜利。
兑现两年前的承诺
时间倒回到2年前,随着R515 驱动程序的发布,英伟达以开源方式发布了一套Linux GPU内核模块,具有GPL和MIT双重许可。
初始版本针对数据中心计算GPU,GeForce和工作站GPU处于alpha状态。
当时,英伟达宣布将在后续版本中提供更强大、功能更全面的GeForce和工作站Linux支持,并且开放内核模块将最终取代闭源驱动程序。
现在,R560驱动程序版本即将面世,英伟达在这个时间节点,选择兑现之前的承诺——完全过渡到开源GPU内核模块。
开源GPU内核模块在不损失甚至超出原有性能的基础上,添加了大量新功能:
- 异构内存管理 (HMM) 支持
- 机密计算
- 英伟达Grace平台的一致内存架构
- 更多其他功能
支持的GPU
虽然说是全面转向开源GPU内核模块,但并不是所有GPU都与开源GPU内核模块兼容。
总体而言,就是新产品和旗舰平台支持,比较旧的GPU则不支持。
具体来讲,对于Grace Hopper或Blackwell这两个旗舰平台,仅支持开源GPU内核模块,不再支持专有驱动程序。
而对于Maxwell、Pascal或Volta架构的旧版GPU,则不能与开源GPU内核模块兼容,需要继续使用专有驱动程序。
一些网友表示对此感到遗憾——
对于Turing、Ampere、Ada Lovelace或Hopper架构的较新的GPU,英伟达建议切换到开源GPU内核模块。
如果是同一系统中较旧和较新GPU的混合部署,仅支持使用专有驱动程序。
开源社区翘首以待
英伟达开源GPU内核模块为什么会让开发者感到兴奋呢?
驱动程序有两部分,一部分在用户空间运行,另一部分在内核空间运行。英伟达驱动程序曾经是完全专有的(除了一个直接与内核交互的shim层)。
但在英伟达选择开源之后,开发人员可以阅读、逆向工程、分叉、发送拉取请求等,使得开发人员能够改进开源驱动程序,并启用比以前更多的功能。
NVK就是这样诞生的,这是一个由Collabora、红帽和社区共同为英伟达显卡开发的一个开源驱动,它的目标是成为主流显卡驱动。
NVK是驱动程序的用户空间部分,可以与Nouveau结合使用。
Nouveau是旧的开源驱动程序,已经年久失修了。红帽公司正在开发新的内核空间驱动程序Nova,以取代Nouveau。
随着英伟达开源的步子越迈越大,以及更多的开源社区贡献,NVK的潜力可以进一步被激发,通过增加额外的功能和GPU支持来不断获得改进。
只是这个过程可能还需要足够有「耐心等待」。
问题是,英伟达在开源之路上还能走多远。
有网友分析英伟达这么做的动因和逻辑之后,得出一个结论:主线内核绝不会被开源。原因在于——
开放源代码模块是必要的,因为Linux内核已被修改,为非GPLv2的模块带上了罩子,这将给英伟达驱动程序带来很多问题。
解决方案就是将所有专有代码放入固件中,使其保持专有性,并使内核驱动程序的其余部分自由开源。
现在,英伟达似乎已经准备好放弃旧的专有驱动模块,继续使用FOSS(Free and Open Source Software,自由和开放源代码软件)模块。
但这并不意味着它将会出现在主线内核中,绝对不会,因为它是共享许可证(MIT+GPLv2)。
还有网友对英伟达此举表示怀疑,认为这是被逼无奈之举:英伟达不断被行业合作伙伴(如红帽)敦促,不断收到开源社区的羞辱,也有可能是出于减少维护量以保持驱动程序栈更新和在新内核上运行的考虑。
一位深谙老黄秉性的网友则提出「英伟达历来对其合作伙伴的意见漠不关心」,这应该是与LLM有关,让更多的代码成为训练集的一部分,可以让ChatGPT/Claude/Copilot等工具更好地为英伟达GPU生成代码。
确实,很难相信世界上市值最高的公司之一会真正关心所谓的羞辱和公众情绪,肯定是忙着利用其数据中心的硬件来疯狂印钞。
英伟达真正在意的应该是像Linux这样的正在增长的市场,虽然Linux市场仍然很小,但它处于增长态势,并且在非游戏GPU领域变得更加重要。