为何 NVidia 的开源驱动程序对 Linux 如此重要?

RedHat 桌面、图形、信息娱乐和 i18n 总监 Christian F.K. Schaller 在博客中分享了他对 NVIDIA 开源 Linux GPU 内核模块的一些看法,并分析了NVidia 的开源驱动对 Linux 社区的重要性。

开源的驱动是什么

首先需要明确的是:NVIDIA 开源了 out of tree 源代码内核驱动程序。这些驱动程序已经过测试,它在作为数据中心的 GPU 上支持 CUDA 用例,但尚未支持图形显示。尽管也有支持图形显示的代码,但这些代码还没有写完或完全测试。

此外,开源的只是内核部分,然而现代图形驱动的很大一部分是在固件和用户空间组件中,而这些仍然是闭源的。因此,对于普通的 Linux 桌面用户来说,目前 NVIDIA 的开源驱动程序并不能带来一些显而易见的好处。

但无论如何,现在有了一个 NVidia 内核驱动,它能够使用 linux 内核中仅支持 gpl 的 API ,这就为后面的以切打下了基础。

开源驱动能取代二进制驱动程序吗?

目前还不能,该开源驱动程序只支持 NVidia 图灵芯片及更新版本的图形处理器,这意味着它对2018年之前的图形处理器都不起作用。另外,在开源内核模块经过全面测试和扩展,以用于图形显示用例之前,即使你使用的是图灵或更新版本的 GPU,仍需要在系统中使用二进制驱动。

此外,正如上面所说的,现代图形驱动的很大一部分是在固件和用户空间组件中,因此,即使开源内核驱动程序有图形显示能力,二进制驱动程序仍将继续存在。

开源驱动对 Nouveau 有何影响

Nouveau 是一个旨在为NVIDIA GPU建立高质量的、自由的开源驱动项目,它最初是作为逆向工程驱动程序开发的,但近年来实得到了NVIDIA的积极支持。Nouveau 功能齐全,但由于无法重新计算 NVidia 显卡的时钟等功能而受到严重阻碍,这意味着它不能像二进制驱动那样提供完整的性能,此次 NVIDIA 开源的 GPU 内核模块对 Nouveau 社区和项目都大有帮助。

需要注意的是: Linux内核不允许同一个硬件有多个驱动程序,所以要想让新的 NVidia 内核驱动程序在当前的 Linux 版本中运行,就必须退出现在的 Nouveau,或者至少被限制在一套不同的硬件上。就像二进制驱动一样,Nouveau 的很大一部分不在内核中,而是在 Mesa 和 NVidia 目前提供的 Nouveau 特定固件中发现的用户空间部分。

目前NVIDIA和RadHat等发行版讨论的计划是让NVidia的二进制驱动和Mesa共享一个内核驱动,这可能是一个全新的驱动程序,旨在同时满足NVidia用户空间和Mesa用户空间的需求。但这可能需要几年的时间来实现。这对开源社区和 NVidia 都有明显的优势。对于开源社区来说,这意味着现在将拥有一个内核驱动程序和固件,它允许更改 GPU 的时钟,以提供人们期望从 NVidia 显卡获得的显示性能,这意味着 Linux 将拥有一个可以在第一时间访问新一代 NVidia 硬件的固件和内核更新的驱动程序。

开源驱动对 Linux 发行版意味着什么?

就近期而言,它不会产生重大影响。但随着时间的推移,它提供了一种从根本上简化对 NVidia 硬件支持的途径。从长远来看,用户有机会能在NVidia硬件上获得与Linux为Intel和AMD的硬件提供的的体验,即一些开箱即用的功能

开源还意味着 Linux 发行版可以第一时间支持新的 NVIDIA 芯片,一个高性能的NVidia开源Mesa驱动程序将允许 Linux 发行版签署NVidia驱动程序和内核的其他部分,以实现安全重启等功能。

由于第一个开源驱动版本 R515 是针对计算 GPU 的,所以可以预期这些选项也将首先为计算用户提供,然后再为显卡用户提供。

下一步是什么?

NVidia 需要继续努力完成这个新的驱动程序功能,无论是计算还是图形显示用例。而 Linux 社区和 NVIDIA 需要共同为未来的统一内核驱动程序制定一个计划,并围绕它制定一个适用于它的模型。无论是Linux 社区还是 NVidia,都需要添加 Mesa Vulkan 驱动程序之类的东西,类似于为 AMD 提供 RADV 的方式。

小编对驱动程序的了解水平有限,如有一些理解错误,欢迎大家指正批评。若有朋友对该文章感兴趣,可移步博客中详细阅读。

猜你喜欢

转载自www.oschina.net/news/195535/nvidia-open-sourceso-drivers-is-important-for-linux