英偉達終於開源GPU核心模組程式碼,網友:難以置信

作者 | 鈺瑩,核子可樂

近日,英偉達(NVIDIA)宣佈,將 Linux GPU 核心模組作為開放原始碼釋出。早在幾天前,NVIDIA 開始在 GitHub 上陸續公開相關程式碼,目前該專案已經收穫 7。7k star,眾多網友對本次開源紛紛表示難以置信。

英偉達開源 GPU 核心模組程式碼

本次開源無疑可以幫助改善英偉達 GPU 在 Linux 環境下的體驗,與作業系統的緊密整合是幫助開發人員開展除錯、整合和貢獻回饋的重要一步。這些模組的開源還使得驅動程式在 Linux 發行版供應商手中更加易用。英偉達也改進了開箱即用體驗,讓使用者輕鬆對英偉達 GPU 驅動程式進行簽署與分發。現在,Canonical 和 SUSE 可以即刻將開放核心模組與 Ubuntu 及 SUSE Linux Enterprise Distributions 共同打包。

英偉達終於開源GPU核心模組程式碼,網友:難以置信

開發者可以跟進程式碼路徑,檢視核心事件排程如何與工作負載進行互動,從而快速開展根源性除錯。此外,企業軟體開發者現可將驅動程式無縫整合至專案配置的定製化 Linux 核心當中。此番開源舉措將幫助英偉達充分吸納來自 Linux 終端使用者社群的意見和評論,進而提升 GPU 驅動程式的質量和安全性。

每次釋出新驅動,英偉達都會在 NVIDIA/open-gpu-kernel-modules 頁面上釋出原始碼快照。社群提交的補丁一旦經過稽核批准,即可被整合到後續驅動程式版本當中。

