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

NVIDIAの次世代アーキテクチャ「Kepler」と「Maxwell」の真実



●キーノートスピーチで2世代後までのGPUコードネームを公開
Jen-Hsun Huang氏

 NVIDIAは2011年遅くに28nmプロセスの次世代GPUアーキテクチャ「Kepler(ケプラー)を、2013年に20nmと推定されるプロセスの次々世代GPU「Maxwell(マクスウェル)」を投入する。NVIDIAは、世代毎に倍精度(64-bit)浮動小数点(FP)の電力当たりの持続(sustain)パフォーマンスを3〜4倍に引き上げて行くという。また、演算パフォーマンスを引き上げるだけでなく、プリエンプションやバーチャルメモリ、GPUへのノンブロッキングなデータ転送などのフィーチャも組み込んで行くという。また、各世代の間に、中間の改良バージョンが登場する。

 先週米サンノゼで開催されたNVIDIAのGPUコンピューティング技術カンファレンス「GTC(GPU Technology Conference)」で、NVIDIAはこうした2世代先までのロードマップを明らかにした。下はGTCの基調講演で、同社のJen-Hsun Huang(ジェンセン・フアン)氏(Co-founder, President and CEO)氏が明らかにしたロードマップスライドだ。コードネームと相対性能だけの単純な公開だが、さまざまなことが示唆されている。ただし、この図を、単純なGPU性能の図として読むことはできない。注意すべきポイントがいくつもある。

GTC2010の基調講演でのスライド

 まず、このパフォーマンスの指標は、グラフィックス処理で使う単精度演算ではなく、GPUコンピューティングで重要となる倍精度演算の数字だ。また、パフォーマンスそのものではなく、電力当たりで、しかもピーク性能ではなく、持続(sustain)性能だとHuang氏は説明している。また、製品としてのスペックではなく、アーキテクチャ上の数値の可能性がある(スピーチの中でHuang氏が引用した数字の一部は理論上のスペックだった)。つまり、このスライドがNVIDIAが示そうとしているのは、NVIDIA GPUのGPUコンピューティングの実効性能効率のアーキテクチャ上の数値だと推定される。

 そのため、GPUのグラフィックス性能をこの図から読み取ることはできない。また、図の比率自体もおかしな部分がある。まず、倍精度の持続性能とすると、スライドのTesla(テスラ)とFermi(フェルミ)の両アーキテクチャの比率はもっと開いているはずで、明らかにおかしい。NVIDIAもそれに気づいたようで、スピーチの最中から、スピーチの後のプレスブリーフィングやインタビューを通じて、数字が上へと変化している。従って、スライドの数字自体は、あまり重視すべきではない。

●倍精度の持続性能の電力効率にフォーカス

 では、スライドからNVIDIAの次世代アーキテクチャの何がわかるのか。まず、GPUコンピューティング面では、NVIDIAは倍精度演算の実効性能にフォーカスしていること。2年毎のプロセス技術の発展に従って、アーキテクチャを革新しようとしていること。そして、NVIDIAが半導体プロセスの進歩以上のスピードとなる3〜4倍/2年のペースで、GPUのパフォーマンス効率を上げて行こうとしていること。

 GPUは、かつては2倍/年の公称パフォーマンスアップを謳っていたので、大風呂敷も珍しくはない。しかし、今回はGPUコンピューティング向けのカンファレンス。相手は研究者や開発者で、マーケティングメッセージが通じる世界ではない。数字の裏付けが必要だ。

 プロセス技術上で得られるパフォーマンスアップは2年で理論値2倍(トランジスタ数の増加がリニアにパフォーマンスに置き換えられるとして)。そのため、NVIDIAはアーキテクチャや回路設計の改良で世代毎に1.5〜2倍のGPUコンピューティングのパフォーマンス効率のアップを図ろうとしていることになる。これはかなり野心的な比率に見えるが、NVIDIAには、それなりの目算があると見られる。

 ポイントは、比較の指標が、“倍精度”浮動小数点(FP)演算の“持続性能”あたりの“電力”であること。つまり、NVIDIAは倍精度性能を相対的に上げ、持続性能をピーク性能に近づけ、性能当たりの電力低減を図ることで、パフォーマンスカーブを上げることができる。

 例えば、倍精度演算時の制約を減らし、倍精度演算性能の単精度演算性能に対する比率を上げるだけでも、倍精度の持続性能はかなりアップできる。現在のFermiでは、倍精度演算は単精度の2分の1のピーク性能となっている。ただし、倍精度をアップする前提としては、パフォーマンスアップを支えられるだけの、メモリ帯域や内部バス帯域が得られることが必須となる。NVIDIAはシリコン貫通ビア(TSV:Through Silicon Via)技術によるメモリダイ積層化などを研究しており、Maxwellまでにブレイクスルーを得られると予測していると見られる。また、内部バスについても研究していることを示唆している。

GTF100のStreaming Multiprocessorのしくみ
PDF版はこちら

