宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

英偉達下一款Linux驅動程序開源了,但又沒完全開源

2024年07月19日 首頁 » 熱門科技

GPU巨頭的軟體仍然讓人頭痛,但Fedora和AMD正在努力尋求應對之策。

英偉達表示,其即將發布的560版驅動程序將與515版和555版一樣開放——並將支持更多設備。

從這條最新消息來看,GPU巨頭似乎正在全面擁抱開源GPU核心模塊。

英偉達下一款Linux驅動程序開源了,但又沒完全開源

但事實上,英偉達此舉是對2022年圖形驅動程序開源計劃的延續。根據當時的相關報道,有觀察人士發現其並不像宣傳中的那麼開放(詳情請參閱文末腳註)。首先明確一點,我們並不是在貶低英偉達的開源舉措,只不過……英偉達當時曾有所保留,而如今依然有所保留。

該公司最新公告強調稱,他們將繼續推進此項計劃並擴大支持範圍。2023年,英偉達增加了對新款Turing硬體的支持。如今,該公司在聲明中表示:

對於英偉達Grace Hopper以及英偉達Blackwell等前沿平台,您只能使用開源GPU核心模塊。這些平台不支持專有驅動程序。

而對於隸屬於Turing、Ampere、Ada Lovelace或者Hopper架構的較新GPU,英偉達建議您切換至開源GPU核心模塊。

如果大家使用的是較舊的GPU或者混合應用場景,則將別無選擇,只能繼續使用單體專有驅動程序。而即使您使用的是受到開源支持的現代GPU,也仍然擺脫不了固件BLOB。

各Linux發行版如何處理這個問題

這對支持UEFI安全啟動的Linux發行版們來說明顯是個問題,此機制要求對核心進行加密簽名。Ubuntu直接包含驅動程序以及配套安裝工具,所以情況相對簡單。

但Fedora並不包含英偉達驅動程序等專有元素,甚至根本不在GNOME軟體應用商店中提供相關選項。這是個長期存在的老問題了,但也許很快就能得到解決。

在新的變更提案中,Fedora將為用戶添加一個自行簽署模塊的選項。此項變更仍在討論當中,但如果順利獲批,則有望在Fedora 41中儘快落地。

將CUDA從英偉達手中解放出來

除了擁有高端顯卡的遊戲玩家以外,英偉達GPU的另一個重要用途,就是把計算任務由GPU晶片接管過來。這種並行處理方式能夠極大發揮現代GPU的計算能力。英偉達方面稱之為CUDA,全名叫做計算統一設備架構(compute unified device architecture),但如今人們普遍使用GPGPU計算來表達。

問題在於,如果我們面向CUDA編寫代碼,那麼它就只能在使用英偉達驅動程序的英偉達晶片上運行。舉例來說,大家無法使用全FOSS Nouveau驅動程序運行CUDA代碼。

AMD也有自己的類似GPGPU軟體棧,名為ROCm,它允許用戶將數字運算轉移到AMD GPU上……但同樣的,如果面向ROCm編寫代碼,那它也無法在英偉達平台上運行。如果想要保持跨GPU可移植性,AMD方面也提供Hip替代方案,即異構計算可移植性接口。但需要注意的是,並非所有功能都受到支持,例如內聯PTX匯編語言就無法起效。

如今,新的獨立競爭者也加入戰團:來自Spectral Compute的SCALE語言。項目文檔提到:

SCALE是一套GPGPU編程工具包,允許CUDA應用程序面向AMD GPU進行本地編譯。

SCALE不需要修改CUDA程序或其構建系統。

SCALE確實能支持內聯PTX匯編,該項目還提供了與同類競爭技術的效果比較,包括AMD HIP和FOSS ZLUDA工具。

除此之外,還有其他產品可以實現供應商中立的GPGPU計算。OpenCL標準自2008年起就已存在,並於2020年迎來3.0版本。預計今年晚些時候,還將有名為UXL的新競爭對手參與進來。

不過,這一切都無法阻止英偉達拿下令人印象深刻的3萬億美元市場估值。在我們看來,能提升這一領域的競爭烈度肯定是件好事。

腳註:多開放才算真「開放」?

整天嚷嚷著開源驅動程序,並不代表英偉達的整個驅動程序棧現在都已經轉向開源。人家根本不開源。只能說與Linux作業系統相交互的部分是開源的,而這是英偉達將代碼中的專有部分集中在一個幾MB的「固件」文件內實現的——毫無疑問,這個文件仍然保持閉源、秘不示人。

在發布515驅動程序時,Asahi Linux項目負責人Hector Martin專門查看了英偉達公開了多少代碼可供研究。在現已刪除的Twitter賬戶上,他公布了如下發現:

就是說英偉達「發布」了他們的開源核心驅動程序。

但更準確地講,他們只是把大部分代碼轉移到了固件當中,再讓開源驅動程序調用該固件。據我所知,這個34 MB大小的固件中實現了近900個函數。

博通直呼內行……

簡單比較,蘋果的GPU固件約為400 KB。哪怕同樣是瘋狂與混亂RPC複合體的蘋果顯示控制器,大小也只有7 MB左右,而且其中大部分是數據表(代碼部分只占約1.5 MB)。

千萬別誤會我的意思,核心里blob少一點其實是好事……但英偉達並沒有像他們嘴上說的那樣開源自家「驅動程序」。

至少他們的核心端代碼可是有「區區」58 MB。AMD在這方面仍然遙遙領先,他們用某種方法成功把近300 MB的自動生成內容塞進了上游Linux核心樹當中……

這種在大型軟體項目中留黑箱的作法近年越來越常見。根據2022年時的相關報道:人們對專有固件BLOB範圍不斷擴大的趨勢感到擔憂。這種狀況影響深遠,甚至逼迫Debian項目改變了其延續30年的政策,從Debian 12開始引入專有固件。

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2025 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新