為何 NVidia 的開源驅(qū)動程序?qū)?Linux 如此重要?
RedHat 桌面、圖形、信息娛樂和 i18n 總監(jiān) Christian F.K. Schaller 分享了他對 NVIDIA 開源 Linux GPU 內(nèi)核模塊的一些看法,并分析了 NVidia 的開源驅(qū)動對 Linux 社區(qū)的重要性。

開源的驅(qū)動是什么
首先需要明確的是:NVIDIA 開源了 out of tree 源代碼內(nèi)核驅(qū)動程序。這些驅(qū)動程序已經(jīng)過測試,它在作為數(shù)據(jù)中心的 GPU 上支持 CUDA 用例,但尚未支持圖形顯示。盡管也有支持圖形顯示的代碼,但這些代碼還沒有寫完或完全測試。
此外,開源的只是內(nèi)核部分,然而現(xiàn)代圖形驅(qū)動的很大一部分是在固件和用戶空間組件中,而這些仍然是閉源的。因此,對于普通的 Linux 桌面用戶來說,目前 NVIDIA 的開源驅(qū)動程序并不能帶來一些顯而易見的好處。
但無論如何,現(xiàn)在有了一個 NVidia 內(nèi)核驅(qū)動,它能夠使用 linux 內(nèi)核中僅支持 gpl 的 API ,這就為后面的以切打下了基礎(chǔ)。
開源驅(qū)動能取代二進(jìn)制驅(qū)動程序嗎?
目前還不能,該開源驅(qū)動程序只支持 NVidia 圖靈芯片及更新版本的圖形處理器,這意味著它對 2018 年之前的圖形處理器都不起作用。另外,在開源內(nèi)核模塊經(jīng)過全面測試和擴(kuò)展,以用于圖形顯示用例之前,即使你使用的是圖靈或更新版本的 GPU,仍需要在系統(tǒng)中使用二進(jìn)制驅(qū)動。
此外,正如上面所說的,現(xiàn)代圖形驅(qū)動的很大一部分是在固件和用戶空間組件中,因此,即使開源內(nèi)核驅(qū)動程序有圖形顯示能力,二進(jìn)制驅(qū)動程序仍將繼續(xù)存在。
開源驅(qū)動對 Nouveau 有何影響
Nouveau 是一個旨在為 NVIDIA GPU 建立高質(zhì)量的、自由的開源驅(qū)動項(xiàng)目,它最初是作為逆向工程驅(qū)動程序開發(fā)的,但近年來實(shí)得到了 NVIDIA 的積極支持。Nouveau 功能齊全,但由于無法重新計(jì)算 NVidia 顯卡的時鐘等功能而受到嚴(yán)重阻礙,這意味著它不能像二進(jìn)制驅(qū)動那樣提供完整的性能,此次 NVIDIA 開源的 GPU 內(nèi)核模塊對 Nouveau 社區(qū)和項(xiàng)目都大有幫助。
需要注意的是: Linux 內(nèi)核不允許同一個硬件有多個驅(qū)動程序,所以要想讓新的 NVidia 內(nèi)核驅(qū)動程序在當(dāng)前的 Linux 版本中運(yùn)行,就必須退出現(xiàn)在的 Nouveau,或者至少被限制在一套不同的硬件上。就像二進(jìn)制驅(qū)動一樣,Nouveau 的很大一部分不在內(nèi)核中,而是在 Mesa 和 NVidia 目前提供的 Nouveau 特定固件中發(fā)現(xiàn)的用戶空間部分。
目前 NVIDIA 和 RadHat 等發(fā)行版討論的計(jì)劃是讓 NVidia 的二進(jìn)制驅(qū)動和 Mesa 共享一個內(nèi)核驅(qū)動,這可能是一個全新的驅(qū)動程序,旨在同時滿足 NVidia 用戶空間和 Mesa 用戶空間的需求。但這可能需要幾年的時間來實(shí)現(xiàn)。這對開源社區(qū)和 NVidia 都有明顯的優(yōu)勢。對于開源社區(qū)來說,這意味著現(xiàn)在將擁有一個內(nèi)核驅(qū)動程序和固件,它允許更改 GPU 的時鐘,以提供人們期望從 NVidia 顯卡獲得的顯示性能,這意味著 Linux 將擁有一個可以在第一時間訪問新一代 NVidia 硬件的固件和內(nèi)核更新的驅(qū)動程序。
開源驅(qū)動對 Linux 發(fā)行版意味著什么?
就近期而言,它不會產(chǎn)生重大影響。但隨著時間的推移,它提供了一種從根本上簡化對 NVidia 硬件支持的途徑。從長遠(yuǎn)來看,用戶有機(jī)會能在 NVidia 硬件上獲得與 Linux 為 Intel 和 AMD 的硬件提供的的體驗(yàn),即一些開箱即用的功能
開源還意味著 Linux 發(fā)行版可以第一時間支持新的 NVIDIA 芯片,一個高性能的 NVidia 開源 Mesa 驅(qū)動程序?qū)⒃试S Linux 發(fā)行版簽署 NVidia 驅(qū)動程序和內(nèi)核的其他部分,以實(shí)現(xiàn)安全重啟等功能。
由于第一個開源驅(qū)動版本 R515 是針對計(jì)算 GPU 的,所以可以預(yù)期這些選項(xiàng)也將首先為計(jì)算用戶提供,然后再為顯卡用戶提供。
下一步是什么?
NVidia 需要繼續(xù)努力完成這個新的驅(qū)動程序功能,無論是計(jì)算還是圖形顯示用例。而 Linux 社區(qū)和 NVIDIA 需要共同為未來的統(tǒng)一內(nèi)核驅(qū)動程序制定一個計(jì)劃,并圍繞它制定一個適用于它的模型。無論是 Linux 社區(qū)還是 NVidia,都需要添加 Mesa Vulkan 驅(qū)動程序之類的東西,類似于為 AMD 提供 RADV 的方式。

