●実効性能を引き上げる余地があるFermiアーキテクチャ

 実効性能をピーク性能に近づけることでも、スライドにあった性能をアップできる。GPU内部のリソースの拡充や、内部命令スケジューリングの改良で、持続性能の向上を図ると見られる。現在のFermiは倍精度演算命令を発行する際には他の命令を発行できないというスケジューリング上の制約がある。内部バス帯域の拡張によって、これが外れれば、実効性能がアップする。

FermiのWarpスケジュール
PDF版はこちら

 NVIDIAは、Fermi世代からパワーゲーティングを実装しており、省電力機能も向上させつつあるため、省電力化による平均の性能効率の向上も見込むことができる。物理設計上でも、最適な駆動電圧Vddとしきい電圧Vthのトランジスタを、適所に使うことで、電力当たりのパフォーマンスをアップできる。これらは、IntelやAMDがやっていることと同じだ。

 また、GPU外とのデータ転送の高速化による、オーバーオールの性能の向上も見込むことができる。NVIDIAは、GPU間のデータ転送やストレージからの転送の際にシステムメモリを経由しない方法を採用する。また、CPUとGPU間でバーチャルメモリ空間を共有することで、データ構造の再構築を行なわずにデータ転送を容易にできる仕組みを提供する(物理的にはデータ転送を行なうが、プログラムからは隠蔽する)。

 下のスライドはGTCでUniversitat Politecnica de CatalunyaとUniveristy of Illinoisが行なった試験的なシェアードバーチャルメモリの実装の概念図だ。

試験的なシェアードバーチャルメモリの実装概念図

 似たようなことはIntelも言っている。Intelは、CPU側と、消えたLarrabeeとの間を、シェアードバーチャルメモリで仮想的に共有することを計画していた。下はIntelのスライドだ。

Larrabeeのシェアードバーチャルメモリのスライド

 つまり、プログラム面で使いやすくすることで、性能指標には見えない部分での使いやすさのアップも図る。

 NVIDIAは、こうしたさまざまなテクニックを集めることで、Maxwellまでのパフォーマンスアップを図ると見られる。また、GPUコンピューティングへのさらなる最適化を示唆するこのパフォーマンスアップは、今後のNVIDIA GPUでFermi世代に見られるようなアーキテクチャの分化が進むことを示唆している。つまり、トップエンドのGPUはGPUコンピューティングに最適化し、下位のGPUはプログラミングモデル上の一貫性を堅持しつつ、グラフィックスに最適化するという棲み分けだ。

 NVIDIA GPUのベースアーキテクチャでは、こうした作り分けに対応できる柔軟性を持っている。とはいえ、こうした指向性を持つNVIDIAにとっては、グラフィックスが、よりコンピュテーションインテンシブになった方がアーキテクチャ上有利なことも確かだ。そのため、グラフィックスでは、NVIDIAは既存グラフィックスパイプラインに、フィジックスやレイトレーシングといった要素を組み合わせて行く、NVIDIAの言うハイブリッドグラフィックスへと傾斜を強めて行くと推測される。

●プロセス技術のビートに沿ってアーキテクチャを改革

 NVIDIAは、現在は半導体ファウンドリ大手のTSMCに主要製品の製造を委託している。TSMCは、現在、2年おきにプロセス技術を刷新しており、40nmプロセスの次に28nmプロセスを立ち上げつつある。プロセスノードの数字は、Intelとはちょうど半世代ずれている。GPU製品の製造を狙うGLOBALFOUNDRIESも、バルクプロセスについては、ほぼ同じペースでいる。NVIDIAのロードマップは、これら大手ファウンドリのロードマップに沿っている。NVIDIAを率いるHuang氏は次のように説明する。

 「基本的なサイクルは、(ファウンドリ側の)プロセス技術の進歩と歩調を合わせなければならない。メジャープロセス技術ノードに移行しなければ、我々はアーキテクチャを根本的に変えるために必要なトランジスタ数を得ることが難しいからだ。現在は、2年おきに新しいプロセスノードになるので、我々もそれに合わせている。もし、プロセスノードが18カ月おきに変わるなら、我々も18カ月置きにアーキテクチャを変えていただろう。我々は、TSMCなどの最新プロセス技術ノードを使う最初の顧客の1つだ」。

 Huang氏によると、Keplerは28nmプロセスになるという。Maxwellについては公式には発表されていないが、順調に行けば20nmプロセスになるはずだ。明言しないということは、プロセスロードマップがそれだけ確実ではないことを示しているが、一応、目算では20nmとなる。

 ちなみに、20nm(または19nm)プロセスまでは、各ファウンドリともトランジスタ構造の基本的な改革(FinFETなど)を行なわないと見られている。つまり、ファブレス(半導体Fabを持たない)のNVIDIAにとって、今の時点で、予測が比較的容易な範囲は20nmまでとなる。それ以降は、さらにプロセス開発のハードルが高くなるため、予測が難しい。

 もっとも、20nmまでは予測が可能である反面、トランジスタ構造の改革による、低リーク電流(Leakage)化も見込めないことになる。FinFETなど3Dトランジスタ構造を採用すれば、リーク電流を大幅に下げることも可能になるからだ。プロセス技術の面でも、パフォーマンス効率をアップできる要素が増える。しかし、Maxwellまでは、プロセス技術側では、電力効率を大きく上げる要素が少ない。

