Nvidia 邁出了開源 Linux GPU 驅動程序的第一步
經過多年的暗示,Nvidia 昨天宣布它將成為開源 Linux GPU 驅動程序的一部分,就像英特爾和 AMD 多年來一直在做的那樣。以前,想要避免 Nvidia 專有驅動程序的 Linux 用戶必須依賴逆向工程軟件,例如Nouveau 項目,該軟件在較舊的硬件上運行最佳,並且最多只能為所有 Nvidia GPU 功能提供不完整的支持。
“這個版本是改善 Linux 上 NVIDIA GPU 體驗、與操作系統更緊密集成以及調試、集成和為開發人員做出貢獻的能力的重要一步,”幾位 Nvidia員工的博客文章中寫道。“對於 Linux 發行版供應商來說,開源模塊使其易於使用。它們還改進了 NVIDIA GPU 驅動程序簽名和分發的開箱即用用戶界面。Canonical 和 SUSE 可以立即將開放內核模塊與 Ubuntu 和 SUSE Linux Enterprise 發行版打包在一起。”
Nvidia 在 MIT/GPL 雙重許可下專門發布了開源內核驅動程序,目前並未發布該驅動程序的用戶空間部分。其中包括 OpenGL、Vulkan、OpenCL 和 CUDA 的驅動程序(仍為閉源)以及 GPU 系統處理器 (GSP) 的固件。Nvidia 表示,這些驅動程序“將保持關閉狀態,並將與預構建的二進製文件一起發布”,因此看起來開源版本並沒有計劃很快發布。
在開源 GPU 驅動程序方面,Nvidia 仍然落後於英特爾和 AMD——兩家公司都發布開源內核和用戶空間驅動程序,以及閉源固件。但這是 Nvidia Linux 驅動程序包走向開源平等的第一步。
Nvidia 的開源驅動程序僅支持該公司基於圖靈架構的 GPU 及更高版本,包括 GeForce GTX 1600 系列、RTX 2000 和 3000 系列以及基於相同架構的 Quadro 工作站 GPU。該公司自己的驅動程序可以追溯到 2012 年的 Kepler 架構。
開源驅動程序也尚未集成到 Linux 內核中,因為 根據 Phoronix 的說法,內核驅動程序與 GSP 固件接口之間的 API、ABI 和接口尚未最終確定。這意味著從固件到內核驅動程序再到用戶空間驅動程序的所有內容都必須進行版本控制才能正常工作(今天的版本是 R515.43.04)。一旦這些接口完成,驅動程序就可以傳遞到內核,並且各種固件版本、內核驅動程序和用戶空間驅動程序應該能夠互操作。
Nvidia 表示,當前驅動程序中對其數據中心 GPU 的支持在這個初始版本中已“做好生產準備”,但對 GeForce、Quadro 和其他消費類 GPU 的支持處於“alpha 質量”——這不是您需要的那種軟件。如果您不想在測試系統上嘗試或自己貢獻代碼,請趕緊安裝。
Asahi Linux 發行版的開發人員之一赫克托·馬丁 (Hector Martin)批評Nvidia 將許多功能轉移到其閉源固件中,然後開源驅動程序調用這些功能。Martin稱開源驅動程序“從實際角度來看是一場乾淨的勝利”,因為一堆專有代碼更容易融入沙箱中。“但關心此事的人卻沒有獲得自由,”他寫道。“[大致]關閉了與以前相同數量的代碼。”
發佈留言