首頁 > 硬體

里程碑!RISC-V架構GPU來了

2021-02-03 19:00:04

美國的Pixilica已與RV64X合作,提出了一套新的圖形指令集,旨在融合CPU-GPU ISA,並將其用於3D圖形和媒體處理,從而為FPGA建立了開源參考實現。

RV64X的參考實現包括了指令/資料SRAM快取(32KB),微碼SRAM(8KB),雙功能指令解碼器,實現RV32V和X的硬連線,用於自定義ISA的微碼指令解碼器,四向量ALU( 32位元/ ALU –固定/浮動),136位元暫存器檔案(1K元素),特殊功能單元,紋理單元和可設定的本地幀緩衝區。

該實現的設計足夠靈活,因此可以實現自定義pipeline階段,自定義幾何/畫素/幀緩衝階段,自定義細分器和自定義範例化操作。通過客製化的可程式化性和可延伸性對該實現進行了優化,使其體積小巧且面積小。

Europena工具開發商Codasip的高階市場總監Roddy Urquhart說,這是RISC-V生態系統的優勢之一。

他說:“ RV64X GPU對於R5生態系統而言是一次了不起的勝利。” Codasip的Roddy Urqhart表示:“如果要建立特定於域的處理器,關鍵活動之一就是選擇符合您軟體需求的指令集架構(ISA)。”

“有些公司是從頭開始建立指令集的,但是如果您有這樣的ISA,則可能要付出移植軟體的代價。今天,RISC-V開放式ISA可以提供一個很好的起點和一個軟體生態系統,”他說。

RISC-V ISA以模組化的方式設計,使處理器設計人員不僅可以新增任何標準擴充套件,還可以建立自己的自定義指令,同時保持完全的RISC-V相容性。

他僅用47條指令就指出了RISC-V(RV32I)的基本ISA。使用此基礎集比建立具有類似功能的專有指令要容易得多,並且意味著該軟體已經可以從RISC-V生態系統中獲得。

許多用例需要乘法,這表明[M]擴充套件會有用,並且利用16位元壓縮[C]指令來提高程式碼密度是明智的,因此通常使用數量為101條指令的RV32IMC集。

使用RISC-V作為起點將確保直接使用通用軟體(例如RTOS或協定棧)即可。如果您還需要浮點計算,那麼RV32GC(G = IMAFD)指令可能是合適的,此外還包括原子[A],單精度浮點[F]和雙精度浮點[D]擴充套件。甚至RV32GC也只有164條指令。

由於易於使用,因此標準擴充套件名是一個方便的選擇。但是,有些可能會大大增加指令集的複雜性。例如,打包的SIMD擴充套件的完整集合[P]新增了331條附加指令。在許多情況下,可以使用客製化指令為特定應用提供足夠的增益,而潛在的矽面積和功耗開銷則更低。

“為特定領域的處理器選擇了起點,然後有必要弄清楚需要哪些特殊指令來滿足您的計算要求。這需要仔細分析您需要在處理器核心上執行的軟體。概要分析工具可以識別計算熱點,一旦知道了這些熱點,設計人員就可以建立自定義指令來解決這些熱點,”他說。

這使設計人員可以通過嘗試新增或刪除指令,然後再次對軟體進行效能分析以及評估更改是否實現了目標來進行迭代。這可以在開源指令集模擬器和工具鏈(例如GNU或LLVM)中完成,但是手工修改這些工具對於工具鏈專家來說是一件很麻煩的事情。

另一種方法是使用處理器描述語言描述指令集。“在Codasip Studio中,可以使用CodAL處理器描述語言建立處理器的指令精確(IA)模型。可以從以下位置自動生成包括編譯器,指令集模擬器(ISS),偵錯程式和分析器的SDK”,Urquhart說。

通過高階別描述ISA並自動生成SDK,可以快速迭代實驗以擴充套件指令集。這樣,可以為特定於域的處理器(有時稱為專用指令處理器(ASIP))選擇經過充分優化的ISA。與手動更改相比,自動生成SDK不僅更快,而且更不容易出錯,這意味著設計過程更便宜,更可預測,從而避免了不必要的風險和路線圖中斷。


IT145.com E-mail:sddin#qq.com