サービスホットライン
RISC-V は、コンピューティング分野で最も注目されているトピックの 1 つです。その理由は、この命令セット アーキテクチャ (ISA) により、オープン ソース全体のライセンス不要の利点に加えて、広範なカスタマイズが可能で理解しやすいためです。 RISC-V ISA に基づいて汎用 GPU を設計するプロジェクトさえあり、現在、Nvidia の CUDA ソフトウェア ライブラリが Vortex RISC-V GPGPU プラットフォームに移植されています。
Nvidia の CUDA (Computing Unified Device Architecture) は、Nvidia のグラフィック カード シリーズで実行される独自のコンピューティング プラットフォームとアプリケーション プログラミング インターフェイス (API) を表します。アプリケーションが CUDA サポート用に作成されている場合、システムが CUDA ベースの GPU を検出するとすぐに、コードの GPU アクセラレーションが大幅に強化されます。
本日、研究者らは、Vortex と呼ばれる RISC-V GPGPU プロジェクトで CUDA ソフトウェア ツールキットのサポートを有効にする方法を調査しました。 Vortex RISC-V GPGPU は、RV32IMF ISA に基づいてシステム全体の RISC-V GPU を提供するように設計されています。これは、32 ビット コアが 1 コアから 32 コアの GPU 設計まで拡張できることを意味します。 OpenCL 1.2 グラフィックス API をサポートしており、現在では一部の CUDA 操作もサポートしています。
研究者らは次のように説明しています。「...このプロジェクトでは、エンドツーエンドの CUDA 移行をサポートするパイプラインを提案および構築します。パイプラインは CUDA ソース コードを入力として受け入れ、拡張 RISC-V GPU アーキテクチャ上で実行します。パイプラインはいくつかのステップで構成されます。CUDA ソース コードを NVVM IR に変換し、NVVM IR を SPIR-V IR に変換し、SPIR-V IR を POCL に転送して RISC-V バイナリを取得し、最後に拡張 RISC-V GPU バイナリ ファイル アーキテクチャで実行します。 」
上の画像はプロセスを視覚化したもので、プロセスを機能させるためのすべての手順が示されています。簡単に言うと、CUDA ソース コードは、オープン ソースの LLVM IR に基づいた、NVVM IR と呼ばれる中間表現 (IR) 形式で表されます。その後、SPIR-V (Standard Portable Intermediate Representation) IR に変換され、POCL と呼ばれる OpenCL 標準のポータブルなオープンソース実装に転送されました。 Vortex は OpenCL をサポートしているため、サポートされているコードが提供され、問題なく実行できます。
この複雑なプロセスの詳細については、以下をクリックして元の記事をお読みください。 重要なのは、CUDA を RISC-V GPGPU 上で実行できるようにするための研究者たちの努力に感謝しなければならないということです。これは今のところ小さな一歩にすぎませんが、今日の Nvidia の GPU ラインナップのように、RISC-V を使用してコンピューティング アプリケーションを高速化する時代の始まりとなる可能性があります。
詳細: RISC-V は GPU を変更できますか?
GPU アーキテクチャを勉強したことがある人なら誰でも、これがベクトル プロセッサの SIMD 構造であることを知っています。これは超効率的な並列プロセッサであり、シミュレーションや優れたゲームの実行から、ロボットに AI を取得する方法を教えたり、賢い人々が株式市場を操作するのを支援したりするまで、あらゆる用途に使用されてきました。これを書いているときに文法もチェックしてくれます。
しかし、GPU分野は民間の分野となり、その内部作業はIPと 効果的な AMD、Intel、Nvidiaなどの開発者の供給。3Dグラフィックスとメディア処理向けに設計された新しいグラフィックス命令セットがあったらどうでしょうか? ええ、あるかもしれません。
新しい命令は、RISC-V 基本ベクトル命令セットに基づいて構築されています。これらは、コア RISC-V ISA の精神に基づいた階層化された拡張機能として、新しいグラフ固有のデータ型のサポートを追加します。ベクトル、事前計算、ピクセルとテクスチャ、および Z/フレーム バッファー操作をサポートします。それは、CPU と GPU の融合 ISA である可能性があります。このライブラリ - RISC 3D グループは、命令の長さが 64 ビットになるため (図 1)、RV64X と呼んでいます (堅牢な ISA をサポートするには 32 ビットでは十分ではありません)。
このグループは、その動機と目標は、カスタム プログラム可能性と拡張性を備えた小規模で効率的な設計を作成することであると述べました。商用製品と競合するものではなく、低コストの IP の所有と開発を提供する必要があります。 FPGA および ASIC ターゲットに実装でき、無料のオープンソースです。オリジナルの設計は、Khronos Vulkan と互換性があり、他の API (OpenGL、DirectX など) をサポートする低電力マイクロコントローラーをターゲットとしています。
GPU + RISC-V
同チームは、「未使用の CPU メモリ空間に 3D API 呼び出しを送信したり、未使用の CPU メモリ空間から GPU メモリ空間に送信したり、その逆に RPC/IPC 呼び出しメカニズムを使用する必要はありません。」
「融合された」CPU-GPU ISA アプローチの利点は、標準のグラフィックス パイプラインをマイクロコードで使用でき、カスタム シェーダーをサポートできることです。レイ トレーシング拡張機能を含めることもできます。
デザインは Vblock 形式になります (Libre GPU の取り組みによる)。
- VLIW に似ています (実際は違います)。
- 命令ブロックの前には、そのブロック内のスカラー命令に追加のコンテキストを提供するレジスタ マーカーが配置されます。
- サブブロックには、ベクトルの長さ、回転、ベクトル/幅のオーバーレイ、および予測が含まれます。
- これらすべてがスカラー オペコードに追加されます。
- ベクトル オペコードはありません (必要ありません)。
- ベクトル コンテキストでは、次のようになります。スカラー オペコードがレジスタを使用し、そのレジスタがベクトル コンテキストにリストされている場合、ベクトル モードがアクティブになります。
- アクティブ化すると、ハードウェア レベルの for ループが (1 つだけではなく) 複数の連続したスカラー演算を発行します。
- 実装者は、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 の usingSource IP および FPGA 実装が開きます。
免責事項:この記事は「半導体産業観察」から転載したものです。この記事は著者の個人的な意見のみを表すものであり、Sac Micro および業界の意見ではありません。転載および共有のみを目的としており、知的財産権を保護するため、転載する場合は元の出典と著者を明記してください。侵害がある場合は、削除するためにご連絡ください。




粤公网安备44030002007346号