Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

被Linux之父骂醒?英伟达破天荒开源GPU内核驱动,网友:活久见

终于等到了这一天:英伟达开源了他们的 Linux GPU 内核驱动。

「英伟达是我们遇到的硬件厂商中最麻烦的一个。」这是 Linux 内核总设计师 Linus Torvalds 十年前说过的一句原话。

图片

当时,Linus 正在芬兰赫尔辛基阿尔托大学举办的学生和开发者研讨大会上接受采访。在会上,一位现场观众称其买过一款搭载了集成显卡以及 NVIDIA 独立显卡的笔记本电脑,但是在 Linux 下通过 NVIDIA  Optimus 技术进行独立显卡与集成显卡之间的切换却得不到驱动的支持(NVIDIA Optimus 是英伟达开发的双显卡切换技术,它可以实现笔记本电脑中独立显卡与主板内置显卡之间无缝、自动、实时的切换),并就此询问 Linus 的想法。就是在这种语境下,Linus 说出了上面那句话,然后转向摄像机镜头竖起了中指并爆了粗口。

图片

作为开源操作系统 Linux 之父,Linus 一直是开源的忠实拥护者,他一直希望英伟达能够开源他们的驱动。如今,这一天真的来了。

刚刚,英伟达宣布,他们开源了自己的 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 终端用户社区的反馈。

支持的功能

此次 GPU 内核模块发布的第一个版本是 R515,除了公布源代码之外,该版本还提供了驱动程序的完整构建和打包版本。对于 NVIDIA Turing、NVIDIA Ampere 架构系列中的数据中心 GPU 来说,这些代码可用于生产。这得益于过去一年英伟达分阶段推出的 GSP 驱动程序架构,旨在让英伟达的客户轻松过渡。研发团队专注于测试各种工作负载,以确保与专有内核模式驱动程序的功能和性能相同。

未来,HMM 等功能将成为 NVIDIA Hopper 架构上机密计算的基础组件。

英伟达这次的开源版本对 GeForce 和 Workstation GPU 的支持度很高。GeForce 和 Workstation 用户可以在 NVIDIA Turing、NVIDIA Ampere 架构 GPU 上使用此驱动程序来运行 Linux 桌面,并在 Vulkan 和 NVIDIA OptiX 中使用多显示器、G-SYNC 和 NVIDIA RTX 光线追踪等功能。用户可以选择使用文档中突出显示的内核模块参数 NVreg_EnableUnsupportedGpus 。更强大、功能更全的 GeForce 和工作站支持将在后续版本中发布,英伟达开源内核模块将最终取代闭源驱动程序。

拥有 Turing 和 Ampere GPU 的客户可以自主选择安装哪些模块。而使用 Turing 之前硬件的客户将继续运行闭源模块。

开源内核模式驱动程序使用相同的固件和相同的用户模式堆栈,例如 CUDA、OpenGL 和 Vulkan。但是,驱动程序堆栈的所有组件都必须与发行版中的版本相匹配。例如,用户不能使用以前或未来版本的用户模式堆栈发布源代码、构建或运行它。

为什么英伟达的开源驱动对 Linux 如此重要?

在英伟达宣布开源后不久,开源解决方案供应商 Red Hat 的桌面高级经理 Christian F.K. Schaller 发表了篇题为《Why is the open source driver release from NVidia so important for Linux?》的博客文章,深入解读了英伟达此次开源对 Linux 的影响,我们来看看他是怎么说的。

新驱动包含什么?

英伟达此次发布的是源代码树外内核驱动程序,该驱动程序经过测试可支持数据中心 GPU 上的 CUDA 用例。其中含有支持显示的代码,但尚未完成测试。此外,这只是内核部分,现代图形驱动程序的很大一部分能够在固件和用户空间组件中找到,但它们仍是闭源的。

不过,这次开源确实意味着 NVidia 已经发布了一个能够使用 Linux 内核中 GPL-only API 的内核驱动程序,尽管这个初始版本不使用旧驱动程序未使用的任何 API。

