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

NVIDIA次世代SoC「Xavier」は進化版DenverとVoltaを搭載

高性能GPUと同クラスのXavier SoC

 NVIDIAの、次世代SoC(System on a Chip)「Xavier(エグゼビア)」の姿が見えてきた。Xavierは、進化版Denver(デンバー)CPUコアと、次世代GPUアーキテクチャ「Volta(ヴォルタ)」コアを搭載する。Xavierは、次世代の車載コンピュータの中核となるSoCで、極めて高いパフォーマンスを誇る。その演算パフォーマンスから、Voltaが従来のNVIDIA GPUと異なる、よりディープラーニングに最適化したアーキテクチャとなる可能性も見えてきた。

ディープラーニングによるAIにフォーカスするNVIDIA

 NVIDIAは、東京で開催した技術カンファレンス「GTC JAPAN 2016」の基調講演の中で、Xavierを紹介した。Xavier自体は、前週に開催された「GTC Europe 2016」で発表されている。Xavierは、従来のTegra系と同じくARM CPUコアベースのSoCだ。しかし、これまでのTegraが、ハイエンドGPUと比較すると小さなダイだったのに対して、Xavierはかなり大型ダイのSoCになると見られる。

 モバイル向けSoCからスタートしたTegraは、NVIDIA自体のフォーカスがモバイルからオートモーティブに転じたことで、現在は車載コンピュータチップとしての色彩が濃くなった。しかし、現在のSoC「Parker(パーカー)」でも、全体の構成はハイエンドモバイルSoCとそれほど大きくは異ならない。それに対して、Xavierは、NVIDIAが車載AIスーパーコンピュータと呼ぶ、極めてパワフルなSoCとなっている。

70億トランジスタのSoCとなるXavier

 GTC Japanの基調講演で、NVIDIAのJen-Hsun Huang(ジェンセン・フアン)氏(Co-founder, President and CEO, NVIDIA)は、Xavierが70億(7Billion)トランジスタを搭載していることを明らかにした。70億というトランジスタ数は、NVIDIAのディスクリートGPUでは「GeForce GTX 1080(GP104)」の72億に匹敵する。高性能GPUクラスのトランジスタ数だ。SoCでは、AppleのiPhone 7に搭載されている「Apple A10 Fusion」の33億の2倍以上だ。

NVIDIAのJen-Hsun Huang(ジェンセン・フアン)氏(Co-founder, President and CEO, NVIDIA)

 Xavierは16nmプロセスで製造される。同じ16nmプロセスノードで製造されているGP104のダイは314平方mm、A10のダイは125平方mmなので、Xavierのダイは250平方mm以上になる可能性が高い。モバイルや組み込み向けのSoCは、従来は100平方mm以下のダイサイズが一般的で、AppleのA10の100平方mmを超えるサイズのチップは限られる。NVIDIAも、モバイルをメインターゲットとしていたTegra 4までは、ダイサイズを80平方mm台までに抑えていた。しかし、Xavierは、自動車市場での高性能プロセッサへの需要に対応するため、ダイを大型化するとみられる。

Denver CPUコアを進化させたカスタムコアを搭載

 Xavierは、8個のカスタムARMv8 CPUコア、512コアのVolta GPUコアを搭載する。また、デュアルの8K HDR対応のビデオプロセッサ、そして新設計のコンピュータビジョンアクセラレータを搭載する。性能は、ディープラーニングの「推論(inference:インファレンス)」で多用されるようになりつつあるINT8(8-bit整数)オペレーションで、20 TOPS(trillion operations per second)、CPUの整数演算では160 SPECINT。

1チップで、2個のSoCと2個のGPUを搭載したDrive PX2と同等以上の性能。ディープラーニング性能ではどちらも20TOPS

 NVIDIAは、自社独自のマイクロアーキテクチャのARMv8 CPUコア Denverを持っている。Denverは「Tegra K1(Logan)」の64-bit版に搭載され、最新のTegraである「Parker」にも搭載されている。Tegra K1ではデュアルコア、ParkerではDenverが2コアにCortex-A57が4コアのヘテロジニアスマルチコア構成となっている。ARMのbig.LITTLEに似た、高性能のDenverと、相対的に低電力のコアの組み合わせだ。ParkerのDenverコアは、マイクロアーキテクチャ的にはほぼ初代のDenverと同じだが、Denverの大きな特徴である動的な最適化が大幅に強化されているという。

 XavierのCPUコアも、あるNVIDIA関係者によるとDenverコアだという。「Denverは我々が開発した最初のARMコアだった。(XavierのCPUコアは)そのファミリツリーに連なるCPUコアだ。しかし、単なるDenverの再利用ではなく、多くの新機能が加えられている。Denverの拡張というより進化型のCPUコアだ」。

 8コアという構成からは、Xavierが高性能コアと低電力コアのヘテロジニアス構成を取っている可能性が高い。SPECINTの値を見る限り、それなりに高性能に振った構成となっている。