關於更多詳細資訊,請參閱英偉達貢獻指南(https://github。com/NVIDIA/open-gpu-kernel-modules/blob/main/README。md)與驅動程式釋出節奏與週期(https://docs。nvidia。com/datacenter/tesla/drivers/index。html#lifecycle)說明文件。

支援的功能

作為首個開放 GPU 核心模組版本的 R515 不僅包含原始碼,同時也提供驅動程式的完整構建與打包版本。

對於英偉達 Turing 和 Ampere 架構家族中的資料中心用 GPU 產品,此版本程式碼可用於生產支援。英偉達專注於測試各類工作負載,確保開源版本與專有核心模式驅動程式具備相同的功能和效能。

未來,HMM 等功能也將成為英偉達 Hopper 架構上實現機密計算的基礎元件。這個開源版本對 GeForce 和 Workstation GPU 的支援度已經很高。GeForce 和 Workstation 使用者可以在英偉達 Turing 和 Ampere 架構 GPU 上使用此驅動來執行 Linux 桌面,並在 Vulkan 和英偉達 Optix 中實現多屏顯示、G-SYNC 和英偉達 RTX 光線追蹤等功能。

開發者也可以選擇將核心模組引數設定為 NVreg_OpenRmEnableUnsupportedGpus=1。在後續版本中,英偉達還將提供更加強大、功能齊備的 GeForce 與 Workstation 支援,最終推動英偉達開放核心模組全面取代閉源驅動程式。

擁有英偉達 Turing 和 Ampere 架構 GPU 的客戶可以具體選擇要安裝的模組。對於 Turing 之前產品的使用者,將繼續使用閉源模組。

開源核心模式驅動程式繼續沿用相同的韌體和使用者模式堆疊,包括 CUDA、OpenGL 和 Vulkan,但驅動程式中的所有元件必須與發行版中的版本相匹配。例如,使用者不能使用來自更早或更新版本中的使用者模式堆疊,釋出、構建或運行當前版本中的原始碼。

關於如何安裝正確版本的更多資訊及其他故障排查步驟,請參閱驅動程式自述檔案(http://us。download。nvidia。com/XFree86/Linux-x86_64/515。43。04/README/kernel_open。html)。

安裝選擇

R515 版本包含閉源驅動程式和開源核心模組的預編譯版本。這些版本間彼此互斥,需要在安裝過程中做出選擇。與英偉達 Turing+ GPU 相比,預設選項提供的靜默安裝能夠為英偉達 Volta 及其他較早 GPU 提供最佳路徑。可以根據原始碼構建核心模組,並配合相關使用者模式驅動進行安裝。

英偉達終於開源GPU核心模組程式碼,網友:難以置信

圖片圖一:啟用 GPU 核心模組和閉源模組預設路徑的安裝選項

上游方法

多年以來,英偉達 GPU 驅動程式在設計上一直強調跨作業系統、跨 GPU 和跨 Jetson SOC 實現程式碼共享,以確保能夠在全部受支援的平臺上提供一致的體驗。但當前程式碼庫並不符合 Linux 核心設計約定,因此並未成為 Linux 上游社群的備選方法。

但我們已經在積極籌劃,希望與 Linux 核心社群及合作伙伴(包括 Canonical、Red Hat 和 SUSE)合作開發上游方法。

與此同時,已釋出的這部分原始碼也可作為參考,幫助改進 Nouveau 驅動程式。Nouveau 與此次開源的驅動程式共享相同韌體,因此公開的多項 GPU 功能,包括時鐘管理與熱量管理也將為 Nouveau 驅動帶來更多新功能。也歡迎大家繼續關注 GitHub 上的後續驅動釋出與協作進展。

常見問題

哪裡可以下載 R515 驅動程式?

開發者可以在 CUDA Toolkit 11。7 中下載 R515 開發驅動,或者在“Beta”驅動程式中的驅動下載頁面(https://www。nvidia。com/en-us/drivers/unix/)處下載。R515 資料中心版驅動程式將根據英偉達的釋出節奏,在後續版本中與大家見面。

開放 GPU 核心模組本身能否二次分發?

可以,英偉達開放核心模組遵循 GPL/MIT 雙許可,許可條款允許二次分發和打包。

英偉達是否會開放其他使用者模式驅動程式(例如 CUDA)?

此次變更主要針對核心模組,使用者模式元件將保持不變。使用者模式繼續保持閉源形式,並將與驅動程式和 CUDA 工具包內的預構建二進位制檔案一同釋出。

開放 GPU 核心模組支援哪些 GPU?

開放核心模組支援所有英偉達 Ampere 及 Turing 架構 GPU。資料中心 GPU 將獲得生產級支援,GeForce 和 Workstation GPU 則為高質量支援。關於更多詳細資訊,請參閱資料中心、英偉達 RTX 與 GeForce CUDA GPU 產品表(https://developer。nvidia。com/cuda-gpus)。可以看到,英偉達 Turing 及更新 GPU 的算力評分均為 7。5 及以上。

如何上報 bug?

開發者可以透過 GitHub repo 問題跟蹤器(https://github。com/NVIDIA/open-gpu-kernel-modules/issues)或我們的終端使用者支援論壇(https://forums。developer。nvidia。com/c/gpu-graphics/linux/148)上報問題。另外,安全問題請透過 GitHub repo 安全政策(https://github。com/NVIDIA/open-gpu-kernel-modules/security/policy)中列出的渠道進行上報。

如何提交補丁?補丁 SLA/CLA 流程是怎樣的?

歡迎社群透過 PR 請求在 GitHub 頁面上提交補丁。提交的補丁將在審查核準後,與其他修改成果一道被整合到後續驅動程式版本當中。關於更多詳細資訊,請參閱英偉達驅動程式生命週期(https://docs。nvidia。com/datacenter/tesla/drivers/index。html#lifecycle)文件。

這裡釋出的原始碼是根據共享程式碼庫生成的快照,因此各項貢獻可能不會在 GitHub repo 中體現為單獨的 Git 提交。英偉達正在規劃社群貢獻認可流程。出於同樣的理由,建議各位貢獻者不要對程式碼進行重大格式調整。

提交 PR 請求的流程請參閱 NVIDIA/open-gpu-kernel-modules GitHub 頁面,貢獻規則請參閱貢獻者許可協議(https://cla-assistant。io/NVIDIA/open-gpu-kernel-modules)。關於更多資訊,請參閱開放 GPU 核心模組 NVIDIA/open-gpu-kernel-modules GitHub 頁面。

部落格地址:

https://developer。nvidia。com/blog/nvidia-releases-open-source-gpu-kernel-modules/

專案地址:

https://github。com/NVIDIA/open-gpu-kernel-modules

開源的重要意義

在英偉達宣佈開源後不久,Red Hat 的桌面高階經理 Christian F。K。 Schaller 發表了篇題為《Why is the open source driver release from NVidia so important for Linux?》的文章表示,這次開源意味著英偉達已經發布了一個能夠使用 Linux 核心中 GPL-only API 的核心驅動程式,儘管這個初始版本不使用舊驅動程式未使用的任何 API。該驅動程式還僅支援 NVidia Turing 晶片 GPU 及之後的更新版本,這意味著它不能用於 2018 年之前的 GPU。因此,對於大多數 Linux 桌面使用者來說,並不是立即可用。

部落格地址:

https://blogs。gnome。org/uraeus/2022/05/11/why-is-the-open-source-driver-release-from-nvidia-so-important-for-linux/

對於開源社群來說,這意味著我們將有一個核心驅動程式和韌體,允許改變 GPU 時鐘,以提供研究者期望從英偉達顯示卡獲得的效能;我們將擁有一個開源驅動程式,可以訪問新一代英偉達硬體韌體和核心更新;可以開始使用 Linux 核心中的 GPL-only API。

Canonical 公司晶片聯盟副總裁 Cindy Goldberg 評論道,“新的英偉達開源 GPU 核心模組在簡化安裝流程之餘,也提升了 Ubuntu 使用者的安全保障水平。無論您是 AI/ML 開發者、遊戲玩家還是雲使用者,都能夠從中受益。作為最受開發者歡迎的 Linux 類作業系統 Ubuntu 的開發商,我們現在能夠立足 Ubuntu 與英偉達 GPU 實現緊密整合,為 AI 和 ML 等前沿領域的開發人員提供更好的支援。”在未來幾個月內,英偉達開放 GPU 核心模組將正式登陸剛剛推出的 Canonical Ubuntu 22。04 LTS。

SUSESUSE 公司業務關鍵 Linux 總經理 Markus Noga 指出,“我們 SUSE 高興地看到,英偉達決定將 GPU 核心模式驅動程式以開源形式釋出。這是開源社群與加速計算領域的真正里程碑。SUSE 有幸透過今年 6 月的 SUSE Linux Enterprise 15 SP4,成為首個引入這一突破性成果的主要 Linux 發行版。英偉達與 SUSE 將憑藉安全的軟體供應鏈和卓越的技術支援,共同滿足使用者跨雲、資料中心及邊緣等位置的 GPU 加速計算需求。

TAG: 偉達GPU驅動程式Linux核心模組