後藤弘茂のWeekly海外ニュース

プロセス技術とアーキテクチャの利を得た「Wii U」のGPU



●実はパワフルな任天堂の次世代ゲームコンソール「Wii U」のGPUコア

 任天堂が来年(2012年)に投入する次世代ゲームコンソール(据え置き型ゲーム機)「Wii U」。業界関係者によると、そのGPUアーキテクチャはRV770系以降のアーキテクチャにコンソール向けの拡張を加えたものになるという、PCで言うとゲーム向けビデオカードクラスの性能を達成し、プロセッシングではPlayStation 3(PS3)やXbox 360を大きく凌駕するという。当初の予想を上回るスペックは、任天堂の方針が、よりパフォーマンスへと振れていることを示唆している。

 このことは、ドミノ式にWii Uについての想定が変える。まず、CPUコアはより強力なコアである可能性が高まる。GPUパフォーマンスとドライバ性能のバランスを取る必要が出てくるからだ。また、プロセス技術は45/40nmではなく32/28nmプロセスである可能性が一気に高まる。より多くのプロセッサを搭載すれば、それだけダイサイズを食うからだ。任天堂は、Wiiでは電力効率を最重視し、家庭で常に電力を入れられても、熱や音で嫌がられないマシンを目指した。もしかすると、Wii Uでは、この戦略は、若干修正されるのかも知れない。

 だが、GPUアーキテクチャが見えてきたことで、Wii Uが、CPUコアとGPUコアを密接に統合したヘテロジニアスコンピューティング的なアプローチを取らないことも明瞭になった。AMDの旧世代のコアを使うため、汎用プログラムをGPUコア上で走らせると効率が悪いケースが多いからだ。このことは、次のゲームコンソールの戦いで、どういった意味を持つのだろう。

 Wii Uに至るまでのGPUアーキテクチャの流れをチャートで概観すると、全体のトレンドが見えてくる。

●ディスクリートGPUから取り残されたPS3とXbox 360

GPUプロセッサ数(PDF版はこちら)

 上の図はNVIDIAとAMD(ATI Technologies)のハイエンドGPUと、主要ゲーム機のGPUのシェーダプロセッサ数を比較したチャートだ。フル機能のシェーダプロセッサを備えていないハードは省いている。プロセッサ数だけを見ると、ゲームコンソールはその時代または1世代前のハイエンドGPUのスペックに沿っていることがわかる。

 GPU全製品ラインのプロセッサ数をチャートにすると、さらに流れがよく見えてくる。下のチャートの縦軸は、GPUのプロセッサ数(基本は単精度浮動小数点(FP)ユニット数)となっている。プロセッサ数はイコールパフォーマンスではないが、基本となるファクタだ。ゲーム機のボックスはイエローの☆マークで囲ってある。

GPUプロセッサ数スケール(PDF版はこちら)

 PS3もXbox 360も、登場時点ではパフォーマンスGPUのプロセッサ数だったが、現在のハイエンドGPUのプロセッサ数からは大きく隔たっていることがわかる。それも、数倍というレベルではなく、数十倍ものプロセッサ数の差がついている。これだけ大差がついているのは、ディスクリートGPUのプロセッサ数が急増してきたためだ。

 GPUのプロセッサ数が急増したのは、DirectX 9世代以降、GPUベンダーがプロセッシングパフォーマンスを高めることに注力して来たためだ。グラフィックスパイプラインから固定機能ユニットを削り、プログラマブルユニットを増やして来た。結果、GPUのプロセッサ数は世代毎に急増し、特にAMD GPUではプロセッサ数が猛烈な勢いで増えた。

 実際、ハイエンドGPUのプロセッサ数の増加ペースは、現在のムーアの法則である2年で2倍のペースをはるかに越える。上のチャートを見ると、2004年にはNVIDIAとAMDともにハイエンドGPUは130nmプロセスで、Vertex ShaderのFPユニットが6、Pixel ShaderのFPユニットが16(4×4)の構成だった。両シェーダの構造や機能の違いを無視して合算すると合計で22ユニットだ。

 ところが、2006年末から2007年には、ユニファイドシェーダ化とともに、NVIDIAが90nmで128プロセッサ、ATIが110nmで320プロセッサに急増している。これは、ムーアの法則で期待できる数字より、最大で約5倍も大きい。半導体チップはムーアの法則に沿っているはずなのに、GPUのプロセッサ数は、その法則を外れて急増している。下の図を見ると、その関係がよくわかる。

GPUプロセッサ数スケールとムーアの法則(PDF版はこちら)

●過去5〜7年で急増したGPUのプロセッサ個数

 ディスクリートGPUのプロセッサ数が急増した背景には、複数の理由がある。まず、ハイエンドGPUのダイサイズが最大180%に増大した。ダイが大きくなれば、載せられるプロセッサ数が増える。また、旧世代のGPUは、グラフィックス用の固定機能をある程度備えていたが、現在のGPUではその比率が大幅に減っている。ダイ上での固定機能ユニットの面積がどんどん減った分、プロセッサの比率が増えた。実際、現在のGPUで増えているのはプロセッサ回りで、固定的な機能はそれほど増えていないので、プロセスの微細化とともに、プロセッサに使えるダイ面積がどんどん増える傾向にあった。

 また、AMDは特にプロセッサを詰め込む工夫を加えた。上のチャートでわかるように、AMDとNVIDIAは、2005年まではプロセッサ数ではほぼ同列だったが、ユニファイドシェーダ化したDirectX 10世代からAMDがNVIDIAを大きく上回るようになった。これは設計思想の違いによる。AMDは、VLIW(Very Long Instruction Word)アーキテクチャでプロセッサ数を増やして、生パフォーマンスのアップに努めた。NVIDIAは、プロセッサ数を増やすとともに、命令制御とメモリ階層を強化して、プロセッシングの効率を高める方向へと振り向けた。

 そのため、AMDアーキテクチャでは非グラフィックス処理ではプロセッサの稼働率が低いケースが多いという弱点を持ち、NVIDIAアーキテクチャでは同クラスのGPUのグラフィックス処理のシェーダプロセッシングパフォーマンスで劣るケースが出るという弱点を持つことになった。また、演算能力に対するメモリ帯域の比率も、AMDアーキテクチャの方がNVIDIAアーキテクチャの半分程度で、AMDの方がメモリストールの可能性が高くなっている。アーキテクチャの選択の違いで、AMDは徹底してプロセッサ数を増やす利を取った。

●アーキテクチャ転換の節目の前に生まれた現行ゲームコンソール

 過去5〜7年の間に、GPUのプロセッサ数がムーアの法則を超えて急増したことは、ゲームコンソールに大きな影響を与えた。プロセッサが急増する前の技術で作られたPS3やXbox 360などのゲームコンソールのGPUは、プロセッサ数だけを見ると現在のGPUに大きく見劣りするものとなっている。

 両者とも、現在のローエンドのディスクリートGPUのプロセッサ数にも達しない。数字の上では、モバイルデバイスにすら抜き去られつつある。グラフィックスパフォーマンスはメモリ帯域など他の要素にも縛られるため、プロセッサ数には必ずしも比例しないが、生のプロセッサ数では、もはや完全に最下層だ。

 PS3とXbox 360にとって不運だったのは、両マシンが生まれたのは、ちょうどシェーダプロセッサ中心へとGPUアーキテクチャが変わる節目だったこと。そのため、アーキテクチャ面だけでなく、プロセッサ数という物量でも、過去のものとなってしまった。

 もっとも、GPUも今のペースをいつまでも続けられるわけではない。実際にはNVIDIAはユニファイドシェーダになったGeForce 8800(G80)以降、ほぼムーアの法則と同じペースに落ちている。つまり、NVIDIAの場合は、旧来アーキテクチャからユニファイドシェーダアーキテクチャへの移行が、ワンタイムのジャンプだった。

 AMDについても、ある程度似たような状況が見える。ユニファイドシェーダ化したRadeon HD 2900(R600)で一気にプロセッサ数がジャンプアップしている。しかし、それ以降も、Radeon HD 4800(RV770)ではダイサイズを小さくしたにも関わらずプロセッサ数は2.5倍に増えた。この再度のプロセッサ密度のブーストは、内部アーキテクチャを最適化し、リングバスなどオーバーヘッドの大きな部分をクロスバースイッチに置き換えることなどで実現した。

AMD GPUの内部バス移行図(PDF版はこちら)

 しかし、AMDは次世代コア“Graphics Core Next”では内部アーキテクチャを一新するため、プロセッサ密度は一気に落ちることが予想される。また、そうしない限り、プロセッサ数ほどは伸ばすことができないメモリ帯域とのバランスを取ることができない。これまでのプロセッサ数の急伸は、一時的なトレンドに過ぎなかったと推測される。しかし、ゲームコンソールは、プロセッサ数増大の波の前に成立してしまったため、GPUプロセッサ数では先端GPUと大きく隔たってしまった。

●ダイサイズとプロセスルールで決まるプロセッサ数

 アーキテクチャが一定に落ち着くと、GPUのプロセッサ数は、GPUチップのダイサイズ(半導体本体の面積)とプロセス技術に縛られる。ハイエンドGPUは巨大ダイであるためプロセッサ数が多く、ローエンドGPUは最小サイズのダイであるため載せられるプロセッサ数が少ない。そして、同じアーキテクチャなら、プロセス技術が半世代(例えば65nmから55nm)進むと原理的に1.4倍のプロセッサを搭載できるようになり、1世代(例えば55nmから40nm)進むと2倍のプロセッサを搭載できるようになる。

GPUプロセッサとダイサイズの比較(PDF版はこちら)

 ダイサイズとプロセッサ数を上のチャートのように図式化すると、その関係がよくわかる。縦軸がダイサイズで、縦に見ると上に位置するハイエンドGPUはプロセッサ数が最大で、中ほどに位置するパフォーマンスGPUはその半分から1/4のプロセッサ数、下に位置するメインストリームGPUとバリューGPUは、さらにその半分以下のプロセッサ数となっていることがわかる。

 SCEとMicrosoftのゲームコンソールのGPUは、チャートの中でかなり上位サイズとなっている。Xbox 360のGPUは、実際にはROP(Rendering Output Pipeline)ユニットを別ダイ(半導体本体)のeDRAM側に搭載しているため、GPUとしての実質的なシリコン面積はこのチャートよりやや大きい。

GPUのダイサイズとプロセス技術(PDF版はこちら)

 上のチャートはダイサイズの違いをわかりやすく視覚化した図で、これを見ると、ゲームコンソールGPUとディスクリートGPUのダイサイズの関係がよくわかる。この図でもゲームコンソールのGPUはイエローの☆でハイライトしてある。PS2のGraphics Synthesizerのダイサイズが大きいのはフレームバッファのeDRAMを内蔵していたためだ。だが、それを差し引いても、MicrosoftとSCEはハイエンドか準ハイエンドクラスのダイサイズをターゲットにして来たことがわかる。PS3のRSXも、DirectX 9世代初期のハイエンドGPUクラスだ。しかし、ディスクリートGPUのダイサイズの大型化に追い抜かれて行くこともわかる。

●ゲームコンソールのGPUコアの位置づけ

 ダイサイズとアーキテクチャとプロセッサ数の関係を整理すると、GPUのプロセッサ数は、ある程度予想がつくようになる。下は横軸を時間ではなくプロセスノードに整理したチャートだ。45nmがぽっかり空いているのは、TSMCなどGPUのファウンドリが"45nmノード"をスキップして、40nmノードに移行したためだ。

プロセスノード毎のGPUプロセッサ数とダイサイズの比較(PDF版はこちら)

 横軸が右へと進むとプロセス技術が進み、その結果、同じダイサイズでもGPUに搭載するプロセッサ数が増えて行くことがわかる。また、アーキテクチャジャンプがある場合は、横軸で大きくプロセッサ数が急増する。例えば、NVIDIAの場合はGeForce 7800 GTX(G70)からG80で急増している。PS3のRSXはG70系アーキテクチャなので、この時点で取り残された。

 ただし、同じ90nmでも、GeForce 7900(G71)系とRSXでは、基本構成が同じであってもダイサイズがかなり異なる。これにはファウンドリの違いや、設計時期の違いが影響していると見られる。ファウンドリや物理設計のチューニングによって、同じノードの同じアーキテクチャのチップでも、ダイ面積は大きく異なる。

 ユニファイドシェーダのXbox 360 Xenosは48プロセッサ(16×3)で、同プロセスノードで同レベルのダイサイズの旧アーキテクチャATIディスクリートGPU(RV530など)よりプロセッサ数が多い。しかし、ATIディスクリートGPUがユニファイドシェーダへとアーキテクチャジャンプを行なうと一気に引き離される。同程度のダイサイズでのプロセッサ密度では、Xenosは現在のAMD GPUの1/17程度と乖離している。