ディープラーニングパフォーマンスが異常に高いXavier

 Xavierの最大の謎は、ディープラーニング関連の性能だ。これが異常に高い。

 ディープラーニングは、大きく分けてニューラルネットワークモデルを構築する「トレーニング(training)」フェイズと、トレーニングの結果を使った認識を行なう「インファレンス(inference:推論)」フェイズがある。トレーニングは主にデータセンター側の処理だが、インファレンスは車載など端末側となるため、電力の制約が厳しい。そのため、現在は、インファレンスフェイズのデータ量を減らすために、INT8を使う流れになりつつある。

 NVIDIAは、この流れに対応していち早くインファレンスフェイズ側のGPUに、INT8の特殊なパイプラインを組み込んだ。具体的には、Tesla P4(Pascal GP104)に新命令「dp4a」を組み込んだ(上位のTesla P40(Pascal GP102)にも組み込まれている)。これは、8-bit整数のベクトル積和算命令だ。

新Tesla P4/40にはINT8アクセラレーションが加わっている

 NVIDIAのGPUレジスタは32-bit長だが、そこに8-bit整数のデータを4個格納する。2つのレジスタの4個ずつの8-bit整数値を乗算し、その結果のINT32(32-bit整数)を加算し、さらにもう1レジスタの値を加える。1命令で、4乗算と4加算の合計8演算を実行する、8演算/サイクルスループットの命令となっている。FP32(32-bit浮動小数点)では、積和算で2演算/サイクルスループットなので、INT8はFP32の4倍のスループットとなる。

分化しつつあるNVIDIA GPU
データセンター向けGPUにはFP16、クライアント側GPUにはINT8
NVIDIAのINT8 SIMDの実装

 NVIDIAはトレーニングフェイズ側の「Tesla P100(Pascal GP100)」などのGPUや、モバイル向けのGPUには、FP16(16-bit浮動小数点)を実装している。トレーニングフェイズ側でも、データ精度を下げたFP16の利用が進んでいるからだ。ただし、FP16は、ディープラーニングだけでなく、モバイルグラフィックスなどの用途も想定しているため、通常の加算や乗算、積和算をサポートする汎用的なものだ。それに対して、INT8の実装は、ディープラーニングのインファレンスに的を絞った実装となっている。

NVIDIAのFP16 SIMDの実装

 大きな枠で見ると、GPUはもともとは128-bitの4-way SIMD演算ユニットから出発した。しかし、GPUコンピューティングへと舵を切るに当たって、演算精度をFP32に統一してシンプル化することで、フロー制御などを簡略化した。ところが、ここへ来て、ディープラーニングなどの新要素のために、GPUは再び多精度対応へと転換し始めている。FP16もINT8も、32-bitのスカラパイプライン(実際にはSIMDだが、プレディケーションによって分岐をサポートする)の中で、SIMD制御を行なう。SIMDからSIMT(Single Instruction, Multiple Thread)へと転換したGPUが、再びSIMDを取り込み始めている。

ディープラーニングへの最適化がさらに進むVolta世代

 NVIDIAは、Xavierのディープラーニングの性能を20TOPSと発表している。これがINT8精度だとして、INT8サポートのNVIDIA GPUと比較するとTesla P4(GP104)の22TOPSに近い。Tesla P4は、2,560個のFP32演算ユニットを搭載し、ピーク1,063MHzで動作する。2,560コアが、それぞれ4-wayのINT8を実行することで、22TOPSをはじき出している。

 それに対してXavierのGPU部は512コア構成とされている。Tesla P4と比較するとコア数は約5分の1だ。XavierのGPUコアが、Tesla P4と似たようなINT8の実装で、1GHzで動作するとしたら、4TOPS程度にしかならない計算だ。そのため、XavierのINT8のアクセラレーションは、現在のPascalとは異なる実装となっている可能性が高い。

 想定の1つは、Volta世代のGPUのコアの構成自体が、従来のNVIDIAのFP32演算コアとは異なる可能性だ。1コアで4-wayのINT8を4並列で実行できるなら、1.2GHz動作で512コアのGPUで20TOPSを実現できる計算になる。もう1つの想定は、INT8に特化したアクセラレータを別枠で備える可能性だ。Xavierには、コンピュータビジョンアクセラレータも搭載されており、低精度に特化したエンジンが搭載されている可能性もある。

 いずれにせよ、明確なことは、Volta世代のGPUコア(と周辺ユニット?)が、ディープラーニングをターゲットに、さらに最適化されることだ。NVIDIAは、ターゲット市場を見定めると、それに対する最適化を急ピッチで進めるが、今回もFP16やINT8への対応が非常に速い。そして、Volta世代では、少なくともINT8への最適化がさらに進む。