イベント
[CEDEC 2011]未来のゲーム機のハードウェアはどうなる? 〜2018年までのゲームハードウェアトレンド
さて,未来のゲーム機はどうなるのだろうか,セッションをレポートしてみよう。なお,撮影環境の都合によりスライドがやや見難いかもしれないが,その点はご容赦いただきたい。
半導体技術の都合により,ヘテロジニアスに向かわざるをえない
「2018年まで」としている理由の一つは,まさにそれで「米政府などがパフォーマンスの目標を挙げているので見えやすい年」(後藤氏)だからだという。もっとも,ExaFLOPSはHPC(High Performance Computing)の目標であってゲーム機は関係ないんじゃないの? という疑問を持つ人もいるかもしれないが,今後は「上(HPC)から下(モバイル)まで似たようなアーキテクチャになる」(後藤氏)のだという,後藤氏の読みがあるからだ。ゲーム機も例外ではなく,HPCなどと似たような構成にならざるをえないという。それはなぜだろうか。
理由を簡単に述べれば,半導体技術の都合によるものだ。130nm世代まではプロセス技術が1世代進むごとにトランジスタの消費電力は1/2になりパフォーマンスは2倍に引き上げられた。そのためプロセス技術が進むのに応じてリニアにCPUの性能は上がっていたのだ。
だが,現在ではプロセス技術の世代が進んでも「消費電力が数%しか下げられなくなっている」(後藤氏)という大きな問題が出てきている。さらに,トランジスタが微細化しすぎたためにパフォーマンスの上昇も鈍ってきているなど,130nm世代まで通用した常識がもはや通用しなくなっているという現状がある。
話がややこしいのは,それでも「ムーアの法則は2018年までは続く」(後藤氏)という点だ。
ムーアの法則とは,「LSIのトランジスタ数は18か月ごとに2倍になる」という経験則だ。実際にはムーアの法則も若干鈍化していて,後藤氏によると現在は2年(24か月)で2倍というペースなっているそうだが,それでも「ムーアの法則は続く。2018年までには8nmまでいく」(後藤氏)ことが見えている。
トランジスタの数はどんどん増やせるが,トランジスタあたりの消費電力が減らない,つまり全体の消費電力は激増していくという構図だ。トランジスタが増えた分だけ,リニアに性能が上がるのなら,クロックを落として消費電力を下げつつ,それなりのパフォーマンスを得るという道もあるが,「トランジスタ数が2倍になっても,パフォーマンスは1.4倍にしかならないというポラックの法則が出てくる」(後藤氏)。トランジスタが2倍に増えても2倍の性能は得られないので,結局は性能を上げようとすれば消費電力の増加から逃れられないという状況に陥っている。
この問題を軽減する方向の一つにマルチコアがある。同じダイ面積なら規模が大きいCPUを1つにするより簡易なCPUコアを2つ(以上)にしたほうが消費電力あたりのパフォーマンスは高くなるからである。「マルチコアは効率を保ちながら性能を上げることができる」(後藤氏)。AMDのCPU展開が典型的で,まず,CPUコアを複雑化させずに複数載せるという方向に舵を切った。
ただ,マルチコアを活かすには処理を並列化する必要があるが,ここではアムダールの法則が壁となって立ちはだかる。アムダールの法則というのは「並列化できないところが足をひっぱるという法則」(後藤氏)というもので,処理の中に一つでも並列化できない部分があればコア数に応じたパフォーマンスのスケーリングが得られなくなってしまうのである。
GPUに例えると分かりやすい。GPUは現在,数百の演算器を持っていて,それに応じた高度なグラフィックス処理,つまり複雑な計算を行わせている。計算の複雑さも考慮すればコア数に応じたスケールアップができているという理屈だ。
ヘテロジニアスコンピューティングという言葉は,GPUのおかげで広く知られるようになったが,もともとはゲーム機から誕生した言葉なのだそうだ。「(PlayStation 3の)Cellが登場したときISCC(IEEE Symposium on Computers and Communications)のイブニングセッションで誰かがヘテロジニアスだといった」(後藤氏)ことをきっかけに広まった言葉だという。ヘテロジニアスコンピューティングはゲーム機からスタートしたわけだ。
というようなわけで,ここまでをまとめると半導体技術の制約からシングルコアのパフォーマンスは今後伸びず,またアムダールの法則から並列化にも制約がある。したがって,並列実行とシングルスレッドのバランスを取るヘテロジニアスコンピューティングの方向にならざるをえない。つまり「上から下までゲーム機のようになる」というのが後藤氏の見方だ。
特定機能のためのオフロードエンジンも重要に
では,後藤氏が考える将来のヘテロジニアスコンピューティングとはどのようなものなのだろう。
まず,少数の汎用CPUコアと大量のGPUもしくはスループットコアに加え「大容量のメモリが載せられることになる」(後藤氏)。CPUとGPUのヘテロジニアスが基本となる。
メモリについては後半でも触れるが,メモリアクセスは極めてコストが高いものになってきているため演算器の近くにメモリを置いておくことが効率を高めるからだ。
もう一つのポイントがオフロードエンジンだ。後藤氏がいうオフロードエンジンとは,固定機能化されたハードウェアのことで,例えば暗号処理専用のハードウェアといったようなものと考えればいいだろう。なお,GPUもCPUに対してオフロードで処理を行うという点では一種のオフロードエンジンといえる。
NVIDIAが最近いろいろな場で発言していることだが,CPUは1命令当たり2000pJ(ピコジュール)を消費するのに対してGPUは1命令当たり200pJしか消費しないという。GPUは「命令実行のオーバーヘッドが小さい」(後藤氏)ため極めて電力効率がいい。
また,いずれにしてもGPUはグラフィックスに使えるから無駄にならない……ほかの用途で役に立たないものを集積するより,確実になにかに役立つものを集積したほうがいいというのもGPUに脚光があたる大きな理由だという。
GPUはプログラマブルシェーダー以降,急速に汎用化しており,ヘテロジニアスコンピューティングに適したものになってきた。まだ細かい問題が残っているが,汎用化はさらに高まる方向にいくだろう。
残る問題は,CPUとの統合がまだ完全ではないこと。「CPUとGPU,のメモリ空間が一つではない」(後藤氏)ことが大きな問題として残されている。
AMDはFusionにおいてCPUとGPUを一つのダイに集積し,広帯域の内部バスで接続した。CPUとGPUの統合はすでに始まっていると後藤氏 |
そのFusionにおいてさえ,CPUとGPUのメモリ空間は統合されていない。CPUからGPUへ,GPUからCPUへのアクセスにはオーバーヘッドがあり,用途を制限している |
AMDのFusionでは,CPUと高性能なGPUが一つのダイに統合されたが,依然としてメモリ空間は分かれている。CPUからGPUへ,GPUからCPUへのデータの受け渡しには大きなオーバーヘッドがあるため,GPUに渡す処理は相応の規模を持たないと効率が悪い。
だが,それは「次のステップで変わる。CPUとGPUが共通のアドレス空間にアクセスできるようになり,いまより粒度の小さな処理の実行ができるようなる」(後藤氏)という。ごく小さなサブルーチン程度でもGPUにオフロードして処理させるといったことがやりやすくなるわけだ。
そのためには,さらに「GPUのコンテキストスイッチングも必要になる。ゲームに使えるようになるには必須だと思う」(後藤氏)と語っていた。コンテキストスイッチングというのは,GPUで複数のタスクを走らせられるようにすることで,いまのところそのような仕組みはないという(ただし複数タスクから使うことは不可能ではない)。
ただ,ゲームで必須かどうかは議論があるところかもしれない。実際,CellのSPUにもコンテキストスイッチはなく,それでも使われていたりもするので,ゲームでは必須ではない機能という見方もあるかもしれない。
さらに,「C言語の特定のアルゴリズムをオフロードしてしまうコンパイラとハードウェアの組み合わせということも論文では出始めている」と語っていたが,このあたりは製品レベルでもいくつか似たものが存在していて,例えばプログラマブルロジック内蔵CPUあたりがそうだ。
GPUやオフロードエンジンといったものがCPUと同列に乗ってくるようになると,いまのプログラミング言語や,プログラミングモデルにも多少の変化がもたらされる。例えば,現状では,GPUはDirectXというレイヤーを介して,CPUとはまったく異なる方法でドライブされているが,これらを同列で扱う仕組みが必要になる。後藤氏は例としてAMDが提唱するFSA(Fusion System Architecture)を挙げたりもしていた。
メモリにはいずれ大変化が訪れる
後藤氏は2018年のハイエンドチップの例としてNVIDIAが計画している例を示してみせる。
NVIDIAなどが米国政府から受けている「Echelonプロジェクト」で想定されているCPUだが,後藤氏はおおよそ,ゲーム機を含めこのような構成を取る(というか,取らざるを得ない)と見ているようだ。
その2018年に向けて大きな課題になりつつあるのがメモリ帯域幅だと後藤氏はいう。「GPUではメモリ階層でメモリの帯域を隠蔽してきたが,もうどうにもならないレベルにきている」(後藤氏)。
メモリ帯域幅が大きな壁になっているが,メモリクロックを上げると消費電力が跳ね上がるという問題がある |
ただし,メモリの問題は「金をかければ解決できる」(後藤氏)。後藤氏が注目するのはWideI/Oと呼ばれる方向だ。現在,メモリバスは256bit幅程度だが,これを1024bitなど倍増させ,バスの速度を上げずに……結果,消費電力もあまり上げずに帯域を倍増させようという方向である。
そのために必要とされる技術としてシリコン貫通ビア(Through-Silicon Via:TSV)がある。
TSVとは,要するにCPUの上にDRAMを載せて膨大な電極(ボール半田)でつなげてしまおうというモノ。広帯域バスを狭い実装面積で現実的に使える方法として注目されている |
TSVというのは,簡単にいえばCPUの上にDRAMを載せてしまおうというもので,うまくいけばTB/秒クラスの帯域が実現できるとされる。基板上にパターンを引き回さないのでバスが短くなるメリットも大きい。
SoCの上にDRAMを載せるという方式は,すでにモバイルの分野では実績があり,例えばテキサスインスツルメンツのARMベースSoC,OMAPシリーズでは米国のDRAMメーカーMicronと組んでOMAP上にDRAMを載せる構成をとっている。技術的にはTSVとやや異なること,また現行のOMAPでの目的は実装面積の縮小といった違いはあるが,TSV自体は割と現実的な選択肢になりうる手法として注目できる。
TSVにもいろいろな方向があり,米IntelはDRAMの上にCPUを載せる方向を考えているとのこと。またNVIDIAはCPUに高速バスを介してメモリコントローラを接続し,コントローラの上にDRAMを載せる方向だそうだ。また,「NVIDIAのバスはおそらく規格化されるだろう」(後藤氏)とのことで,TSV+メモリコントローラによるメモリモジュール的なことを考えているらしい |
もっとも,DRAMそのものがいずれ限界を迎えることもまた確か。後藤氏は「これはアフター2018年」と断りつつ「DRAMは微細化の限界を迎える。TSVで延命するが長くは続かないだろう。だからDRAMベンダーはポストDRAMの開発でデッドレースをやっている」(後藤氏)。
DRAMはゲートの静電容量でビットを記憶するが,現時点でもゲートが小さくなりすぎて十分な電荷が溜められなくなってきている。あと2〜3世代もプロセスが進むとゲートが微細化しすぎてDRAMとしての機能を失うことはほぼ確実だ。
ポストDRAMの候補として後藤氏はSTT RAM(Spin Transfer Torque RAM)を挙げていた。STT RAMは電子のスピン方向を記憶に用いるメモリで”不揮発性”という特徴を持つ。
メインメモリが不揮発性になると「まったく違うランドスケープが見えてくる。ストレージという概念をなくすことも可能になるかもしれない。実行ファイルをロードして実行するのではなくて,メモリに展開されている実行イメージを実行するということも可能になる」(後藤氏)。
ということだが,このあたりは何ともいえない。メモリとストレージで容量あたりの単価が大きく異なるのなら,ストレージは利便性の点からも残るだろう。現在のOSの設計もストレージの存在を前提にしているので,後藤氏がいうようになるとOSをどうするかという問題も出てくる。
というようなわけで,後藤氏は最後にゲーム機に話を戻し「2018年には据え置き型のゲーム機は数十TFLOSが当たり前の状況になるだろう。プロセッサアーキテクチャはヘテロジニアスで多数のオフラインエンジンを持つ複雑なものになっている。皆さん,頑張ってください……としか言えない」と来場したゲーム開発者の笑いを誘っていた。
いずれにしても,後藤氏が語るように半導体技術の制約から,10年以内には大きな変革が起こる可能性は高い。そうした変化は,Cellがそうであったように,もしかしたらゲーム機から起こり始める可能性もあるのだ。なかなか面白い時代になってきたぞ,くらいに思っておくといいんじゃないだろうか。
- この記事のURL: