被Linux之父罵醒?英偉達破天荒開源GPU內(nèi)核驅動,網(wǎng)友:活久見
終于等到了這一天:英偉達開源了他們的 Linux GPU 內(nèi)核驅動。
「英偉達是我們遇到的硬件廠商中最麻煩的一個?!惯@是 Linux 內(nèi)核總設計師 Linus Torvalds 十年前說過的一句原話。
當時,Linus 正在芬蘭赫爾辛基阿爾托大學舉辦的學生和開發(fā)者研討大會上接受采訪。在會上,一位現(xiàn)場觀眾稱其買過一款搭載了集成顯卡以及 NVIDIA 獨立顯卡的筆記本電腦,但是在 Linux 下通過 NVIDIA Optimus 技術進行獨立顯卡與集成顯卡之間的切換卻得不到驅動的支持(NVIDIA Optimus 是英偉達開發(fā)的雙顯卡切換技術,它可以實現(xiàn)筆記本電腦中獨立顯卡與主板內(nèi)置顯卡之間無縫、自動、實時的切換),并就此詢問 Linus 的想法。就是在這種語境下,Linus 說出了上面那句話,然后轉向攝像機鏡頭豎起了中指并爆了粗口。
作為開源操作系統(tǒng) Linux 之父,Linus 一直是開源的忠實擁護者,他一直希望英偉達能夠開源他們的驅動。如今,這一天真的來了。
剛剛,英偉達宣布,他們開源了自己的 GPU 內(nèi)核驅動模塊,此事在開發(fā)者社區(qū)引起轟動。
有人評價說,「這是近十年來開源操作系統(tǒng)硬件支持方面發(fā)生的最大事件之一?!?/span>
還有人戲稱,這是一個「活久見」時刻。
這次開源使用雙 GPL/MIT 許可,從 R515 驅動程序版本開始。開發(fā)者們可以在 GitHub 上的 NVIDIA Open GPU Kernel Modules repo 中找到這些內(nèi)核模塊的源代碼:https://github.com/NVIDIA/open-gpu-kernel-modules
英偉達表示,此次開源將大幅提升用戶在 Linux 系統(tǒng)中使用英偉達 GPU 的體驗,可使其更緊密地與操作系統(tǒng)集成,有利于開發(fā)人員的調試、集成和反饋。對于 Linux 發(fā)行版提供商,開源的內(nèi)核模塊增加了易用性,還改善了開箱即用的用戶體驗,以簽署和分發(fā) NVIDIA GPU 驅動程序。Canonical 和 SUSE 能夠立即將這些開源的內(nèi)核模塊與 Ubuntu 和 SUSE Linux Enterprise Distributions 打包在一起。
開發(fā)人員可以跟蹤代碼路徑,了解內(nèi)核事件調度如何與他們的工作負載交互,以便更快地進行根源調試。此外,企業(yè)軟件開發(fā)人員現(xiàn)在可以將該驅動無縫集成到為他們的項目定制的 Linux 內(nèi)核中。這將進一步提高 NVIDIA GPU 驅動的質量和安全性,并得到 Linux 終端用戶社區(qū)的反饋。
支持的功能
此次 GPU 內(nèi)核模塊發(fā)布的第一個版本是 R515,除了公布源代碼之外,該版本還提供了驅動程序的完整構建和打包版本。對于 NVIDIA Turing、NVIDIA Ampere 架構系列中的數(shù)據(jù)中心 GPU 來說,這些代碼可用于生產(chǎn)。這得益于過去一年英偉達分階段推出的 GSP 驅動程序架構,旨在讓英偉達的客戶輕松過渡。研發(fā)團隊專注于測試各種工作負載,以確保與專有內(nèi)核模式驅動程序的功能和性能相同。
未來,HMM 等功能將成為 NVIDIA Hopper 架構上機密計算的基礎組件。
英偉達這次的開源版本對 GeForce 和 Workstation GPU 的支持度很高。GeForce 和 Workstation 用戶可以在 NVIDIA Turing、NVIDIA Ampere 架構 GPU 上使用此驅動程序來運行 Linux 桌面,并在 Vulkan 和 NVIDIA OptiX 中使用多顯示器、G-SYNC 和 NVIDIA RTX 光線追蹤等功能。用戶可以選擇使用文檔中突出顯示的內(nèi)核模塊參數(shù) NVreg_EnableUnsupportedGpus 。更強大、功能更全的 GeForce 和工作站支持將在后續(xù)版本中發(fā)布,英偉達開源內(nèi)核模塊將最終取代閉源驅動程序。
擁有 Turing 和 Ampere GPU 的客戶可以自主選擇安裝哪些模塊。而使用 Turing 之前硬件的客戶將繼續(xù)運行閉源模塊。
開源內(nèi)核模式驅動程序使用相同的固件和相同的用戶模式堆棧,例如 CUDA、OpenGL 和 Vulkan。但是,驅動程序堆棧的所有組件都必須與發(fā)行版中的版本相匹配。例如,用戶不能使用以前或未來版本的用戶模式堆棧發(fā)布源代碼、構建或運行它。
為什么英偉達的開源驅動對 Linux 如此重要?
在英偉達宣布開源后不久,開源解決方案供應商 Red Hat 的桌面高級經(jīng)理 Christian F.K. Schaller 發(fā)表了篇題為《Why is the open source driver release from NVidia so important for Linux?》的博客文章,深入解讀了英偉達此次開源對 Linux 的影響,我們來看看他是怎么說的。
新驅動包含什么?
英偉達此次發(fā)布的是源代碼樹外內(nèi)核驅動程序,該驅動程序經(jīng)過測試可支持數(shù)據(jù)中心 GPU 上的 CUDA 用例。其中含有支持顯示的代碼,但尚未完成測試。此外,這只是內(nèi)核部分,現(xiàn)代圖形驅動程序的很大一部分能夠在固件和用戶空間組件中找到,但它們?nèi)允情]源的。
不過,這次開源確實意味著 NVidia 已經(jīng)發(fā)布了一個能夠使用 Linux 內(nèi)核中 GPL-only API 的內(nèi)核驅動程序,盡管這個初始版本不使用舊驅動程序未使用的任何 API。
該驅動程序還僅支持 NVidia Turing 芯片 GPU 及之后的更新版本,這意味著它不能用于 2018 年之前的 GPU。因此,對于大多數(shù) Linux 桌面用戶來說,并不是立即可用。
對于英偉達二進制驅動程序意味著什么?
Turing 芯片之前的英偉達 GPU 將繼續(xù)需要英偉達的二進制內(nèi)核驅動程序。在開源內(nèi)核模塊經(jīng)過全面測試和擴展以顯示用例之前,即使用戶使用的是 Turing 之后的 GPU,也可能需要繼續(xù)使用該二進制驅動程序。同樣,二進制驅動程序的很大一部分可以在固件和用戶空間中找到。
對于 Nouveau 意味著什么?
Nouveau 是當前英偉達 GPU 的內(nèi)核內(nèi)圖形驅動程序。它功能完備,但因不能 re-clock 而無法像二進制驅動程序那樣為用戶提供完整的性能。
Linux 內(nèi)核不允許同一硬件有多個驅動程序,因此為了讓新的英偉達內(nèi)核驅動程序進入當前驅動程序,必須退出或至少限制一組不同的硬件,當前驅動程序就是 Nouveau。
就像二進制驅動程序一樣,Nouveau 的很大一部分不在內(nèi)核中,而是在 Mesa 的用戶空間片段和 NVidia 當前發(fā)布的 Nouveau 特定固件中。因此,英偉達會保留 Nouveau 以支持 Turing 之前的硬件。
我們正在努力探索一種能讓英偉達二進制驅動和 Mesa 共享內(nèi)核驅動程序的方法,這可能需要幾年的時間才能完全實現(xiàn)。我們目前預期推出一種全新的驅動程序,旨在同時滿足英偉達用戶空間和 Mesa 用戶空間的需求。我們也希望在此過程中與英偉達的工程師合作。
綜上所述,對于開源社區(qū)來說,這意味著我們將有一個內(nèi)核驅動程序和固件,允許改變 GPU 時鐘,以提供研究者期望從英偉達顯卡獲得的性能;意味著我們將擁有一個開源驅動程序,從開源第一天起我們就可以訪問新一代英偉達硬件固件和內(nèi)核更新;意味著我們可以開始使用 Linux 內(nèi)核中的 GPL-only API。
對于 Fedora、RHEL 等 Linux 發(fā)行版意味著什么?
實際上,英偉達的開源 GPU 內(nèi)核近期并不會對 Fedora、RHEL 等 Linux 發(fā)行版產(chǎn)生重大影響。但隨著時間的推移,由于此次開源提供了一種從根本上簡化英偉達硬件支持的途徑。從長遠來看,我們希望能夠在英偉達硬件上獲得與英特爾和 AMD 類似的體驗,即開箱即用的功能。
接下來英偉達會有很多工作要做,他們需要使這個新的驅動程序在計算和圖形顯示應用中更加完整,我們需要做的是,共同努力為未來統(tǒng)一內(nèi)核驅動程序制定一個計劃,并圍繞該計劃制定一個適用于社區(qū)和英偉達的模型,例如添加 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/
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。