RISC-V は非常に人気のあるアーキテクチャです 近年では、オープン ソース (ISA) 設計のおかげで、その柔軟性とモジュール性により、最も重要なプロセッサ アーキテクチャの 1 つになったと付け加えています。
そのおかげで RISC-Vをベースにしたさまざまなプロジェクトが立ち上がっている そのうちの 1 つは、今日このブログで説明する Vortex です。
ボルテックスプロジェクトとは何ですか?
渦 es GPGPUを開発するプロジェクト、 RISC-Vアーキテクチャに基づいています。 このプロジェクトは、OpenCL API と SIMT 実行モデルを使用して並列コンピューティングを実行するように設計されています。
Vortex GPGPU のコアは汎用 RISC-V です、改善が実装されました いくつかの追加の指示とともに GPU 機能とスレッド制御をサポートするために必要です。 同時に、RISC-V 命令セット アーキテクチャへの変更は最小限に抑えられ、可能な限り既存のベクトル命令が使用されます。 RV64X プロジェクトでも同様のアプローチが使用されており、RISC-V テクノロジに基づいたオープン GPU も開発されています。
別の機能 Vortex とは GPGPU のことです 高度な指示がありますその中には、テクスチャ処理を高速化する「tex」、ラスタライゼーションを制御する「vx_rast」、フラグメント、深度、透明度を処理する「vx_rop」、乗算および加算演算を実行する「vx_imadd」、「vx_wspawn」、「vx_tmc」、および命令エッジとウェーブフロント (SIMD エンジンによって並列実行される一連のスレッド) をアクティブにする「vx_bar」、「vx_split」および「vx_join」。
cのうちVortexの主な特徴 次のものが見つかります。
- 32 ビットおよび 64 ビット RISC-V 命令セット アーキテクチャのサポート: RV32IMF および RV64IMAFD。
- 構成可能性: コア、タスク ブロック (ワープ)、およびスレッドの数を構成できます。
- プロセッシングユニット: コアあたりの ALU、FPU、LSU、および SFU の構成可能な数。
- 出口幅: 調整可能なパイプ出口幅。
- メモリ: オプションの共有メモリと L1、L2、L3 キャッシュ。
- OpenCL 1.2仕様のサポート。
- FPGA ベースの実装: Altera Arria 10、Altera Stratix 10、Xilinx Alveo U50、U250、U280、および Xilinx Versal VCK5000 FPGA での実装の可能性。
- SPIR-V サポート: OpenCL への変換を通じて実装されます。
開発ツール: PoCL (OpenCL コンパイラーおよびランタイム)、LLVM/Clang、GCC、および Vortex で動作するように適合された Binutils のバリアントを含むツールセット。 - チップ シミュレーション: Verilator (Verilog シミュレーター)、RTLSIM (RTL シミュレーション)、および SimX (ソフトウェア シミュレーション) を使用してサポートされます。
スカイボックス GPU
それに加えて、 Vortex テクノロジーに基づくグラフィックス用に、Skybox GPU が開発中です Vulkan グラフィックス API をサポートするオープン。 Skybox プロトタイプは、Altera Stratix 10 FPGA に基づいて作成され、32 MHz の周波数で 512 コア (230 スレッド) を備えていることが述べられています。これは、ソフトウェアとハードウェア実装の互換性を備えた最初のオープン GPU であることに注意してください。バルカンと
言及する価値があります 現在、Vortex プロジェクトはバージョン 2.1 です。 これは最近リリースされ、メモリ結合サポート (現在サポートされています)、CSR 命令処理の最適化、オーバーロードの最適化、新しいビルド構成スクリプトなどの重要な変更が実装されています。
- カーネルAPIが追加されましたポーン_タスクグループ ローカルメモリとバリアを使用するカーネルを実行するため
- 再配置可能なカーネル バイナリと引数のための新しいランタイム拡張機能。
- 新しいランタイム メモリ API の追加: vx_mem_reserve、vx_mem_access、vx_mem_address
- 新しいランタイム API vx_check_occupancy
- ローカル GPU で OpenCL テストを試すための GPU ドライバー オプションを追加しました (例: blackbox.sh –driver=gpu –app=sgemm)
- ローカル メモリで使用される OpenCL テストを追加しました (psum、sgemm2、sgemm3)
- 制御発散計測機能を備えたカスタム vortex libc および librt ライブラリを追加しました。
詳細について知りたい場合は、回路図、Verilog 言語でのハードウェア ブロックの説明、シミュレータ、ドライバ、および付属の設計ドキュメントが Apache 2.0 ライセンスに基づいて配布されていることを知っておく必要があります。詳細は、 次のリンク。