モバイルGPUの解析状況
Update: VideoCoreのvector registerは64x64だった
FOSDEM2013で、"Open ARM GPUs"と題された発表があり、現状のモバイルGPUの解析状況が纏められた。PowerVR/videocore以外に関してはLinuxで動作するドライバプロジェクトが一応存在する。Videocoreはプロジェクトは存在し、実際のコードも動作しているが、アーキテクチャの特殊性から他のアーキテクチャに比べて遠い位置にいる。
モバイルGPUは端境期に有り、デスクトップGPUの勃興期のように様々なベンダから絶妙なアーキテクチャのGPUが幾つかリリースされている。今後、製造プロセスが22nmのように先端プロセスになっていくにつれ、このような解析は下火になり、デスクトップGPUと大きく違わない状況になっていくだろう。
ZiiLabsのZMSはここには出てこない。Design winが殆ど無いので仕方ないか。。Zii LabsはIntelに部分的に買収されている。
全体的に、統合/分離シェーダモデルの他に、フロントエンド(描画リスト等を受け入れる部分)のデザインに大きく差異があるように見える。PowerVRとVideocoreは比較的大規模なファームウェアを持っていて、それ以外のGPUは描画パケットの処理を受け持つ単純なフロントエンドとシェーダエンジンを分離したデザインになっている。
ARM Mali 200/400
Mali 400MP等はARM買収前のFalanxによるGPUの直接的な展開で、安価なタブレットでは多く採用されている。
600以降はOpenCL等にも対応した近代的なアーキテクチャとなっている。こちらはまだあまり解析されていない。
Tegra
Tegraは5以降で通常のCUDAコア + 統合シェーダアーキテクチャに移行するとしている。現状のTegra2/3はかなりレガシーなGeForceのアーキテクチャを引いていて、CPUの方もneon無し、VFPも縮小版といったなかなか男らしいアーキテクチャになっている。
Vivante GCxxxx
VivanteのGPUはエリア効率の良さをウリにしていて、確かに他のGPUに比べて多くの部分で単純化を感じる。アーキテクチャが実行可能なシェーダは512ステップとショッキングな短さで、OpenVGなどは独立したアクセラレータでサポートする。
Broadcom Videocore
RaspberryPiに採用されて、シェーダコンパイラがGPU側に有るために多くの人の度肝を抜いた男らしいアーキテクチャ。Alphamosaic開発で、2004にBroadcomに買収された。
OpenGLやOpenVG実装は、Videocore側にRPCすることで実装されている。確かにOpenGLはリモート実行されることを想定してデザインされているが、まさかモバイルGPUでこれが行われるとは。。
Videocoreのアーキテクチャは昔懐かしい香りが漂う32bitsx32汎用レジスタ + 8bitsx8x8 8bitsx64x64ベクトルレジスタの構成となっている。普通のCPUとしての機能性も持つが、GPUとしての固定機能ももちろん持つ。