愛伊米

被Linux之父罵醒?英偉達破天荒開源GPU核心驅動,網友:活久見

機器之心報道

機器之心編輯部

終於等到了這一天:英偉達開源了他們的 Linux GPU 核心驅動。

「英偉達是我們遇到的硬體廠商中最麻煩的一個。」這是 Linux 核心總設計師 Linus Torvalds 十年前說過的一句原話。

被Linux之父罵醒?英偉達破天荒開源GPU核心驅動,網友:活久見

當時,Linus 正在芬蘭赫爾辛基阿爾託大學舉辦的學生和開發者研討大會上接受採訪。在會上,一位現場觀眾稱其買過一款搭載了整合顯示卡以及 NVIDIA 獨立顯示卡的膝上型電腦,但是在 Linux 下透過 NVIDIA Optimus 技術進行獨立顯示卡與整合顯示卡之間的切換卻得不到驅動的支援(NVIDIA Optimus 是英偉達開發的雙顯示卡切換技術,它可以實現膝上型電腦中獨立顯示卡與主機板內建顯示卡之間無縫、自動、實時的切換),並就此詢問 Linus 的想法。就是在這種語境下,Linus 說出了上面那句話,然後轉向攝像機鏡頭豎起了中指並爆了粗口。

被Linux之父罵醒?英偉達破天荒開源GPU核心驅動,網友:活久見

作為開源作業系統 Linux 之父,Linus 一直是開源的忠實擁護者,他一直希望英偉達能夠開源他們的驅動。如今,這一天真的來了。

剛剛,英偉達宣佈,他們開源了自己的 GPU 核心驅動模組,此事在開發者社群引起轟動。

被Linux之父罵醒?英偉達破天荒開源GPU核心驅動,網友:活久見

有人評價說,「這是近十年來開源作業系統硬體支援方面發生的最大事件之一。」

被Linux之父罵醒?英偉達破天荒開源GPU核心驅動,網友:活久見

還有人戲稱,這是一個「活久見」時刻。

被Linux之父罵醒?英偉達破天荒開源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/

被Linux之父罵醒?英偉達破天荒開源GPU核心驅動,網友:活久見