RV64X:開源GPU來了,這次靠譜嗎?
上一次看到開源GPU的發(fā)布,還是5年前,威斯康辛-麥迪遜大學的宣布了世界上第一款開源的GPGPU——“MIAOW”,當時引起業(yè)界很多矚目的眼光,5年過去了,這個開源GPU項目在芯片江湖里面沒有引起太多的波瀾;最近,基于RISC-V的RV64X 開源GPU項目又一次引起了人們的眼球,那么這次開源GPU勝算幾何?
?
????? 如果說,MIAOW是授人以魚,直接把一個可以運行GPU原型發(fā)布出來,使用者或者研究者只能選擇用還是不用的二選一。這種方式,其實有點像RISC-V出現(xiàn)之前的OR1200,是開源一套代碼,代碼開源看似非常有吸引力,但是應用限制很大,就是“鞋子雖好,不一定合腳”;”削足適履“在已有框架下的代碼改動就不是一件愉快和高效的事。因此OR1200和RISC-V的影響力不可同日而語(好多小伙伴可能根本就沒有聽說過OR1200);
?
???? 那么,這次RV64X的思路就完全不同,這不是開源一套代碼,而是制定開源了一套圖像處理的指令集,這些指令集可以高效用于3D圖像和媒體處理,也是一個融合了CPU和GPU的指令集,因此被定義為RV64X;
?
???? 那么這些指令集都有什么特點?總結(jié)一下,簡單來說就是兩點:
?
??? 一:用于圖像處理的數(shù)據(jù)寄存器結(jié)構(gòu)
?
??? 二:用于圖像處理指令;
?
???? 這兩點有點DSA的意思;專用于圖像處理的架構(gòu),CPU和DSA的結(jié)合;
?
???? 先說圖像處理的數(shù)據(jù)寄存器,和CPU的通用寄存器32/64bit不同,RV64X定義了136bit的寄存器集合,其中包括128bit(數(shù)據(jù))+8bit(數(shù)據(jù)類型);數(shù)據(jù)類型包括像素,點,向量,矩陣等不同數(shù)據(jù)類型,并且最多有256種數(shù)據(jù)類型,充分考慮了以后的擴展需求;
???? 這128bit的數(shù)據(jù)包括:也可以拆分成8/16/24/32的定點和浮點;8/16/32bit的向量運算;2X2;3X3;4X4的矩陣運算;這些寄存器可以像通用寄存器一樣隨機讀寫,也可以像通過POP/PUSH來操作;
?
?

?

?
第二點:RV64X定義了一套圖像處理的擴展指令,這些指令包括以下幾類:
1:向量和矩陣處理(包括向量矩陣操作/矩陣乘加/點乘/叉乘/求逆/行列式/插值等),
2:數(shù)學函數(shù)處理(包括sin/cos/tan/exp/pow/log/rcp/rsp/sqrt/cordic等)
3:像素處理(z值檢測,光柵操作等)
4:2D/3D圖像紋理處理,貼圖,繪圖等;
5:幀緩沖區(qū)處理(同步,壓縮,解壓縮,位塊轉(zhuǎn)換,圖像處理變換等)
6:可選的指令類型(可以通過微碼實現(xiàn))
?
?



?

?
?????? 這些指令對于程序員來說,它看起來就像一個帶有64位長指令的硬件,這些指令被編碼為標量指令。編程模型是一個明顯的SIMD,即編譯器從帶前綴的標量操作碼生成SIMD。因此目前來看,編譯器的工作量也不小;當然,它將與Vulkan兼容,并后續(xù)支持其他api(OpenGL、DirectX和其他api)。這些也是其生態(tài)的一部分,這個也是很大的工作量;
? ? ? 除了指令這些寄存器結(jié)構(gòu)和指令類型,這個團隊還給出了一種實現(xiàn)架構(gòu);

?
???? 如果用戶單個性能偏低的話,還可以支持可擴展,類似多核,反正NVIDIA的GPU也是無數(shù)個SM流處理器的擴展;? GPU就是這點好;類似于著色器這種應用,本身是數(shù)據(jù)不相關(guān)的,因為可以發(fā)揚“核”海戰(zhàn)術(shù)來實現(xiàn)高性能的算力,同時,RV64X也為計算機視覺,機器學習,圖像渲染,光線追蹤等應用提供了新的思路;如果這些設(shè)想能夠?qū)崿F(xiàn)的話,通過RV64X可以實現(xiàn)用戶自定義的GPU,特別是可以根據(jù)指令來裁剪;根據(jù)需求設(shè)計用戶自己的GPU,想想還是挺有吸引力的;
?

??
??????? 因此說,RV64X這個思路還是很清晰的,開源指令先行,這只是開了個頭,這些指令如何具體定義,怎么把這些指令變成成一個可以運行的GPU還是要有很長的路要走的;對于一個還未出生的“孩子”,RV64X,就像發(fā)起團隊所講的,其本身并不是和NVIDIA/AMD等這些商業(yè)巨頭競爭,其在于能夠提供一個可編程,小而美,低功耗,高能效的開源IP更為實際,?????
?
??????? 歪睿老哥認為,這種GPU其實更適合支持物聯(lián)網(wǎng)等計算的場合,可以應用于MCU,目前可以不考慮服務器GPU的應用;比如:于攝像頭內(nèi)部,例如IPC SOC內(nèi)部的GPU和機器學習應用;
?????? 不足的是,目前這些都還是初級階段,就像上文所說“未出生的孩子”,指令集的細化,編譯器設(shè)計優(yōu)化迭代,各個大廠或其他機構(gòu)跟進的力度等都是非常重要的因素;要知道基于RISC-V應用的處理器已經(jīng)進入10億的量級了,而RV64X是否能夠復制RISC-V的魔力,有兩個關(guān)鍵因素;
?
??? 1:業(yè)界參與:RISC-V從MCU開始,到MPU甚至更高性能處理器,一路走來,依賴很多業(yè)界的支持,這包括很多創(chuàng)業(yè)公司也有很多大廠,有學術(shù)機構(gòu)和科研院所;
?
???? 2:價值回報;RISC-V給業(yè)界參與的各個創(chuàng)業(yè)公司/大廠/研究機構(gòu)都提供豐厚的回報,包括且不限于節(jié)省的IP授權(quán)費用,可定制自有靈活架構(gòu),論文或者創(chuàng)業(yè)機會;正是RISC-V給CPU這個行業(yè)帶來了新鮮的活力;
?
??? 這么從業(yè)者的共襄盛舉,實現(xiàn)了投入-產(chǎn)出-投入的正循環(huán),才能有RISC-V蓬勃發(fā)展的今天;RV64X要在GPU這個領(lǐng)域大放異彩,而不是曇花一現(xiàn),依賴于投入和產(chǎn)出的正循環(huán);不過RV64X開源指令,這第一步就已經(jīng)走在正確的道路上了;
聲明:本文內(nèi)容轉(zhuǎn)載自歪睿老哥,如有內(nèi)容圖片侵權(quán)或者其他問題,請聯(lián)系本站作侵刪