2011年6月7日?9日,カリフォルニア州ロサンゼルスのコンベンションセンターを会場に,(以下,E3 2011)が開催される。E3開催前には,恒例ともいえるプラットフォームホルダーやパブリッシャのプレス向けカンファレンスがロサンゼルス市内各所で行われ,そこで重要な発表がされることも多い。

 1995年に開催された第1回以来,今年2011年で17回目を迎えるE3は,世界のゲーム市場の拡大に伴って,年々その規模を拡大し(一時,規模を縮小したこともあるが),現在では「欧米ゲーム業界で最も重要なイベント」として,メディアだけでなく,広く一般にも認識されている。もちろん,世界市場を抜きにしては語れない日本のゲーム関連メーカー,そして我々日本人ゲーマーにとっても,重要なイベントであることは間違いない。

 E3 2011の最大のトピックは,やはり新しいゲームハードの登場だろう。任天堂がWiiの後継機を,そしてソニー?コンピュータエンタテインメントが,という名称で知られる新型の携帯ゲーム機をE3 2011で公開する予定になっており,それらに世界の注目が集まっている。Xbox 360の公開で,7万人の関係者を集めた2005年,そしてPlayStation 3とWiiの公開に6万人のメディアが詰めかけた翌2006年ほどではないかもしれないが,それに続く報道ラッシュになるだろう。

 11月11日に都内で開催された「ARM Technical Symposia 2011 Japan」()では,ARMのグラフィックスコアIP「Mali」のロードマップと新世代MaliであるMali-T600シリーズにまつわる技術を取り扱うセッションが行われた。
 本稿では,その内容をまとめてみることにする。


ノルウェイの森……じゃなくて「ノルウェイのMali」


Maliシリーズのロードマップについて解説したSteve Steele氏(ARM MPD部門Product manager)
 ARMは,CPUコアIPメーカーとしてはそれなりに有名であったわけだが,かたやGPUというと,どちらかといえば無名な存在だった。
 しかし,ここ最近の急成長ぶりは各方面で語られており,凄まじい勢いがある。
 ARM GPUのブランドである「Mali」は,クロアチア語で「小さい」を意味する単語で,元々はノルウェイのグラフィックスコアIPメーカー,Falanx Microsystems(以下,Falanx)のブランドをそのまま受け継いだものになる。

Maliシリーズの各コアアーキテクチャの開発コードネームは北欧神話が出典元になっている
 Mali-200/300/400シリーズまでは「Utgard」アーキテクチャと呼ばれる世代のもので,これはスバリ言ってしまえば,それまでのFalanx社の設計そのままのコアであった。
 Mali-200/300/400シリーズはのグラフィックスパイプラインは,基本的にはOpenGL ES 2.0ベースで,DirectX世代でいうところのDirectX 9世代に近い内部構成となっている。頂点シェーダとピクセルシェーダはそれぞれプログラマブルシェーダではあるが,そのシェーダユニットの構成は固定されたアーキテクチャとなっていた。

 一方で,新世代のMali-T600シリーズは,コア世代を「Midgard?に改め,統合型シェーダアーキテクチャへの進化を遂げている。

 ちなみに,UtgardやMidgardというアーキテクチャ名は,北欧神話の世界区分名だそうだ。Utgardは巨人界,Midgardは人間界というような意味合いがある。これは,Falanxの本拠地が北欧にあることと無関係ではあるまい。

Maliは,T600シリーズからMidgard世代のコアへ

 Mali-T600シリーズは,Falanx買収後,初のARMメンバーとFalanxメンバーによるコラボプロジェクトの産物で,テクスチャユニットなどの専用ロジックはFalanxが設計したMali-400シリーズ以前のものが流用されているが,シェーダコアを初めとしたコアアーキテクチャはほぼ完全な新設計となっている。
 Mali-T600シリーズには,CPU屋としてのARMの遺伝子が色濃く刻み込まれており,CPU側とGPU側とでは共通したメモリアドレス空間を利用でき,キャッシュシステムは相互にコヒーレンシ(一貫性)が保証されるといった特徴を持つ。

 先頃,ARMは完全64bitアーキテクチャのCPU仕様「ARMv8」を発表したばかりだが,Mali-T600シリーズは,ARMv8世代のCPUコアとの組み合わせをも許容する。

 グラフィックスパイプラインは,前述したように負荷やスレッドコンテクストに応じて役割を変える統合型シェーダアーキテクチャベースとなり,各シェーダコアはネイティブ64bit整数と,IEEE754規格準拠の浮動小数点演算をもサポートする。また,携帯電話や組み込み系のGPUとしては世界初となる,64bit倍精度浮動小数点演算をサポートしていることも特徴だといえるだろう。

Mali-T600シリーズは64bit CPUとの組み合わせに対応し,さらに64bit整数演算,64bit浮動小数点演算に対応。いうなればリアル64bit GPUということになる


Mali-T600シリーズのグラフィックスアーキテクチャ


Mali-T604は最初のMidgardアーキテクチャベースのGPU IP
 既発表のMali-T604と11月に発表されたMali-T658は,ともにMidgardコアのMali-T600シリーズのGPU IPということで基本的には同世代のコアだ。Mali-T604は4コア,Mali-T658は最大8コアだが,Mali-T658が単純なT604×2の合算コア的な構成かというとそうではない。Mali-T658の内部アーキテクチャには改良が施されている。

 Mali-T604ではシェーダコアが4基あり,各シェーダコアには「32bitスカラプロセッサ(SP)+128bitベクトルプロセッサ(VP)」が2基ずつあったものが,Mali-T658ではこれが倍増され,「32bit SP+128bit VP」が4基に増えている。


 つまり,Mali-T658は同一クロックで動作させたMali-T604と比較した場合,4倍(=[シェーダコア2倍]×[コア内のプロセッサ数2倍])のピーク性能を持つことになるのだ。
 ちなみに,Mali-T658は,4シェーダコアを最小単位とし,この4シェーダコアのGPUコアが2基組み合わさったような構成になっている。この最小単位コアはそれぞれがL2キャッシュを持ち,その間のコヒーレンシは維持されていない。そう,あえて言えばNVIDIAのSLIとかAMDのCrossFireXのような,マルチGPU的な動作となる。
 各シェーダコアにはロードストアユニットとテクスチャユニットも存在する。グラフィックスレンダリングの場合は,このテクスチャユニットがビデオメモリ出力(ROPユニット相当)の仕事も担当する。

Mali-T658はMali-T604の4倍のGPU性能。それはシェーダコアが2倍,そしてシェーダコア内の汎用シェーダユニットが2倍に増加しているため

 実際のパフォーマンスは,実物を動作させてみないと分からないが,「32bit SP+128bit VP」のALUセットを1基の汎用シェーダとして数えて従来のGPU評価指標,あるいはスペック指標で換算するならば,Mali-T658は,汎用シェーダユニット32基(=[8シェーダコア]×[4汎用シェーダユニット])のGPUとなる。FillRateについては,ドラゴンクエスト10 RMT,Mali-T600シリーズの場合,事実上のROP(Rendering Output Pipeline)処理をテクスチャユニットが担当するので,Mali-T658は8ROP相当の性能ということになる。汎用シェーダ数32,ROPユニット数8……というと,(動作クロックにもよるが)おおよそのパフォーマンスが想像できるのではないだろうか。

 なお,Mali-T600シリーズのグラフィックスパイプラインは,DirectX 11,そして次世代OpenGL ES「Halti」(開発コードネーム)に対応する。もちろん従来のOpenGL ES 1.1/2.0,OpenVGへの対応も保証される。ARM版のWindows 8が出てくるまでDirectX 11は出てこないだろうが,逆に言えば,すでにARMアーキテクチャをベースとしたSoC側の対応準備はできあがっているわけだ,rmt

 実際のレンダリングはタイルベースで分割レンダリングがなされる。このあたりはImagination TechnologiesのPowerVR系とよく似ている。ただし,Zバッファなしでレンダリングを行うPowerVR系とは異なり,Mali-T600シリーズでは,メモリ上にZバッファは持つ仕様と説明されている。

 「DirectX 11対応」ということで,テッセレーションステージへの対応が気になるところだが,これに対しては「もちろん対応する」と断言されている。
 テッセレーションステージにおいてプリプロセスとポストプロセスを担当するハルシェーダとドメインシェーダの2つのプログラマブルシェーダ,そしてDirectX 10で追加されたジオメトリシェーダについても,Mali-T600シリーズは動作がサポートされる。
 ただ,Midgardコアには,DirectX 11では固定機能で実現されるハードウェアテッセレータユニットは搭載されておらず,汎用シェーダユニットを用いてのソフトウェア実行になると説明されている。

 「ジオメトリシェーダとテッセレーションステージを携帯電話や組み込み機器に利用するなんてオーバースペックでは?」という意見もあるが,実際のところ,ジオメトリシェーダおよびテッセレーションステージは,ジオメトリデータ(分かりやすく言えばポリゴンモデルのメモリ占有容量)を最低限に抑えつつ,それでいて高品位でリッチな3Dモデル表現が行える……ということでむしろ歓迎ムードが漂っている。


