服務熱線
RISC-V 一直是運算領域最熱門的話題之一,因為除了整個開源、免授權的優勢之外,這種指令集架構 (ISA) 還允許廣泛的客製化並且易於理解。甚至還有一個基於 RISC-V ISA 設計通用 GPU 的項目,現在我們正在見證 Nvidia 的 CUDA 軟體庫移植到 Vortex RISC-V GPGPU 平台。
Nvidia 的 CUDA(運算統一裝置架構)代表了在 Nvidia 顯示卡系列上運行的獨特運算平台和應用程式介面 (API)。當為 CUDA 支援編寫應用程式時,一旦系統發現基於 CUDA 的 GPU,它就會獲得程式碼的大量 GPU 加速。
今天,研究人員研究了一種在名為 Vortex 的 RISC-V GPGPU 專案上啟用 CUDA 軟體工具包支援的方法。 Vortex RISC-V GPGPU 旨在提供基於 RV32IMF ISA 的全系統 RISC-V GPU。這意味著 32 位元核心可以從 1 核心 GPU 設計擴展到 32 核心 GPU 設計。它支援 OpenCL 1.2 圖形 API,現在也支援一些 CUDA 操作。
研究人員解釋:「…在這個專案中,我們提出並建立了一個管道來支援端對端CUDA 遷移:該管道接受CUDA 原始碼作為輸入,並在擴展的RISC-V GPU 架構上執行它們。我們的pipeline由幾個步驟組成:將CUDA原始碼轉換為NVVM IR,將NVVM IR轉換為SPIR-V IR,將SPIR-V IR轉發到POCL以獲得RISC-V二進位文件,最後在擴展RISC-V GPU二進位檔案架構上執行。
該過程如上圖所示,顯示了使其工作的所有步驟。簡單來說,CUDA 原始碼以一種稱為 NVVM IR 的中間表示 (IR) 格式表示,基於開源 LLVM IR。它後來被轉換為標準可移植中間表示 (SPIR-V) IR,然後轉發為 OpenCL 標準的可移植開源實現,稱為 POCL。由於 Vortex 支援 OpenCL,因此它提供了受支援的程式碼並且可以毫無問題地執行它。
有關這個複雜過程的更多詳細信息,請點擊下面閱讀原文。 重要的是,您必須感謝這些研究人員為使 CUDA 在 RISC-V GPGPU 上運作所做的努力。雖然這只是目前的一小步,但它可能是 RISC-V 用於加速運算應用程式時代的開始,就像 Nvidia 今天的 GPU 系列一樣。
延伸閱讀:RISC-V能否改變GPU?
研究過 GPU 架構的人都知道,這是向量處理器的 SIMD 結構。它是一種超高效的平行處理器,可用於從運行模擬和精彩遊戲到教機器人如何獲得人工智慧以及幫助聰明人操縱股票市場等各種用途。它甚至在我寫這篇文章時檢查我的語法。
但GPU領域已成為私有領域,其內部工作由IP和 有效 AMD、Intel、Nvidia等開發商的供應。如果有一套專為 3D 圖形和媒體處理而設計的新圖形指令會怎麼樣?嗯,有可能。
新指令基於 RISC-V 基本向量指令集建構。他們將本著核心 RISC-V ISA 的精神,並添加對新的圖形特定資料類型的支援作為分層擴展。支援向量、先驗數學、像素和紋理以及 Z/幀緩衝區操作。它可能是融合的 CPU-GPU ISA。該庫 - RISC 3D 小組將其稱為 RV64X(圖 1),因為指令的長度為 64 位元(32 位元不足以支援強大的 ISA)。
該小組表示,他們的動機和目標是創建一個具有自訂可編程性和可擴展性的小型高效設計。它應該提供低成本的智慧財產權所有權和開發,而不是與商業產品競爭。它可以在 FPGA 和 ASIC 目標上實現,並且免費且開源。最初的設計目標是相容於 Khronos Vulkan 的低功耗微控制器,並支援其他 API(OpenGL、DirectX 等)。
GPU+RISC-V
該團隊表示:“無需使用 RPC/IPC 呼叫機制將 3D API 呼叫發送到未使用的 CPU 記憶體空間,或將未使用的 CPU 記憶體空間發送到 GPU 記憶體空間,反之亦然。”
「融合」CPU-GPU ISA 方法的優點是可以在微代碼中使用標準圖形管道,並且可以支援自訂著色器。甚至可以包括光線追蹤擴展。
該設計將採用 Vblock 格式(來自 Libre GPU 的努力):
- 它有點像 VLIW(但不是真的)。
- 指令區塊前面有暫存器標記,為該區塊內的標量指令提供附加上下文。
- 子區塊包括向量長度、旋轉、向量/寬度疊加和預測。
- 所有這些都被添加到標量操作碼中!
- 沒有向量操作碼(也不需要任何)。
- 在向量上下文中,它是這樣的:如果標量運算元使用暫存器,並且該暫存器在向量上下文中列出,則將啟動向量模式。
- 啟動會導致硬體級 for 迴圈發出多個連續的標量操作(而不是僅一個)。
- 實現者可以自由地以任何他們想要的方式實現循環 - SIMD、多發出、單執行;幾乎任何東西。
RV32-V向量處理8至16個元素的32位元、2位元或4位元/元素向量運算。還將有針對 3 位元和 64 位元定點和浮點 XYZW 點的通用 128D 圖形渲染管道的專用指令。 8、16、24 和 32 位元 RGBA 像素;每個組件 8 位元、16 位元 UVW 紋素;以及燈光和材質設定(Ia、ka、Id、kd、Is、ks 等)。
屬性向量表示為 4×4 矩陣。系統本身支援 2×2 和 3×3 矩陣。向量支援也可能適用於使用 AI 和機器學習應用中常見的 8 位元整數資料類型的數值模擬。
設計中可以包含自訂光柵器,例如樣條線、SubDiv 曲面和麵片。此方法還允許包含自訂管道階段、自訂幾何/像素/幀緩衝區階段、自訂細分器和自訂實例化操作。
RV64X
-
指令/資料 SRAM 快取 (32 kB)
-
微代碼 SRAM (8 kB)
-
雙功能指令解碼器(針對 RV32V 和 X 進行硬連線;針對自訂 ISA 進行微編碼指令解碼器)
-
四向量 ALU(32 位元/ALU 固定/浮點)
-
136 位元暫存器檔案(1k 元素)
-
特殊功能單元
-
紋理單元
-
可配置的本機幀緩衝區
RV64X 是一種可擴展架構(圖 2)。它的融合方法是新的,對於自訂資料類型使用可配置暫存器也是如此。使用者定義的基於 SRAM 的微代碼可用於實現自訂光柵階段、光線追蹤、機器視覺和機器學習等擴充。單一設計可應用於獨立圖形微控制器或具有可擴展著色器單元的多核心解決方案。
RISC-V 的圖形擴展解決了可擴展性和多語言問題。這可以實現更高層級的用例,從而帶來更多創新。
下一步是什麼
RV64X 規範仍處於早期開發階段,可能會改變。正在建立一個討論論壇。近期目標是使用指令集模擬器建立範例實作。這將開放使用設計為開源專案的客製化 IP 的來源 IP 和 FPGA 實作。
免責聲明:本文轉載自《半導體產業觀察》。本文僅代表作者個人觀點,不代表Sac Micro及業界觀點,僅供轉載分享,支持保護智慧財產權,轉載請註明原出處與作者。如有侵權,請聯絡我們刪除。




粤公网安备44030002007346号