開源GPU,能否彎道超車輝達?

AMD Radeon最近在X平台發布了一則令人振奮的消息:他們宣布將在五月底開源Radeon GPU的微引擎調度器(MES)固件文檔,併計劃在之後發布源代碼以供外部審查和反饋。隨著社群對Radeon GPU上ROCm(Radeon Open Computer)平台的興趣日增,AMD還建立了一個GitHub追蹤器,以便更好地捕捉社群的回饋並提供最新的更新。身為在GPU領域排名第二的重要玩家,AMD此舉可以說是邁出GPU開源重要一步。



說到開源,近年來,RISC-V開源指令集架構在CPU領域已經取得了巨大的成功,其開放、靈活、可自訂的特性吸引了越來越多的關注和應用。如今,RISC-V也開始在GPU領域嶄露頭角,一些專案和產品已經取得了初步的成果。 RISC-V能否在GPU領域複製CPU領域的成功?

面對輝達在GPU領域的壟斷地位,開源能否成為破局之道?

晶片大廠推動GPU開源

開源是AMD AI軟硬體生態系統的一大賣點,雖然ROCm軟體自2016 年推出以來一直是開源的,但韌體的開源也很重要,AMD GPU 上的MES韌體AMD 單獨開發的,不是開源的。

在此簡單科普下固件的概念。韌體是嵌入到硬體設備中的特定軟體,它為硬體提供控制指令,使其能夠執行預定的任務。雖然韌體在技術上屬於軟體,但它直接與硬體關聯並專為特定的硬體設計,通常儲存在不易丟失資料的記憶體中,如ROM、EEPROM或快閃記憶體。韌體作為硬體和更高級軟體(如作業系統和應用程式)之間的橋樑,確保硬體能夠按照預期的方式運作和與其他系統組件互動。與普通軟體不同,韌體不經常更改,更新通常是為了增加新功能或修復錯誤。

通常來說,韌體一般不會輕易開源,韌體中可能包含了企業的核心技術和商業機密,這些都是公司競爭力的重要組成部分。開源韌體可能會洩露這些關鍵訊息,為競爭對手帶來機會。

AMD做出韌體開源這項決定的背後,有一個推動力量不可忽視,那就是人工智慧新創公司Tiny Corp的堅持和倡議。 Tiny Corp使用AMD的Radeon 7900 XTX GPU來建造他們的"TinyBox"——一款配備六塊顯示卡的機器,專門用於處理AI工作負載。然而,在今年3月,TinyBox遇到了與MES韌體相關的技術問題,Tiny Corp X 帳戶(可能由Hotz 主導)開始抱怨驅動程式和韌體問題導致崩潰和掛起,這直接影響了其發布進程。因此,他們多次公開要求AMD開源其MES固件,以便能夠修復有問題的錯誤。 Tiny Corp也提出了改用Nvidia或Intel GPU的想法。


來源:Tiny Corp


雖然最開始Lisa Su拒絕了MES韌體開源這項提議,但如今看來,AMD最終還是妥協了。

如果AMD真的開源MES固件,這不僅可能鞏固Tiny Corp與AMD的合作關係,還可能促使更多的企業和開發者轉向AMD的平台。畢竟輝達太貴了,以Tiny Corp公佈的價格,若採用AMD GPU,其TinyBox的售價為15,000美元,相比之下,採用Nvidia GPU的價格將高達25,000美元。這兩款計算平台都將在今年6月上市。此外,Tiny Corp 未來也可能推出Arc A770 TinyBox,不過該公司表示目前只有原型機,目前沒有推出的計畫。

此舉不僅可能增強AMD在AI領域的競爭力,也可能促使ROCm成為輝達CUDA的有力競爭者,ROCm軟體是AMD用於GPU運算的開源堆疊。眾所周知,輝達的CUDA軟體雖然好用,但卻是閉源的。

在軟體方面,英特爾有開放的軟體堆疊oneAPI。說到此,一項脫胎於英特爾oneAPI的新標準也意欲打破CUDA霸權!英特爾極擅於制定各種標準,關於此,可閱讀《你不一定知道的英特爾》一文。 2023年9月,Linux基金會宣布成立統一加速(UXL,Unified Acceleration) 基金會。該聯盟的主要目標是開發能夠與各種人工智慧晶片組配合使用的開源軟體。 Linux 基金會執行董事Jim Zemlin表示:「統一加速基金會體現了協作和開源方法的力量。透過聯合領先的技術公司並培養跨平台開發的生態系統,我們將釋放新的可能性以數據為中心的解決方案的性能和生產力。



UXL Group 的開發工作主要集中在英特爾OneAPI的軟體工具包。 OneAPI 是基於名為SYCL 的早期框架(SYCL是一種Khronos開放標準),主要目標是簡化跨多架構的開發過程(如CPU、GPU、FPGA、加速器),專注於簡化應用程式的可移植性。目前英特爾透過多項附加功能擴展了該框架,其中最引人注目的是名為SYCLomatic 的功能,它的目的是為Nvidia CUDA 編寫的軟體轉換為能夠在其他公司的AI 晶片上運行的SYCL 程式碼。

UXL生態系副總裁兼基金會指導委員會主席Rod Burns在一篇文章中的說法,在快速發展的異構計算時代下,UXL的推動成立,是產業發展的必然結果。目前,UXL的早期指導成員由高通、Google、英特爾、Arm、imagination、三星、VMvare(博通)、富士通八家國際晶片和軟體公司組成。在許多分析家看來,UXL的成立,是這些公司希望能夠聯合起來,打破CUDA霸權。

高通人工智慧和機器學習主管Vinesh Sukumar 先前在接受路透社採訪時表示:「我們實際上是在向開發人員展示如何從Nvidia 平台遷移出來。」從長遠來看,UXL 最終旨在減少將Nvidia 支持的應用程式遷移到競爭對手晶片所需的工作量和成本。這可能會為輝達市場領先的顯示卡帶來更多競爭。



從這個趨勢可以看出,雖然CUDA 在GPU 程式設計領域確立了強而有力的地位,但開源和開放標準的推動是該行業的一個明顯趨勢。長期而言,這種開放性有助於降低對單一供應商的依賴,促進更多競爭和合作,推動整個產業的發展。不過,打破現有的「霸權」並非易事,需要時間、資源以及持續地技術創新。

RISC-V開源之風吹向GPU

研究追蹤電腦繪圖產業35年之久的Jon Peddie Research (JPR) 表示,業界一直在尋求足夠靈活且可擴展的開放標準GPU,以支援各種市場。

而近年來,開源硬體指令集架構RISC-V的崛起,為處理器技術帶來了一股新風潮。這股開源之風現在正吹向圖形處理單元(GPU)。不少廠商和學術界的研究者已經稍有動作。

1. IP廠商:GPU IP

X-Silicon Inc. (XSi) 是一家提供開放標準計算圖形矽IP 解決方案的新創公司,他們正在開發一個基於RISC-V向量的統一圖形計算引擎(C-GPU)革新GPU設計。傳統的GPU架構是SIMD(單指令流多資料流),受制於主機CPU、作業系統和圖形服務,限制了創新並有助於維持現有企業對其市場的控制。 X-Silicon使用的是MIMD(多指令流多資料流)架構,它可以同時在一個晶片中獨立運行CPU 和GPU 程式碼,從而降低記憶體使用量並提高效能。

在該公司的多核心設計中,多個C-GPU 核心被平鋪在一個晶片上,並透過片上快速合成器結構連接起來,該結構可將每個核心的輸出動態聚合到一個公共緩衝區,即用於圖形用例的幀緩衝區,或用於編解碼器、視訊特效處理和人工智慧處理的管線緩衝區。該公司聲稱,它還可以透過近記憶體運算、統一記憶體架構和其他新穎的硬體配置來加速運算,從而減少GPU 固有的延遲。他們為此申請了14 項專利。


左:X-Silicon的單核心概念;右:X-Silicon的單核心架構(資料來源:X-Silicon)