Mali-T600シリーズはGPGPUにも対応する


Mali-T600シリーズのGPGPUソリューションについて解説した濱田拓也氏(アーム メディアプロセッシング部門 ビジネス開発マネージャ)
 ARMは,Mali-T600シリーズは先進的な3Dグラフィックスレンダリング機能をアピールしつつも同時に,GPGPU用途への利用を強く推奨している。
 Mali-T600シリーズは,統合型シェーダアーキテクチャベースとなったことで,その内部の汎用シェーダユニットをグラフィックス用途以外に転用できるようになっているのだ。
 対応API/対応フレームワークとしては,MicrosoftのDirectX準拠となるDirectCompute,GoogleのAndroid環境下のRenderScript Compute,そしてEmbedded ProfileおよびFull Profileに対応したOpenCLが挙げられている。

異種混合コンピューティングプラットフォームとしても強く訴求されるMali-T600シリーズ

 Mali-T600シリーズは,携帯電話やタブレットなどでの採用を想定したプロセッサであるため,そうした機器ではPCのように贅沢に処理目的ごとの専用プロセッサをおいそれと搭載できない。なので1つのプロセッサが多目的に活用できた方がありがたいという風潮がPCよりも強い。それだけにARMはMali-T600シリーズがGPUとしてだけでなく,メディアプロセッサやDSP的な活用ができることを強くアピールしたいわけだ。

現在,現実的な,Mali-T600シリーズのGPGPUソリューションとしては,OpenCLが強く訴求されている。DirectComputeはARMプラットフォームでWindowsが動いてからだし,RenderScript Computeはまだ発展途上なためだ

Mali-T600シリーズはGPGPUソリューションに対しても高いポテンシャルを有する

Job ManagerがグラフィックスレンダリングタスクとGPGPUタスクを抽象化
 ARMのMali-T600シリーズは,SoC上に乗せるGPU IPということで,CPUとGPUが必要に応じて協調して動作できたり,独立並列動作できたりするような工夫が盛り込まれている。例えば,Mali-T600シリーズでは,Mali-400時代のモードチェンジを行わずとも,GPGPUタスクと3Dグラフィックスタスクを同時に並列で走らせることができる。
 Mali-T600シリーズでは,やってきた3DグラフィックスタスクとGPGPUタスクを,内部の「Job Manager」ユニットで抽象化し,これを純粋な演算タスクとして,実行部隊となるシェーダコアへと発注する。シェーダコア内部の汎用シェーダユニット自体は,発注された処理を素直に実践するだけで,自身はその内容をグラフィックス用とGPGPU用と理解/区別して処理を行っていない。

 もちろん,3DグラフィックスタスクとGPGPUタスクを同時に処理しているときは,Mali-T600シリーズのパフォーマンスはそれぞれのタスクに振り分けられてしまうわけだが,モードチェンジなしに同時に処理できるという点は,大きなアドバンテージとなる。

図中の[C Job],[C Task]はGPGPUタスク,[V job],[V Task]は頂点処理タスク,[F Job],[F Task]はピクセル(フラグメント)処理タスクを意味する。各シェーダコアはこれを同時かつ混在した状態でも処理が可能


ますます白熱する携帯電話,組み込み機器向けの高性能GPU IP戦争


 現状,Mali-T600シリーズは,携帯電話や組み込み向けの「最高性能GPU IP」という部分が切り取られアピールされているが,こうして見てくると“CPU屋”のARMと“GPU屋”のFalanxがコラボしたからこそできた,とてもユニークな存在のGPU IPだということが分かってくる。

 実際のMali-T600シリーズを採用した製品は,2012年中期以降から出てくると見られている。
 ちなみに,2012年以降は,Imagination Technologiesがすでに発表した次世代PowerVR6シリーズ(開発コードネーム「Rogue」)が出てくる予定だ。常にナンバーワンでいたいNVIDIAも,Tegra 4になると噂される「Wayne」(開発コードネーム)の発表を2012年に控えている。2012年は,PC向けGPUよりも白熱したGPU戦争が,携帯電話や組み込み向けのフィールドで勃発するはずだ。ある意味後発となるMaliが,どこまで既存勢力を脅かすかに注目したい。

ARMが示したARMプラットフォームのロードマップ

関連トピック記事: