避開(kāi)英偉達(dá)的“門(mén)檻”,RISC-V也能做出高效GPU
RISC-V一直以其開(kāi)源特性而備受業(yè)界關(guān)注。不過(guò),一直以來(lái),RISC-V相關(guān)IP主要集中在CPU領(lǐng)域,而事實(shí)上,它也可以用在GPU領(lǐng)域。
你我都知道,GPU領(lǐng)域幾乎被一兩家企業(yè)所統(tǒng)治,這是因?yàn)镚PU領(lǐng)域生態(tài)是最大的壁壘。加之專(zhuān)利門(mén)檻極高,GPGPU(通用GPU)IP在圖形處理領(lǐng)域一直不溫不火。
最近幾年,大家都探索通過(guò)擴(kuò)展和改寫(xiě)RISC-V CPU指令集,做GPU。
全世界都在研究RISC-V GPU架構(gòu)
事實(shí)上,全世界都不想看一兩家廠(chǎng)商壟斷市場(chǎng),都在想辦法做各種開(kāi)源GPU架構(gòu),這其中既包含較老的指令集或是中間語(yǔ)言進(jìn)行實(shí)現(xiàn),有些則基于RISC-V CPU指令集進(jìn)行改進(jìn)和擴(kuò)展來(lái)實(shí)現(xiàn)GPGPU的功能。
2021年,喬治亞理工研究了一種支持CUDA的RISC-V GPU架構(gòu)——Vortex。
前幾日,一個(gè)成立于2022年的美國(guó)公司X-Silicon發(fā)布了其開(kāi)放標(biāo)準(zhǔn)、低功耗的C-GPU架構(gòu)。
根據(jù)介紹,C-GPU架構(gòu)將打造成為開(kāi)源、統(tǒng)一的RISC-V 矢量 CPU-with-GPU ISA 架構(gòu),C-GPU采用NanoTile架構(gòu),X-Silicon將這種CPU/GPU混合處理器稱(chēng)為“萬(wàn)能處理器”。其處理器專(zhuān)為動(dòng)態(tài)內(nèi)容最佳管理和渲染而設(shè)計(jì),并超越傳統(tǒng)GPU限制。
翻譯翻譯就是把基于RISC-V架構(gòu)的CPU和GPU放在同一個(gè)核內(nèi)。
國(guó)內(nèi)方面,上海清華國(guó)際創(chuàng)新中心集成電路研究平臺(tái)推出的首款基于RISC-V向量擴(kuò)展(RVV)的GPGPU“Ventus(乘影)”,是國(guó)內(nèi)首個(gè)開(kāi)源GPGPU,也為后續(xù)協(xié)同企業(yè)開(kāi)發(fā)國(guó)產(chǎn)全自主GPU商用產(chǎn)品的路上邁出關(guān)鍵一步。
根據(jù)官方信息顯示,RVV GPGPU參考RISC-V CPU開(kāi)發(fā)思路,在滿(mǎn)足SIMT基礎(chǔ)功能同時(shí),汲取RISC-V向量擴(kuò)展在功能定義和指令設(shè)計(jì)上優(yōu)勢(shì),將二者有機(jī)結(jié)合,使乘影同時(shí)具備向量處理器工具鏈兼容性和GPGPU編程靈活性。
陳巍博士解讀,乘影主體大框架借鑒GPGPU的結(jié)構(gòu),每個(gè)流多處理器(Streaming Multiprocessor,SM)主體結(jié)構(gòu)接近于RISC-V。后端執(zhí)行則直接使用處理器中常用ALU、FPU、LSU。為了讓SM能夠完成GPGPU工作,乘影里添加了SIMT-stack和SFU這類(lèi)GPU中的常見(jiàn)功能模塊。
2024年2月,芯瞳成功開(kāi)源了一款基于RISC-V指令集的GPU處理器模型RVGPU,這是芯瞳在RISC-V + GPU方向持續(xù)研究取得的重要突破。
根據(jù)官方介紹,RVGPU采用SIMT(單指令多線(xiàn)程)技術(shù),現(xiàn)已成功實(shí)現(xiàn)對(duì)CUDA(Compute Unified Device Architecture)的兼容支持,包括CUDA編譯器和運(yùn)行時(shí)環(huán)境。除此以外,RVGPU的架構(gòu)指令CModel仿真模型允許開(kāi)發(fā)者在模擬環(huán)境中模擬GPU的各種指令和行為。
綜合來(lái)看,上述產(chǎn)品均基于LLVM開(kāi)源工具鏈完成GPGPU編譯器的開(kāi)發(fā),支持OpenCL開(kāi)源并行編程框架。
可見(jiàn),所有廠(chǎng)商都有著一個(gè)共同的目標(biāo),那就是建設(shè)一個(gè)開(kāi)源GPU生態(tài)。
不過(guò),總的來(lái)說(shuō),GPU是一個(gè)非常復(fù)雜的產(chǎn)品,絕不僅僅只是一個(gè)開(kāi)源GPU就能夠與現(xiàn)有玩家五五開(kāi)的,未來(lái)還依賴(lài)大量的研發(fā)與投入。
跨越專(zhuān)利、生態(tài)門(mén)檻是關(guān)鍵
目前的RISC-V可以說(shuō)是初入 GPU賽道,未來(lái)能否取得更好表現(xiàn),業(yè)界也在關(guān)注。David Harold就表示,GPU確實(shí)是一個(gè)很難的賽道,如果不是這么多專(zhuān)利保護(hù)起來(lái),不會(huì)看到現(xiàn)在世界上只有為數(shù)不多的幾家GPU。RISC-V肯定也會(huì)面臨這些困境,很難克服這種挑戰(zhàn)。只有完全克服這些挑戰(zhàn)才能成為大家更加認(rèn)可的開(kāi)源GPU。
生態(tài)也是RISC-V未來(lái)發(fā)展過(guò)程中面臨的重要挑戰(zhàn)。無(wú)論是x86、ARM,還是早期市場(chǎng)上的MIPS、PowerPC等芯片架構(gòu),決定競(jìng)爭(zhēng)成敗的都不僅是產(chǎn)品性能本身,還包括是否具有豐富的上層應(yīng)用,以及高效的軟硬協(xié)同。平頭哥半導(dǎo)體副總裁孟建熠指出:“RISC-V將繼續(xù)向高主頻、高性能演進(jìn)。而隨著穩(wěn)定硬件的出現(xiàn),軟硬件全棧成為必然。同時(shí),RISC-V將走向更廣的生態(tài)合作,在商業(yè)合作上涌現(xiàn)更多新模式,軟件持續(xù)豐富,應(yīng)用不斷多樣化。這是未來(lái)RISC-V發(fā)展的大趨勢(shì)?!?/span>
那么,下一步RISC-V廠(chǎng)商就應(yīng)當(dāng)積極加強(qiáng)自身產(chǎn)業(yè)生態(tài)的營(yíng)造,使上層的軟件與應(yīng)用豐富起來(lái)。Imagination 公司技術(shù)產(chǎn)品管理高級(jí)總監(jiān)Stephen Barton指出:“GPU其實(shí)是一個(gè)很復(fù)雜的東西,不光是硬件開(kāi)源了就可以直接為大家所使用,還要有相應(yīng)的DDK(設(shè)備驅(qū)動(dòng)程序套件)和應(yīng)用軟件。這些軟件和DDK的開(kāi)發(fā)是否是開(kāi)源硬件同來(lái)源的公司提供的??jī)?yōu)化程度如何?能不能完整地支持各種不同的接口和各種Open GL(開(kāi)放圖形庫(kù))?這些都是很復(fù)雜的事情,絕不是一句簡(jiǎn)單的開(kāi)源就完事的,還有大量細(xì)致的工作要做,還有許多挑戰(zhàn)要面對(duì)?!?/span>
David Harold也承認(rèn),現(xiàn)在有很多與RISC-V相關(guān)的IP供應(yīng)商,但能提供GPU IP的并不多。對(duì)RISC-V來(lái)說(shuō),GPU是一個(gè)相對(duì)新的領(lǐng)域,更加需要產(chǎn)業(yè)鏈上下游的企業(yè)共同攜手,才能取得突破。但是,中國(guó)科學(xué)院軟件研究所總工程師武延軍也強(qiáng)調(diào):“雖然目前RISC-V還局限在一些對(duì)算力和軟件生態(tài)豐富程度要求不那么高的領(lǐng)域,但是它的商用時(shí)機(jī)已經(jīng)到了,以此為起點(diǎn)今后它的加速度是驚人的。”
用RISC-V做GPU,有好也有壞
用RISC-V做GPU,有人拍手叫好,也有人覺(jué)得多此一舉。
覺(jué)得它好的人,認(rèn)為RISC-V可以直接套用RISC-V的生態(tài),不需要完全自建GPU生態(tài),規(guī)避了與CUDA的專(zhuān)利對(duì)決。畢竟這是個(gè)開(kāi)源的GPU IP,大家都加入到開(kāi)源建設(shè)的大家庭,就能夠彌補(bǔ)GPU生態(tài)不足,也不容易踩到知識(shí)產(chǎn)權(quán)的坑。
與此同時(shí),每個(gè)SM核的獨(dú)立性更好,可以執(zhí)行比常規(guī)GPU CUDA核更復(fù)雜的計(jì)算。如果加上MMU,未來(lái)甚至可以在每個(gè)SM核上跑操作系統(tǒng),非常有利于虛擬化。
覺(jué)得它不好的人,認(rèn)為目前的RISC-V GPU產(chǎn)品,都是目前NVIDIA的GPU的形似物,設(shè)計(jì)沒(méi)有什么太大差別,而HBM這樣的器件八成是用不起的,其它諸如Nvidia GPU里面的Texture Unit也是缺失的。
更何況,CUDA這樣的生態(tài)是很難跨越的鴻溝。有大佬曾言:“如果你看一下GPU的生態(tài)系統(tǒng),就會(huì)發(fā)現(xiàn)工具鏈?zhǔn)怯蒒VIDIA控制的,包括AMD在內(nèi)的其他競(jìng)爭(zhēng)對(duì)手都試圖打破壟斷,但失敗了。通過(guò)擴(kuò)展RISC-V標(biāo)準(zhǔn)指令集,幾乎不可能與不斷更新的NVIDIA生態(tài)系統(tǒng)兼容。另一方面,也很難重新開(kāi)始,因?yàn)橛ミ_(dá)擁有先發(fā)優(yōu)勢(shì)。”
所以,對(duì)于大部分RISC-V GPU來(lái)說(shuō),支持CUDA生態(tài)至關(guān)重要,我們也看到許多廠(chǎng)商確實(shí)也是這樣做的。因?yàn)殡m然通過(guò)LLVM可能只需要重構(gòu)compiler后端,但性能好不好就是另外一回事了。
還有比較激進(jìn)的觀(guān)點(diǎn),認(rèn)為從RISC-V開(kāi)始做GPU,不如直接從白紙開(kāi)始做。他們認(rèn)為,要使基本的RISC-V指令集適應(yīng)GPU任務(wù),需要大量投資來(lái)定義自定義ISA擴(kuò)展,構(gòu)建高度復(fù)雜的微架構(gòu)更改,并對(duì)開(kāi)源工具進(jìn)行大手術(shù),使它們幾乎與原始工具相似。這樣一來(lái),使用RISC-V的幾乎所有潛在價(jià)值,都被定制架構(gòu)比下去了。
就連上海交大也曾經(jīng)說(shuō)過(guò),“我們想做的是一個(gè)獨(dú)立完整的GPGPU架構(gòu)和指令設(shè)計(jì),而不依賴(lài)于現(xiàn)有RISC-V CPU開(kāi)源指令,這樣才能更完備地打造和融入原生的GPGPU生態(tài) ,從而與現(xiàn)有的各種CPU系統(tǒng)無(wú)縫銜接?!彼砸虼耍麄冏隽恕扒嗷ù伞边@樣一個(gè)定制的開(kāi)源GPGPU架構(gòu)。