●トランジスタ数は理論上は世代間で倍々に

 トランジスタ数は、現在の40nmプロセスのGeForce GTX 480(GF100)/Tesla C2070で32億(3.2B)。今後のGPUは、同じダイサイズなら28nmのKeplerが計算上は60億(6B)トランジスタ程度、Maxwellを20nmと推測すると120億(12B)程度となる。各半導体メーカーともに、プロセスノードの指標をトランジスタ密度などで図ってるため、トランジスタ数の増加は推測が比較的容易だ。

 Fermiと同じプロセッサ/トランジスタ数比と仮定すると、Keplerなら浮動小数点演算ユニット「CUDAコア」を1,000個、Maxwellなら2,000個搭載できる計算になる。ただし、40nmでは配線密度が上がったため、回路設計上の冗長性が減り、そのため、Fermiではチップ歩留まり向上のためにStreaming Multiprocessor(SM)を1〜2個無効にせざるを得なかった。この問題を軽減するために、プロセッサ数を減らす可能性もあるが、理論値では倍々となる。

GPUのトランジスタ数の推移
PDF版はこちら

 ちなみに、NVIDIAは各プロセスノードの間に、中間世代の拡張版アーキテクチャも出す。「各世代の間に、我々は、よくアーキテクチャの世代の中間となるキッカー(市場を刺激する製品)を投入する。マイクロアーキテクチャに何らかの拡張を加えたもので、近い将来、来年には、Fermiから産まれたキッカーを見るだろう。Keplerの後にはKeplerのキッカーが出るだろう。Maxwellでも同様だ」(Huang氏)。

 従来、GPUベンダーはファウンドリのハーフノードプロセスで、ダイ当たりのトランジスタ数を約40%増やして、キッカーを製品化してきた。90nmに対して80nm、65nmに対して55nmといった具合だ。しかし、55nmから後は、ファウンドリはハーフノードを用意しなくなったため、NVIDIAはプロセス微細化なしでキッカーを設計しなければならない。この事情は、キッカー「Northern Islands」ファミリを投入するAMDも同様だ。NVIDIA、AMDともに、キッカーでは、プロセス微細化がないため、アーキテクチャ上の工夫をしなければパフォーマンスアップは得られない。

●Maxwellのパフォーマンス効率はTeslaの約40倍前後

 NVIDIAは、世代毎に3〜4倍の(倍精度FP、継続)パフォーマンス(/電力)を見込んでいる。スライドでも、Fermi以降は約3〜4倍ずつ上がるチャートとなっている。ただし、前世代のTeslaアーキテクチャと現世代のFermiのパフォーマンス比は、スライドと、その後のGTC期間中の説明でずれている。

 キーノートスピーチでは、Jen-Hsun Huang氏は次のように説明していた。「パフォーマンスについては、Fermiは約1.5 DP GFLOPS/Wだ。Keplerでは、Fermiと比べてパフォーマンス/ワットでは3〜4倍の間のどこかになると予想している」「Maxwellは、昨年(2009年)のGTCから16倍の相対(性能)になるだろう。わずか数年で、我々はパラレルコンピューティングアプリのパフォーマンスを16倍に高めることができる」。

 ここでHuang氏が引用している約1.5 DP GFLOPS/Wは、Teslaブランドの製品版Fermiのスペックと推定される。製品版ではピーク515 DP GFLOPSなので、継続性能を66%と見積もると340GFLOPSで、ちょうどボード消費電力(225W)に対する比率は1.5 DP GFLOPS/Wになる。

 キーノートスピーチだけでは、各世代の相対性能の比率がわかりにくいが、その後のプレスカンファレンスとインタビューでHuang氏は次のように説明している。

 「Teslaに対してFermiは4倍、FermiとKeplerの間は3〜4倍、KeplerからMaxwellはさらに3〜4倍になる。MaxwellはTeslaに対して、約40倍になるはずだ」。

 つまり、各世代3〜4倍のDP Sustain GFLOPS/Wの向上を見込んでおり、Tesla-Fermiではすでに4倍の向上の実績があるというわけだ。キーノートスピーチで前年のGTCと言っているのはFermiとの比較ということになる。Teslaアーキテクチャに倍精度演算を加えたGT200では、倍精度のピーク性能は77.76GFLOPS(Teslaブランド製品の場合)。FermiアーキテクチャのTeslaブランド製品の1/4のDP GFLOPS/Wと説明しているということは、サステインパフォーマンスを約90%の70 DP GFLOPS/Wと見ていることになる。

 Huang氏の発言を見る限り、キーノートスピーチで示されたスライドは比率がおかしい。正しくは、下の図のようになるはずだ。KeplerはTeslaに対して12〜16倍、Maxwellは36〜最大64倍の間のどこかのパフォーマンスということになる。Huang氏がMaxwellについて約40倍と言っているのは、中間値を取っているからだろう。

 こうして図にすると、NVIDIAの計画が、ますます野心的なものであることが見えてくる。

NVIDIA GPUのパフォーマンスロードマップ
PDF版はこちら