米国のスタートアップであるX-Siliconは、非常に面白い構想と展開を明らかにしました。それは、CPUとGPUの両方の処理を行えるアーキテクチャ「C-GPU」です。
C-GPU
今回明かされたのは「C-GPU」(Unified Compute Graphics Engine)の計画です。このC-GPUは、GPUの命令もCPUと同じ命令にしてしまって、単一のコアでCPUとGPU両方(あるいはその他のアクセラレータ全て)の処理を行えたら良いことあるやん。というものになります。つまり、C-GPUアーキテクチャでのコアは「何でも屋」になるわけです。あるいは、CPUにもなれる、分割可能なFPGAとしても正しいでしょうか。
具体的に説明します。現在普及しているシステムにおいて、CPUとGPUは別々のアーキテクチャとして設計されています。そのため、CPUとGPUでそれぞれ命令が異なっていますし、そもそものコアも独立しています。もし、CPUとGPUの両方を使用する処理があったとき、メインメモリとビデオメモリでデータのコピーが発生します。
しかし、C-GPUアーキテクチャでは、CPUとGPUが同じコア=同じメモリ空間であるため、データのコピーは発生せず、低メモリフットプリントで実行が可能になります。X-Siliconとしては、ニアメモリやユニファイドメモリなどでGPU特有のメモリレイテンシ問題も解決し、コンピューティングを高速化できるとしています。
命令にはRISC-Vを使用します。現時点では、RISC-Vのベクトル系の命令を活用するようですが、この文脈からよみとるに、今後C-GPUに合わせるためRISC-Vの拡張も視野に入れているかもしれません(流石に現時点でのRISC-V命令で現在のGPUが行える処理を実行できるほどの機能があるかは疑わしいところです)。
と複雑に説明がなっていますが、単純に述べれば、CPUの機能を拡張してGPUやアクセラレータとしても処理できるようにするというのが、計画の目的です。
コアの構造
実際のコアの構造を見てみます。
一つのコアには、統合命令デコーダと、32-bitの浮動小数点演算ユニットを16基とスカラALUを有する「RISC-V Vector Core」があり、Vector Coreは、スレッドスケジューラ、クリッピングエンジン、ラスタライザー、Neural Engine(おそらくNPU)、ピクセルプロセッサに接続されています。また、映像出力のユニットも存在している。おそらくVector Coreを除いては個々の性能はそれほど高くはないと推定されます。
先述の通り、コア自体はCPUにもGPUにも、あるいは更に別のアクセラレータにもなれるため、これはおそらくユーザー側で制御できることでしょう。
動作
並列演算には、「いくつの命令で、いくつのデータを処理するか」という概念が4つあります。基本的に複数の命令を複数のデータで実行できるMIMDと、一つの命令を複数のデータに実行できるSIMDがよく出てきます。MIMDは主にCPUのマルチコア、SIMDはGPUの並列演算の形です。
C-GPUは画期的なMIMDとして表現されています。おそらく、一つのプロセッサにおいてCPUとGPU、さらに別のアクセラレータも同時に動作できるということからであることからこの様に述べていると考えられます。
C-GPUにおいてコア間は高速ファブリックで接続されており、SRAMやeDRAMキャッシュが複数のコアからのデータを集約するL2キャッシュとして機能します。それぞれのコア自体は、独立してCPU、GPU、あるいはAIやビデオなどのアクセラレータとして実行できるようにスケジューリングできます。
私の理解が正しければ、何でも屋なコアが、場面に合わせて自分の役割を変えて、必要なときには他のコアとグループを組んだり、場面に合わせて一人で処理を行う、というような動作が可能であるということになります。
処理は、CPUのような並列動作のほか、GPUのようなパイプライン(逐次実行)の両方が可能であるとしており、OSの実行が可能ということから、メインプロセッサとして活躍する可能性もあります。
オープン
X-Siliconは、C-GPUをオープンなものにすることを計画しています。
現時点で、GPUとしてVulkanやOpenGL、Mesaなどの従来のエコシステムのソフトウェアをサポートする予定であるとしていますが、独自のドライバやカスタムAPIを作成できるように、ハードウェア抽象化レイヤ(HAL)も提供する予定です。これには、ニューラル・ラディアンス・フィールド(NeRF)や非三角形プリミティブなど、従来のアーキテクチャではサポートされていない新しいレンダリングモデルを含む、新しく登場した技術のサポートが含まれています。
RISC-V自体もオープンであるため、今後、X-Siliconが開発に成功し、実際のプロダクトとなれば、他社もそれに追従することが可能となります。
なお現時点で、製品の登場時期は明らかにしていません。