IP巨頭Imagination Technology早在前幾年就推出了部分採用了RISC-V的GPU IP,該公司對外宣傳,其所有GPU 都相容於RISC-V SoC。

另一家嵌入式系統GPU IP供應商Think Silicon是Applied Materials (應用程式材料)旗下公司,在做面向MCU 市場的基於RISC-V 的GPGPU 解決方案,他們提供了在一個IP 架構中執行3D 圖形和AII 的獨特組合。

2. 科學研究院所:GPGPU開源項目

近年來,通用圖形處理單元(GPGPU)在人工智慧領域迅速得到大規模應用。 GPGPU是高效能平行運算處理器晶片的一種,因為可程式性、易移植性,面對新興應用具有更低的跟隨成本,所以始終佔據著高效能運算市場很大的份額。

一些科學研究院所開始探索開源GPGPU,其中較為代表的是喬治亞理工學院和清華大學

佐治亞理工學院的開源RISC-V GPGPU Vortex是一個開源硬體和軟體專案。目前,Vortex 已經發布了2.0版本, 它支援OpenCL 並在FPGA 上運行,如Altera Arria 10、Altera Stratix 10、Xilinx Alveo U50, U250, U280、Xilinx Versal VCK5000。 Vortex 平台具有高度可自訂性和可擴充性,具有完整的開源編譯器、驅動程式和執行時間軟體堆疊,可用於GPU 架構研究。


Vortex GPU平台(圖源:Vortex)


看到了GPGPU在AI領域的大規模應用,也考慮到我國面臨高性能處理器進口受限、IP授權不可控性的現實挑戰。在這樣的背景下,清華大學積體電路學院何虎團隊希望可以開發一款開源的GPGPU,用於教學和研究目的。清華大學「乘影」GPGPU開源計畫於2024年1月26日正式啟動,這是對GPGPU產業自主創新的新的嘗試。 「乘影」是清華大學積體電路學院何虎老師研發團隊歷經多年研發,採用RISC-V部分指令和自訂指令建構的通用GPU指令集架構。

眾所周知,RISC-V是用於CPU的指令集,他們為何會選用RISC-V指令集來做GPGPU?據何虎告訴筆者:「在決定開發一款開源GPGPU時,選擇合適的指令集架構便成為關鍵考慮因素。觀察國際上的開源GPU項目,大多數採用了商業GPU的指令集架構,這導致其後續發展可能會受到私有指令集限制。正式發布的RISC-V Vector擴充功能作為我們開源GPGPU的基礎指令集。了獨特的優勢。

何虎進一步指出,雖然Vector指令集和GPGPU在資料平行處理上有許多相似之處,但Vector基於SIMD架構,而GPGPU基於SIMT架構,因此需要對架構進行深度修改以在GPGPU上實作Vector指令。

據悉,目前該研發團隊已經採用Chisel語言完成了完整的GPGPU微架構設計和實現,同時也實現了OpenCL編譯器,功能和週期軟體模擬器,POCL,驅動軟體等整套工具鏈軟體。通過了大部分OpenCL 2.0 CTS測試集的驗證。


「乘影」 GPGPU微架構


「乘影」 開源GPGPU指令集架構大部分指令來自於RISC-V指令集,充分利用RISC-V現有的指令集架構生態,使得市場主體很容易接受和參與到軟體開發和晶片設計中,同時採用了GPGPU SIMT架構並設計了多個擴充指令。

「乘影」的乘影自訂指令集包括幾個面向:

  • 分支、同步、執行緒束控制:主要是為了在SIMT架構下執行程式所必需的控制指令。解決多執行緒鎖步執行時,不同的執行緒要走不同分支的問題。還有核函數結束指令。
  • 暫存器/立即數擴充:主要是為了解決RISC-V指令集暫存器編碼空間和立即數字寬不足的問題。擴展以後的指令集可以支援64個標量暫存器,256個向量暫存器,11位元立即數。與主流GPGPU相同。
  • 暫存器對拼接:是為了解決32位元暫存器處理64位元位址和資料的問題。乘影沒有簡單的採用RV64擴展暫存器位寬的方式來處理64位元位址和資料。因為在GPGPU應用中,64位元資料使用非常稀少,64位元暫存器將對硬體設計帶來浪費。乘影用兩個相鄰32位元暫存器構成64位元暫存器的方式來解決這個問題。
  • 自訂訪存指令:實作OpenCL定義的訪存操作。
  • 張量計算與指數函數:支援Transformer類型的神經網加速設計的


