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的想法。
雖然最開始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的早期指導成員由高通、谷歌、英特爾、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的指令集架構,這導致其后續發展可能會受到私有指令集限制。考慮到開源的指令集架構能夠讓開源項目不受限制地發展。同時我們希望開發的是面向科學計算和人工智能計算的高性能GPGPU,因此采用了當時即將正式發布的RISC-V Vector擴展作為我們開源GPGPU的基礎指令集。與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產品出現。
審核編輯:黃飛
?
評論
查看更多