為何 NVidia 的開源驅動程式對 Linux 如此重要?

2022-05-14 01:56:38

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 的方式。

 

小編對驅動程式的瞭解水平有限,如有一些理解錯誤,歡迎大家指正批評。若有朋友對該文章感興趣,可移步詳細閱讀。

展開閱讀全文