●32/28nmプロセスなら数100個のプロセッサを搭載可能

 こうして全体を俯瞰すると、GPUアーキテクチャの流れとゲームコンソールの関係が見えてくる。PS3 RSXはアーキテクチャの転換が始まる直前のGPUコアで、そのためにユニファイドシェーダ化以降の急激なプロセッサ数の増加から取り残された。Xbox 360 Xenosは旧来アーキテクチャから半歩踏み出しているものの、同じATI系の強烈なプロセッサ密度向上アーキテクチャからは引き離された。そのため、2.5プロセス世代後の現在は、両ゲームコンソールとも、プロセッサ数ではディスクリートGPUのはるか後塵を拝している。

 それに対して、Wii UはGPUベンダーのプロセッサ数増加の波の後のアーキテクチャを使う。そのため、プロセッサ/ダイの密度では、PS3とXbox 360を凌ぐことができることになる。設計時期の問題で、Wii UはPS3やXbox 360より、プロセッシング能力の面で大きな利を得ることができる。

 図が示すのは、任天堂がGAMECUBEの時と同程度の110平方mmにしたとすると、任天堂は40nmで400プロセッサを搭載できることだ。実際にはI/O回りもGPUチップに集積するため、プロセッサ個数は減るはずだが、28nmプロセスなら充分に400プロセッサ以上を搭載できるだろう。もっとも、プロセッシングに見合うだけのメモリ帯域を確保できなければ(ゲームコンソールでは常にこれが問題となる)、実効性能が削られるため、単純なパフォーマンス比較はできない。しかし、任天堂がやる気なら、シェーダ時代に最適化されていなかったPS3やXbox 360に対してプロセッサ数と生パフォーマンスでは圧倒的な優位に立てる計算になる。PS3やXbox 360を大きく凌駕すると見るのは間違いではない。

 Wii UはディスクリートGPUに対しても、PS3やXbox 360のように引き離される心配がない。現在のディスクリートGPUは、プロセッサ密度はムーアの法則とほぼ同じペースでしか伸びていない。それどころか、AMDがネクストコアへとアーキテクチャを転換することで、おそらくプロセッサ密度を下げる。そのため、Wii Uは、今後数年経っても、プロセッサ数では、ディスクリートGPUに大きく引き離されることはないだろう。プロセッサ数という観点から見ると、Wii Uはいい時に設計をしたことになる。

 だが、その一方で、アーキテクチャの観点から見ると、全く逆の構図が見えてくる。AMDは今年(2011年)末をターゲットとしているGraphics Core Nextで、一気にGPUアーキテクチャを転換するからだ。

●カギとなるのはヘテロジニアスコンピューティングのゲームへの浸透

 AMDは次のGPUコアで、グラフィックス以外の汎用プログラムで使いやすいように大改革を行なう。これは本質的な転換点で、連動してAMDはプログラミングモデルまで「FSA(Fusion System Architecture)」で変革しようとしている。Wii UはAMDのこうした変革の前のアーキテクチャとなるため、AMDの目指すヘテロジニアスコンピューティング化の恩恵を受けることができない。

 AMDがGraphics Core Nextで行なおうとしているのは、NVIDIAがG80で行なったのと同じような大転換だ。このことは、G70アーキテクチャのPS3のRSXが、G80の転換に取り残された時を思い起こさせる。任天堂は、AMDのアーキテクチャ改革の直前のアーキテクチャを採用することになる。

 とはいえ、ゲームコンソールのグラフィックス機能という面だけを見れば、これはそれほど大きな問題ではないかも知れない。汎用コンピューティングへの最適化は、伝統的なグラフィックス性能/トランジスタを落とす可能性が高いからだ。現状のグラフィックスを考えるなら、むしろGraphics Core Nextになる前のAMD GPUアーキテクチャの方が、ゲームコンソールに向いているかも知れない。PS3の場合は、シェーダグラフィックスの性能と機能の面でも、G70系アーキテクチャが取り残されたことが痛かった。

 では、グラフィックス中心で汎用コンピューティングに弱いアーキテクチャでプロセッサ数を稼ぐと見られるWii Uは有利なのか。

 この問題は、将来のゲームプログラムがどう変化するのかという根本的な問題に関わってくる。ゲームでは、一部を除いてGPUコアを汎用プログラミングに使おうというモチベーションが薄い。それは、ゲームではグラフィックス以外の用途にGPUパフォーマンスを割くことが嫌われる傾向があるからだ。

 しかし、今後のGPUコアは、ますます汎用性を高めて行く。家電としてのゲームコンソールの性能/電力効率を求めようとすると、データ並列コンピューティングの比重を高めるしかない。より広く流れを見ると、今後のコンピュータデバイスは、GPUコアのようなデータ並列プロセッサを汎用に使うヘテロジニアスコンピューティングに向かわざるを得ない。そうした流れの中で、Wii Uの選択は妥当かどうかは、おそらく2010年代の中盤あたりまで行かないと判断できないだろう。

プロセスノード毎のGPUプロセッサ数スケール(PDF版はこちら)