该驱动程序还仅支持 NVidia Turing 芯片 GPU 及之后的更新版本,这意味着它不能用于 2018 年之前的 GPU。因此,对于大多数 Linux 桌面用户来说,并不是立即可用。

对于英伟达二进制驱动程序意味着什么?

Turing 芯片之前的英伟达 GPU 将继续需要英伟达的二进制内核驱动程序。在开源内核模块经过全面测试和扩展以显示用例之前,即使用户使用的是 Turing 之后的 GPU,也可能需要继续使用该二进制驱动程序。同样,二进制驱动程序的很大一部分可以在固件和用户空间中找到。

对于 Nouveau 意味着什么?

Nouveau 是当前英伟达 GPU 的内核内图形驱动程序。它功能完备,但因不能 re-clock 而无法像二进制驱动程序那样为用户提供完整的性能。

Linux 内核不允许同一硬件有多个驱动程序,因此为了让新的英伟达内核驱动程序进入当前驱动程序,必须退出或至少限制一组不同的硬件,当前驱动程序就是 Nouveau。

就像二进制驱动程序一样,Nouveau 的很大一部分不在内核中,而是在 Mesa 的用户空间片段和 NVidia 当前发布的 Nouveau 特定固件中。因此,英伟达会保留 Nouveau 以支持 Turing 之前的硬件。

我们正在努力探索一种能让英伟达二进制驱动和 Mesa 共享内核驱动程序的方法,这可能需要几年的时间才能完全实现。我们目前预期推出一种全新的驱动程序,旨在同时满足英伟达用户空间和 Mesa 用户空间的需求。我们也希望在此过程中与英伟达的工程师合作。

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

对于 Fedora、RHEL 等 Linux 发行版意味着什么?

实际上,英伟达的开源 GPU 内核近期并不会对 Fedora、RHEL 等 Linux 发行版产生重大影响。但随着时间的推移,由于此次开源提供了一种从根本上简化英伟达硬件支持的途径。从长远来看,我们希望能够在英伟达硬件上获得与英特尔AMD 类似的体验,即开箱即用的功能。

接下来英伟达会有很多工作要做,他们需要使这个新的驱动程序在计算和图形显示应用中更加完整,我们需要做的是,共同努力为未来统一内核驱动程序制定一个计划,并围绕该计划制定一个适用于社区和英伟达的模型,例如添加 Mesa Vulkan 驱动程序之类的东西。

参考链接:https://blogs.gnome.org/uraeus/2022/05/11/why-is-the-open-source-driver-release-from-nvidia-so-important-for-linux/

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

理论英伟达
相关数据
英特尔机构

英特尔(NASDAQ: INTC)是全球半导体行业的引领者,以计算和通信技术奠定全球创新基石,塑造以数据为中心的未来。我们通过精尖制造的专长,帮助保护、驱动和连接数十亿设备以及智能互联世界的基础设施 —— 从云、网络到边缘设备以及它们之间的一切,并帮助解决世界上最艰巨的问题和挑战。

http://www.intel.cn/
相关技术
调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

光线追踪技术

在计算机图形学中,光线跟踪是一种渲染技术,用于通过将光的路径跟踪为图像平面中的像素并模拟虚拟对象对光线的接收效果来生成图像。 该技术能够产生非常高的视觉真实感,通常高于典型扫描线渲染方法,但计算成本更高。

操作系统技术

操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

AMD机构

超威半导体(中国)有限公司专门为计算机、通信和消费电子行业设计和制造各种创新的微处理器(CPU、GPU、主板芯片组、电视卡芯片等),以及提供闪存和低功率处理器解决方案,公司成立于1969年。AMD致力为技术用户——从企业、政府机构到个人消费者——提供基于标准的、以客户为中心的解决方案。

https://www.amd.com/zh-hans
Hopper机构

Hopper开发了一个移动应用程序,它使用大数据来预测和分析机票价格。它的应用程序向旅行者提供他们在航班上获得交易所需的信息,并在航班价格处于预测的最低点时通知他们。

官网,http://www.hopper.com/
暂无评论
暂无评论~