後藤弘茂のWeekly海外ニュース
NVIDIAのゲームマシン「SHIELD」の心臓部となる「Tegra 4」の正体
(2013/1/15 00:00)
28nmプロセスへの移行に合わせてアーキテクチャを強化
今年(2013年)のCES(Consumer Electronics Show)で最もホットな話題は、NVIDIAの発表した次期モバイルSoC(System on a Chip)「Tegra 4」と、それを使った「オープンプラットフォーム」ポータブルゲーム機「SHIELD」だった。NVIDIAのモバイルSoCの戦略は、今後は同社が発売するShieldと密接に連携して行く。毎年、新しいTegraと新しいSHIELDが登場するという。
中核となるTegra 4は、一言で表せば、Tegra 3を微細化し、CPUコアをアーキテクチャ強化、メモリ帯域を倍増、GPUコアを6倍にして、内部バスアーキテクチャを変えたバージョンだ。
プロセス技術はTegra 3のTSMC 40nm LPGプロセスから、TSMC 28nmプロセス(28nm HPLと見られる)へと微細化した。40nmから28nmで60%台のエリアシュリンクを見込めほか、High-k/Metal Gate(HKMG)になったことでゲートリーク電流(Leakage)の低減も期待できる。アクティブ電力もある程度は減るが、現在のプロセス微細化の常として、駆動電圧は微細化に見合うほどスケールしないため、ピーク電力と、ピーク時の電力密度は上昇するだろう。
アーキテクチャ的には、Tegra4には、大きく飛躍した部分と、旧来に留まった部分が入り交じっている。
CPUコアはCortex-A9からCortex-A15に代わり、現時点ではクアッドコアCortex-A15のトップランナーとなっている。また、ローパワー最適化されたCortex-A15も1コア載せており、負荷に応じて切り替える「4+1」構成となっている。CPUコアの構成は同じだが、アーキテクチャが変わり、命令並列度が向上し、同クロック時でも性能が大きく上がった。また、このCPUアーキテクチャチェンジは、4+1の省電力機能にも大きな影響を与えている可能性がある。Cortex-A15では4コア以上の数のコアの間で、メモリコヒーレンシを取ることができるからだ。
GPUコアのアーキテクチャは、Tegra 2以来続いているGeForce 7(G70)系の拡張版がTegra 4でも継続される。Tegra 3より拡張はされるものの、NVIDIAのCUDAプログラミングモデルに沿ったコア(例えばG80系コア)ではなく、ユニファイドシェーダでもない。理由は、現時点ではモバイルSoCは激しいグラフィックス性能競争の最中にあり、余計なトランジスタを汎用コンピューティングのサポートのために使う余裕がないためだ。できるだけ多くのシェーダを載せるために、NVIDIAはGPUアーキテクチャの変革を据え置いた。
GPUコアは従来のTegra 3が、Vertex Shaderが1ユニットで4 ALU(Arithmetic Logic Unit,演算ユニット)、Pixel Shaderが2ユニットで8 ALUの構成だった。合計で12 ALUを、12「コア」と説明していた。今回のTegra 4では、72コアで、Vertex Shaderが24 ALU、Pixel Shaderが48 ALUの構成だとNVIDIAは説明する。それぞれVec4のはずなので、Vertex Shaderが6ユニットでPixel Shaderが12ユニットの構成となる。
ちはみに、NVIDIAはTegra 4のダイイメージとして、5個のCPUコアの周りに、きれいに72個のGPU「コア」が並ぶ写真を公開したが、もちろんこのGPUコアはイメージに過ぎない。CPUコアの配置も、前回のTegra 3の写真は実物とは異なっていたため、今回も疑問符がつく。
メモリ帯域はTegra 3の2~4倍
従来のTegra 3の弱点の1つはメモリインターフェイスで、x32(シングルチャネル)でLPDDR2とDDR3系のサポートだった。狭いメモリインターフェイスを、DDR3系のサポートで補っていた。それに対してTegra 4では、x64(デュアルチャネル)のインターフェイスとなり、LPDDR3のサポートが加わることで、待機電力を妥協することなく12.8GB/sec以上のメモリ帯域を確保することが可能になった。地味なようだが、実は、このメモリ帯域倍増は、Tegra 4のさまざまな機能を支えるカギとなっている。
内部バスは一新され、最大の特長としてイメージセンサーからの入力データは、ロー(生)データのまま、メモリにストアされるようになった。CPUコアやGPUコアだけでなく、センサーとイメージシグナルプロセッサ(ISP)もメモリチャネルへのクロスバースイッチに接続されているという。そのため、ハイダイナミックレンジセンサーから入力したデータを、そのままのフォーマットで取りこんで、その後、GPUコアも使ってトーンマッピングなどの処理を行なう「コンピュテーショナルフォトグラフィ(Computational Photography)」が可能になった。Aptina ImagingやOmniVisionといった、ハイダイナミックレンジセンサーベンダーと協力しているという。もちろんこれは、ハイダイナミックレンジのイメージングが必要となる車載(Automotive)市場への展開も睨んだ機能だ。また、出力では4Kディスプレイへの出力も可能になった。
こうしてざっと概観すると、Tegra 4は、現状の28nmプロセスで、NVIDIAがやれることを並べたプロセッサになっていることがわかる。グラフィックスパフォーマンスをぐいぐい伸ばすライバル達に対抗するため、アーキテクチャはほぼ据え置いたままALU数を6倍に増やした。そのため、Tegra 3では、CPUコアの強化に偏っていたのが、Tegra 4では一気にGPUコアの強化へと傾いた。
結果として、これまで度々指摘されていた、「GPUメーカーのチップなのにグラフィックスがそれほど強くない」というTegraのイメージを覆す、生のグラフィックスパフォーマンスの高いSoCとなった。
だが、その反面、GPUアーキテクチャの進化は見送られた。
今回のTegra 4では見送られたCUDAサポートコア
Tegra 4の概要を、GPUコアサイドから、より詳しく見ると、このチップの性格が鮮明となる。もともと、NVIDIAはTegra 4に当たる世代では、CUDAプログラミングモデルに沿ったGPUコアを載せることを示唆していた。しかし、NVIDIAは汎用性の高いGPUコアではなく、従来のグラフィックス向けの色が濃いGPUコアを継続する道を選んだ
NVIDIAのJen-Hsun Huang(ジェンセン・フアン)氏(Co-founder, President and CEO)は、CES期間中に開催されたプレスミーティングで、その理由を次のように説明した。
「CUDAをモバイルプロセッサに持って来るのは、我々がその機能を実際のチップに載せることができるようになったタイミングとなる。なぜなら、CUDAは多くのコンピュテーション機能を要求するからだ。単に、OpenGL ESをサポートするだけのGPUコアよりも、ずっと多くのトランジスタを必要とする。そのため、我々はCUDAをモバイルチップにもたらすのは、CUDAが価値を産むことが明らかになった時にしようと決めた。そして、その時は、そんなに遠くないだろう。私自身は、CUDAがTegraにできるだけ早く載ることを期待している」。
つまり、CUDAに沿ったGPUコアは、グラフィックスフォーカスのGPUコアよりもトランジスタを必要とするため、CUDAが競争上の大きな付加価値となるまでは、Tegraに載せることを据え置いたという説明だ。これは、現在のモバイルSoCの状況を見ると、非常によくわかる。
現状では、まだモバイルでのGPUコンピューティングの機は熟しておらず、その反面、ディスプレイ高解像度化とメモリ帯域の拡大によるグラフィックス性能競争が激化している。実際には、先頭を行くAppleががむしゃらに業界を牽引しているのだが、そのために、グラフィックス性能が第一に必要となっている。NVIDIAとしては、この時点では、CUDAより生グラフィックスパフォーマンスの拡張が急務と判断するのは当然だろう。
AppleのモンスターA6Xに対抗する
対Appleが苦しい戦いであることがわかるのは、NVIDIAの今回のCESのプレスカンファレンスでのプレゼンテーション内容だ。Tegra 4のパフォーマンス優位性について説明する際に、NVIDIAは、主にCPUでのパフォーマンス差を説明し、グラフィックス単体の性能比較は避けた。これは、生のシェーダパフォーマンスではライバルに対して不利になるケースが生じるためだと見られる。
アーキテクチャ上だけで比較すると、AppleのiPad(4)のA6XのPowerVR SGX554MP4は、Imagination Technologiesの発表によると各コアが8パイプの構成となっている。現在のPowerVR Series5 XTでは、各パイプが4 ALUなので、コア当たり32 ALU構成。A6XのクアッドGPUコアでは合計で128 ALUという贅沢な構成となっている。Tegra 4の72 APUより77%ほどALUが多く、しかもSGXアーキテクチャはユニファイドシェーダでフレキシビリティも高い。
Appleの場合、自社製品に載せるだけなので、チップのダイサイズを大きくしても構わない(A6Xは123平方mm程度)という事情があり、32nmでこれだけの規模のGPUにすることができた。AppleのGPUコア拡張のペースは異常で、ほぼ1年置きに、シェーダALUの数を2倍または4倍にしてきた。ダイサイズもどんどん大型化している。
しかし、チップを外販するNVIDIAには、ダイを一定以下に留めなければならないという制約がある。Tegra 4のダイサイズは、28nmで100平方mmを大きく切ると推定される。ちなみに、Tegra 3は40nmで81.9平方mmだった。NVIDIAは、Appleの8割か、それ以下のダイサイズで性能競争を行なわなければならない。初めからハンディキャップを背負った戦いとなっている。
しかし、Tegra 4世代では、微細化でGPUコアを大幅に増やすチャンスが産まれた。Tegra 4では、CPUコアは大型化するが、それを差し引いても、28nmへの微細化でほかのデコーダやエンコーダなどのモジュールは小型化するためダイエリアがかなり空く。それを、全てグラフィックスに割いたのがTegra 4の72 ALU GPUコアだと見られる。
電力を犠牲にしたG80系コアはTegraには不向き
では、CUDAの実装はどの程度、NVIDIAにとって重荷なのか。デスクトップGPUでも、G70系アーキテクチャから、CUDAベースのGeForce 8800(G80)アーキテクチャへの移行では、トランジスタ当たりのALUの数がぐっと落ちた。G70とG80は、実際には積和算ユニットの数は変わらないのに、トランジスタ数は約2倍に膨れ上がっている。これだけを見ると、同じプロセス技術チップに載せることができるALUの数は、CUDAになると半減してしまうことになる。
この問題を解決するため、NVIDIAはG80では、プロセッサのパイプライン段数を2倍に深くした。それによって、GPUのALUを倍速で駆動し、パフォーマンスを稼いだ。つまり相対的にエリア当たりのパフォーマンスを高めるアーキテクチャを取った。トレードオフは消費電力で、パイプラインを深めたことで電力効率は悪化した。そのため、NVIDIAはKepler世代では、再びパイプライン段数を元に戻して消費電力に最適化した設計とした。
こうした経緯を見ると、G70を改良してTegra 2に持ってきた時とは異なり、G80アーキテクチャをTegraに持って来ることは現実的とは言えない。モバイルSoCであるTegraでは、電力効率が最優先課題だからだ。G80系のパプライン段数を減らせばいいかというと、そう簡単でもない。パイプライン段数は、レイテンシ隠蔽とそれに連携するマルチスレッディングやスレッドスケジューリングに密接に関係しており、その変更は、GPUアーキテクチャの根幹に大きな影響を与えるからだ。
実際には、電力効率だけを見るなら、現在のKepler型アーキテクチャの方がモバイルには持って行き易い。G80からFermiまで、NVIDIAアーキテクチャでGPUダイの大きな部分を占めていたスケジューリングユニットもKeplerでは減っている。こうした要素を考えると、NVIDIAは、Tegra向けCUDAコアでは、単純なG80ベースではなく、別なアーキテクチャを開発している可能性が高い。