「乘影」GPGPU指令集




何虎告訴筆者,做開源GPGPU的目的有這麼幾點:一是推動形成GPGPU指令集架構標準。形成統一軟硬體生態。讓企業不再重複造輪子,各自建構自己的體系。最終形成產業統一的技術標準和軟硬體生態。 GPGPU產業企業可以各自發揮所長,找到自己的價值。二是利用開源社群探索先進的GPGPU設計技術,避免專利陷阱和技術壁壘。讓企業可以放心以開源GPGPU為基礎開發人員GPGPU。第三是可以培養GPGPU產業所需的各類人才。目前乘影開源GPGPU已被國內外大學老師應用於教學與研究。

3. 晶片公司

今年2月24日,GPU晶片廠商芯瞳半導體發佈公告稱,其成功開源了一款基於RISC-V指令集的GPU處理器模型RVGPU,這款模型採用SIMT(單指令多線程)技術,能夠為GPU設計帶來新的靈活性和擴充性。現已成功實現對CUDA的兼容支持,包括CUDA編譯器和運行時環境。該公司表示,將進一步強化對CUDA的支持,並積極探索RISC-V在GPU領域的更多可能性。


RVGPU軟體堆疊(來源:芯瞳半導體)


為什麼是RISC-V?

指令集架構是開源GPU發展的基石,在開源GPU生態系統中扮演著至關重要的角色。指令集處於軟體程式和硬體電路之間,起到介面的作用。在處理器晶片技術堆疊最重要的中間抽象層是指令集架構(ISA)。對於硬體開發者來說,ISA定義了硬體的功能和行為規範,允許在同一架構下開發出性能和成本各異的多樣化產品;對軟體開發者來說,ISA可以視為硬體產品的使用手冊。

今天,輝達以指令集為基石的高可程式性,也就是CUDA,成為了其在相關領域取得市場份額和話語權的關鍵因素。但在現今的GPU產業中,大部分商業公司選擇將指令集架構作為閉源技術標準。應用開發者只能藉由上層的圖形應用程式編程接口,或通用平行程式設計平台進行程式設計。商業公司自己負責指令集架構的設計與規劃,並提供從微架構實現到應用程式介面之間的全套支援。不過輝達和AMD都選擇開放部分指令集架構標準,初衷主要是為了讓應用程式開發者進行更深入的效能最佳化。

面對國際大廠的閉源策略,開源指令集RISC-V有望突破現狀。何虎在「乘影」技術研討會上指出,如果指令集架構變成開源技術標準,上下游開源標準之間分割出的軟硬體技術堆疊有能力供養一批獨立的軟硬體解決方案公司。對軟體公司而言,建立統一的軟體生態系統,減少上層應用和工具軟體的開發和遷移成本;對硬體公司來說,可以讓晶片公司專注於硬體設計,提高GPU晶片公司的資源投入效率,進而提高技術水準和競爭力。

透過建立大眾參與的開放上下游生態,建構積極旺盛的人才培育環境,使部分國內GPU設計公司核心技術擺脫海外IP授權。這樣才能為我國GPU產業長期發展奠定堅定基礎,使其做大做強。

結語

開源GPU能否與輝達一搏,尚需時間檢驗。但可以肯定的是,開源將為GPU市場帶來更多競爭與活力。無論結果如何,開源GPU的探索和嘗試本身就是科技進步和開源精神的重要體現。從長遠來看,如果隨著技術的進步和社群的壯大,相信開源GPU有潛力在某些特定領域或細分市場中取得一席之地。我們期待開源GPU生態系統的不斷完善,以及更多高品質的開源GPU產品出現。 (半導體產業觀察)