AMD Radeon最近在X平臺發(fā)布了一則令人振奮的消息:他們宣布將在五月底開源Radeon GPU的微引擎調(diào)度器(MES)固件文檔,并計劃在之后發(fā)布源代碼以供外部審查和反饋。隨著社區(qū)對Radeon GPU上ROCm(Radeon Open Computer)平臺的興趣日增,AMD還建立了一個GitHub跟蹤器,以便更好地捕捉社區(qū)的反饋并提供最新的更新。作為在GPU領(lǐng)域排名第二的重要玩家,AMD此舉可以說是邁出GPU開源重要一步。
說到開源,近年來,RISC-V開源指令集架構(gòu)在CPU領(lǐng)域已經(jīng)取得了巨大的成功,其開放、靈活、可定制的特點吸引了越來越多的關(guān)注和應(yīng)用。如今,RISC-V也開始在GPU領(lǐng)域嶄露頭角,一些項目和產(chǎn)品已經(jīng)取得了初步的成果。RISC-V能否在GPU領(lǐng)域復(fù)制CPU領(lǐng)域的成功?
面對英偉達在GPU領(lǐng)域的壟斷地位,開源能否成為破局之道?
芯片大廠推動GPU開源
開源是AMD AI軟硬件生態(tài)系統(tǒng)的一大賣點,雖然ROCm軟件自 2016 年推出以來一直是開源的,但是固件的開源也很重要,AMD GPU 上的MES固件AMD 單獨開發(fā)的,不是開源的。
在此簡單科普下固件的概念。固件是嵌入到硬件設(shè)備中的特定軟件,它為硬件提供控制指令,使其能夠執(zhí)行預(yù)定的任務(wù)。雖然固件在技術(shù)上屬于軟件,但它直接與硬件關(guān)聯(lián)并專為特定的硬件設(shè)計,通常存儲在不易丟失數(shù)據(jù)的內(nèi)存中,如ROM、EEPROM或閃存。固件作為硬件和更高級軟件(如操作系統(tǒng)和應(yīng)用程序)之間的橋梁,確保硬件能夠按照預(yù)期的方式運行和與其他系統(tǒng)組件交互。與普通軟件不同,固件不經(jīng)常更改,更新通常是為了增加新功能或修復(fù)錯誤。
通常來說,固件一般不會輕易開源,固件中可能包含了企業(yè)的核心技術(shù)和商業(yè)機密,這些是公司競爭力的重要組成部分。開源固件可能會泄露這些關(guān)鍵信息,給競爭對手帶來機會。
AMD做出固件開源這一決定的背后,有一個推動力量不可忽視,那就是人工智能初創(chuàng)公司Tiny Corp的堅持和倡導(dǎo)。Tiny Corp使用AMD的Radeon 7900 XTX GPU來構(gòu)建他們的"TinyBox"——一款配備六塊顯卡的機器,專門用于處理AI工作負(fù)載。然而,在今年3月,TinyBox遇到了與MES固件相關(guān)的技術(shù)問題,Tiny Corp X 帳戶(可能由 Hotz 主導(dǎo))開始抱怨驅(qū)動程序和固件問題導(dǎo)致崩潰和掛起,這直接影響了其發(fā)布進程。因此,他們多次公開要求AMD開源其MES固件,以便能夠修復(fù)有問題的錯誤。Tiny Corp還提出了改用 Nvidia或 Intel GPU的想法。
雖然最開始Lisa Su拒絕了MES固件開源這一提議,但如今看來,AMD最終還是妥協(xié)了。
如果AMD真的開源MES固件,這不僅可能鞏固Tiny Corp與AMD的合作關(guān)系,還可能促使更多的企業(yè)和開發(fā)者轉(zhuǎn)向AMD的平臺。畢竟英偉達太貴了,按照Tiny Corp公布的價格,若采用AMD GPU,其TinyBox的售價為15,000美元,相比之下,采用Nvidia GPU的價格將高達25,000美元。這兩款計算平臺都將在今年6月份上市。此外,Tiny Corp 未來也可能推出 Arc A770 TinyBox,不過該公司表示目前只有原型機,目前沒有推出的計劃。
此舉不僅可能增強AMD在AI領(lǐng)域的競爭力,還可能促使ROCm成為英偉達CUDA的有力競爭者,ROCm軟件是AMD用于GPU計算的開源堆棧。眾所周知,英偉達的CUDA軟件雖然好用,但卻是閉源的。
在軟件方面,英特爾有開放的軟件堆棧oneAPI。說到此,一項脫胎于英特爾oneAPI的新標(biāo)準(zhǔn)也意欲打破CUDA霸權(quán)!英特爾極擅于制定各種標(biāo)準(zhǔn),關(guān)于此,可閱讀《你不一定知道的英特爾》一文。2023年9月,Linux基金會宣布成立統(tǒng)一加速 (UXL,Unified Acceleration) 基金會。該聯(lián)盟的主要目標(biāo)是開發(fā)能夠與各種人工智能芯片組配合使用的開源軟件。Linux 基金會執(zhí)行董事 Jim Zemlin表示:“統(tǒng)一加速基金會體現(xiàn)了協(xié)作和開源方法的力量。通過聯(lián)合領(lǐng)先的技術(shù)公司并培育跨平臺開發(fā)的生態(tài)系統(tǒng),我們將釋放新的可能性以數(shù)據(jù)為中心的解決方案的性能和生產(chǎn)力。”
UXL Group 的開發(fā)工作主要集中在英特爾OneAPI的軟件工具包上。OneAPI 基于名為 SYCL 的早期框架(SYCL是一種Khronos開放標(biāo)準(zhǔn)),主要目標(biāo)是簡化跨多架構(gòu)的開發(fā)過程(如CPU、GPU、FPGA、加速器),專注于簡化應(yīng)用程序的可移植性。目前英特爾通過多項附加功能擴展了該框架,其中最引人注目的是名為 SYCLomatic 的功能,它的目的是為 Nvidia CUDA 編寫的軟件轉(zhuǎn)換為能夠在其他公司的 AI 芯片上運行的 SYCL 代碼。
UXL生態(tài)系統(tǒng)副總裁兼基金會指導(dǎo)委員會主席Rod Burns在一篇文章中的說法,在快速發(fā)展的異構(gòu)計算時代下,UXL的推動成立,是產(chǎn)業(yè)發(fā)展的必然結(jié)果。目前,UXL的早期指導(dǎo)成員由高通、谷歌、英特爾、Arm、imagination、三星、VMvare(博通)、富士通八家國際芯片和軟件公司組成。在很多分析人士看來,UXL的成立,是這些公司希望能夠聯(lián)合起來,打破CUDA霸權(quán)。
高通人工智能和機器學(xué)習(xí)主管 Vinesh Sukumar 此前在接受路透社采訪時表示:“我們實際上是在向開發(fā)人員展示如何從 Nvidia 平臺遷移出來。”從長遠(yuǎn)來看,UXL 最終旨在減少將 Nvidia 支持的應(yīng)用程序遷移到競爭對手芯片所需的工作量和成本。這可能會給英偉達市場領(lǐng)先的顯卡帶來更多競爭。
從這個趨勢可以看出,雖然 CUDA 在 GPU 編程領(lǐng)域確立了強有力的地位,但是開源和開放標(biāo)準(zhǔn)的推動是行業(yè)的一個明顯趨勢。長期而言,這種開放性有助于降低對單一供應(yīng)商的依賴,促進更多競爭和合作,推動整個行業(yè)的發(fā)展。不過,打破現(xiàn)有的“霸權(quán)”并非易事,需要時間、資源以及持續(xù)地技術(shù)創(chuàng)新。
RISC-V開源之風(fēng)吹向GPU
調(diào)研跟蹤計算機圖形行業(yè)35年之久的Jon Peddie Research (JPR) 表示,業(yè)界一直在尋求一種足夠靈活且可擴展的開放標(biāo)準(zhǔn)GPU,以支持各種市場。
而近年來,開源硬件指令集架構(gòu)RISC-V的崛起,為處理器技術(shù)帶來了一股新風(fēng)潮。這股開源之風(fēng)現(xiàn)在正吹向圖形處理單元(GPU)。不少廠商和學(xué)術(shù)界的研究者已經(jīng)稍有動作。
1
IP廠商:GPU IP
X-Silicon Inc. (XSi) 是一家提供開放標(biāo)準(zhǔn)計算圖形硅 IP 解決方案的初創(chuàng)公司,他們正在開發(fā)一個基于RISC-V矢量的統(tǒng)一圖形計算引擎(C-GPU)革新GPU設(shè)計。傳統(tǒng)的GPU架構(gòu)是SIMD(單指令流多數(shù)據(jù)流),受制于主機 CPU、操作系統(tǒng)和圖形服務(wù),限制了創(chuàng)新并有助于保持現(xiàn)有企業(yè)對其市場的控制。X-Silicon使用的是MIMD(多指令流多數(shù)據(jù)流)架構(gòu),它可以同時在一個芯片中獨立運行 CPU 和 GPU 代碼,從而降低內(nèi)存使用量并提高性能。
在該公司的多核設(shè)計中,多個 C-GPU 內(nèi)核被平鋪在一個芯片上,并通過片上快速合成器結(jié)構(gòu)連接起來,該結(jié)構(gòu)可將每個內(nèi)核的輸出動態(tài)聚合到一個公共緩沖區(qū),即用于圖形用例的幀緩沖區(qū),或用于編解碼器、視頻特效處理和人工智能處理的流水線緩沖區(qū)。該公司聲稱,它還可以通過近內(nèi)存計算、統(tǒng)一內(nèi)存架構(gòu)和其他新穎的硬件配置來加速計算,從而減少 GPU 固有的延遲。他們?yōu)榇松暾埩?14 項專利。
左:X-Silicon的單核概念;右:X-Silicon的單核架構(gòu)(來源:X-Silicon)
IP巨頭Imagination Technology早在前幾年就推出了部分采用了RISC-V的GPU IP,該公司對外宣傳,其所有GPU 都兼容RISC-V SoC。
另外一家嵌入式系統(tǒng)GPU IP提供商Think Silicon是 Applied Materials (應(yīng)用材料)旗下公司,在做面向 MCU 市場的基于 RISC-V 的 GPGPU 解決方案,他們提供了在一個 IP 架構(gòu)中執(zhí)行 3D 圖形和 AII 的獨特組合。
2
科研院所:GPGPU開源項目
近年來,通用圖形處理單元(GPGPU)在人工智能領(lǐng)域迅速得到大規(guī)模應(yīng)用。GPGPU是高性能并行計算處理器芯片的一種,因為可編程性、易移植性,面對新興應(yīng)用具有更低的跟隨成本,所以始終占據(jù)著高性能計算市場很大的份額。
一些科研院所開始探索開源GPGPU,其中較為代表的是佐治亞理工學(xué)院和清華大學(xué)。
佐治亞理工學(xué)院的開源RISC-V GPGPU Vortex是一個開源硬件和軟件項目。目前,Vortex 已經(jīng)發(fā)布了2.0版本, 它支持 OpenCL 并在 FPGA 上運行,如Altera Arria 10、Altera Stratix 10、Xilinx Alveo U50, U250, U280、Xilinx Versal VCK5000。Vortex 平臺具有高度可定制性和可擴展性,擁有完整的開源編譯器、驅(qū)動程序和運行時軟件棧,可用于 GPU 架構(gòu)研究。
Vortex GPU平臺(圖源:Vortex)
看到了GPGPU在AI領(lǐng)域的大規(guī)模應(yīng)用,又考慮到我國面臨著高性能處理器進口受限、IP授權(quán)不可控性的現(xiàn)實挑戰(zhàn)。在這樣的背景下,清華大學(xué)集成電路學(xué)院何虎團隊希望可以開發(fā)一款開源的GPGPU,用于教學(xué)和科研目的。清華大學(xué)“乘影”GPGPU開源項目于2024年1月26日正式啟動,這是一次對GPGPU產(chǎn)業(yè)自主創(chuàng)新的一次新的嘗試。“乘影”是清華大學(xué)集成電路學(xué)院何虎老師研發(fā)團隊歷經(jīng)多年研發(fā),采用RISC-V部分指令和自定義指令構(gòu)建的通用GPU指令集架構(gòu)。
眾所周知,RISC-V是用于CPU的指令集,他們?yōu)楹螘x用RISC-V指令集來做GPGPU?據(jù)何虎告訴筆者:“在決定開發(fā)一款開源GPGPU時,選擇合適的指令集架構(gòu)便成為關(guān)鍵考慮因素。觀察國際上的開源GPU項目,大多數(shù)采用了商業(yè)GPU的指令集架構(gòu),這導(dǎo)致其后續(xù)發(fā)展可能會受到私有指令集限制。考慮到開源的指令集架構(gòu)能夠讓開源項目不受限制地發(fā)展。同時我們希望開發(fā)的是面向科學(xué)計算和人工智能計算的高性能GPGPU,因此采用了當(dāng)時即將正式發(fā)布的RISC-V Vector擴展作為我們開源GPGPU的基礎(chǔ)指令集。與RISC-V的標(biāo)量指令相比,Vector指令攜帶的信息更為豐富,支持的計算種類也更多,這為GPGPU應(yīng)用帶來了獨特的優(yōu)勢。”
何虎進一步指出,雖然Vector指令集和GPGPU在數(shù)據(jù)并行處理上有眾多相似之處,但Vector基于SIMD架構(gòu),而GPGPU基于SIMT架構(gòu),因此需要對架構(gòu)進行深度修改以在GPGPU上實現(xiàn)Vector指令。
據(jù)悉,目前該研發(fā)團隊已經(jīng)采用Chisel語言完成了完整的GPGPU微架構(gòu)設(shè)計和實現(xiàn),同時還實現(xiàn)了OpenCL編譯器,功能和周期軟件仿真器,POCL,驅(qū)動軟件等整套工具鏈軟件。通過了大部分OpenCL 2.0 CTS測試集的驗證。
“乘影” GPGPU微架構(gòu)
“乘影” 開源GPGPU指令集架構(gòu)大部分指令來自于RISC-V指令集,充分利用RISC-V現(xiàn)有的指令集架構(gòu)生態(tài),使得市場主體很容易接受和參與到軟件開發(fā)和芯片設(shè)計中,同時采用了GPGPU SIMT架構(gòu)并設(shè)計了多條擴展指令。
“乘影”的乘影自定義指令集包括幾個方面:
分支、同步、線程束控制:主要是為了在SIMT架構(gòu)下運行程序所必需的控制指令。解決多線程鎖步執(zhí)行時,不同的線程要走不同分支的問題。還有核函數(shù)結(jié)束指令。
寄存器/立即數(shù)擴展:主要是是為了解決RISC-V指令集寄存器編碼空間和立即數(shù)位寬不足的問題。擴展以后的指令集可以支持64個標(biāo)量寄存器,256個向量寄存器,11位立即數(shù)。與主流GPGPU相同。
寄存器對拼接:是為了解決32位寄存器處理64位地址和數(shù)據(jù)的問題。乘影沒有簡單的采用RV64擴展寄存器位寬的方式來處理64位地址和數(shù)據(jù)。因為在GPGPU應(yīng)用中,64位數(shù)據(jù)使用非常稀少,64位寄存器將對硬件設(shè)計帶來浪費。乘影用兩個相鄰32位寄存器構(gòu)成64位寄存器的方式來解決這個問題。
自定義訪存指令:實現(xiàn)OpenCL定義的訪存操作。
張量計算和指數(shù)函數(shù):支持Transformer類型的神經(jīng)網(wǎng)加速設(shè)計的
“乘影”GPGPU指令集
何虎告訴筆者,做開源GPGPU的目的有這么幾點:一是推動形成GPGPU指令集架構(gòu)標(biāo)準(zhǔn)。形成統(tǒng)一軟硬件生態(tài)。讓企業(yè)不再重復(fù)造輪子,各自構(gòu)建自己的體系。最終形成行業(yè)統(tǒng)一的技術(shù)標(biāo)準(zhǔn)和軟硬件生態(tài)。GPGPU行業(yè)企業(yè)可以各自發(fā)揮所長,找到自己的價值。二是利用開源社區(qū)探索先進的GPGPU設(shè)計技術(shù),避免專利陷阱和技術(shù)壁壘。讓企業(yè)可以放心在開源GPGPU基礎(chǔ)上開發(fā)商用GPGPU。三是可以培養(yǎng)GPGPU產(chǎn)業(yè)所需的各類人才。目前乘影開源GPGPU已經(jīng)被國內(nèi)外高校老師應(yīng)用于教學(xué)和科研。
3
芯片公司
今年2月24日,GPU芯片廠商芯瞳半導(dǎo)體發(fā)布公告稱,其成功開源了一款基于RISC-V指令集的GPU處理器模型RVGPU,這款模型采用SIMT(單指令多線程)技術(shù),能夠為GPU設(shè)計帶來新的靈活性和擴展性。現(xiàn)已成功實現(xiàn)對CUDA的兼容支持,包括CUDA編譯器和運行時環(huán)境。該公司表示,將進一步強化對CUDA的支持,并積極探索RISC-V在GPU領(lǐng)域的更多可能性。
RVGPU軟件棧(來源:芯瞳半導(dǎo)體)
為什么是RISC-V?
指令集架構(gòu)是開源GPU發(fā)展的基石,在開源GPU生態(tài)系統(tǒng)中扮演著至關(guān)重要的角色。指令集處于軟件程序和硬件電路之間,起到接口的作用。在處理器芯片技術(shù)棧最重要的中間抽象層是指令集架構(gòu)(ISA)。對于硬件開發(fā)者來說,ISA定義了硬件的功能和行為規(guī)范,允許在同一架構(gòu)下開發(fā)出性能和成本各異的多樣化產(chǎn)品;對軟件開發(fā)者來說,ISA可以視為硬件產(chǎn)品的使用手冊。
今天,英偉達以指令集為基石的高可編程性,也就是CUDA,成為了其在相關(guān)領(lǐng)域取得市場份額和話語權(quán)的關(guān)鍵因素。但是在當(dāng)今的GPU行業(yè)中,大部分商業(yè)公司選擇將指令集架構(gòu)作為閉源技術(shù)標(biāo)準(zhǔn)。應(yīng)用開發(fā)者只能藉由上層的圖形應(yīng)用程序編程接口,或者通用并行編程平臺進行編程。商業(yè)公司自己負(fù)責(zé)指令集架構(gòu)的設(shè)計與規(guī)劃,并提供從微架構(gòu)實現(xiàn)到應(yīng)用程序編程接口之間的全套支持。不過英偉達和AMD都選擇開放部分指令集架構(gòu)標(biāo)準(zhǔn),初衷主要是為了讓應(yīng)用開發(fā)者進行更深入的性能優(yōu)化。
面對國際大廠的閉源策略,開源指令集RISC-V有望突破這一現(xiàn)狀。何虎在“乘影”技術(shù)研討會上指出,如果指令集架構(gòu)變成開源技術(shù)標(biāo)準(zhǔn),上下游開源標(biāo)準(zhǔn)之間分割出的軟硬件技術(shù)棧有能力供養(yǎng)一批獨立的軟硬件解決方案公司。對于軟件公司而言,建立統(tǒng)一的軟件生態(tài)系統(tǒng),減少上層應(yīng)用和工具軟件的開發(fā)和遷移成本;對硬件公司來說,可以讓芯片公司專注于硬件設(shè)計,提高GPU芯片公司的資源投入效率,進而提高技術(shù)水平和競爭力。
通過建立大眾參與的開放上下游生態(tài),建設(shè)積極旺盛的人才培養(yǎng)環(huán)境,使部分國內(nèi)GPU設(shè)計公司核心技術(shù)擺脫海外IP授權(quán)。這樣才能為我國GPU產(chǎn)業(yè)長期發(fā)展奠定堅定基礎(chǔ),使其做大做強。
結(jié)語
開源GPU能否與英偉達一搏,尚需時間檢驗。但可以肯定的是,開源將為GPU市場帶來更多競爭和活力。無論結(jié)果如何,開源GPU的探索和嘗試本身就是科技進步和開源精神的一個重要體現(xiàn)。從長遠(yuǎn)來看,如果隨著技術(shù)的進步和社區(qū)的壯大,相信開源GPU有潛力在某些特定領(lǐng)域或細(xì)分市場中取得一席之地。我們期待著開源GPU生態(tài)系統(tǒng)的不斷完善,以及更多高質(zhì)量的開源GPU產(chǎn)品出現(xiàn)。
審核編輯:黃飛
?
評論
查看更多