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

NVIDIAが“Ampereアーキテクチャ”のモンスター級GPU「A100」を発表

7nmプロセスのハイエンドGPU

NVIDIA A100の概要

 NVIDIAは、次世代の「Ampere(アンペア)」アーキテクチャのハイエンドGPU「NVIDIA A100」を発表した。

 NVIDIA A100はTSMCの7nmプロセスのハイエンドGPUで、ダイサイズは826平方mmとVoltaとほぼ同等の最大サイズ、トランジスタ数は540億とVoltaの2倍以上、DRAMはHBM2でメモリインターフェイスは6,144bit、6個のHBMスタックをGPUに接続する。メモリ帯域は1.6TB/sで、メモリ容量は40GB。現状では、一般的な商用チップとしては最大規模のモンスターだ。

 NVIDIAは、オンライン開催となった同社主催のGPUコンピューティングカンファレンス「GTC(GPU Technology Conference) 2020」の基調講演を、5月14日にオンラインで公開。同社を率いるJensen Huang(ジェンスン・フアン)氏(Founder and CEO)が、スピーチのなかで、Ampereの概要を発表した。

 NVIDIAは、ハイエンドGPUについてはGPUコンピューティングフォーカスで設計するが、グラフィックス市場にも投入する。今回も、同ダイのグラフィックス製品が登場する見込みだが、GTCで発表されたのはデータセンター向けのGPUコンピューティング製品だ。

 現行のGPUでは最大規模のNVIDIA A100は、演算性能も飛び抜けている。同社のGPUのプロセッサクラスタであるSM(Streaming Multiprocessor)数は製品として有効にされているのが108個。108個のSMで、ベクタ演算ユニット部はFP32(32-bit浮動小数点演算) CUDAコアが6,912、FP64(64-bit浮動小数点演算) CUDAコアが半分の3,456、演算性能はFP64で9.7TFLOPS、FP32で19.5 TFLOPS。動作周波数はピークが1.4GHzと推定される。

NVIDIA A100
【表】NVIDIA A100のスペック
トランジスタ数540億
ダイサイズ826平方mm
FP64 CUDAコア3,456
FP32 CUDAコア6,912
Tensorコア432
ストリーミングプロセッサ数108
FP64演算性能9.7TFLOPS
FP64テンサーコア19.5TFLOPS
FP3219.5 TFLOPS
TF32テンサーコア156TFLOPS/312TFLOPS
BFLOAT16テンサーコア312TFLOPS/624TFLOPS
FP16テンサーコア312TFLOPS/624TFLOPS
INT8テンサーコア624TOPS/1,248TOPS
INT4テンサーコア1,248TOPS/2,496TOPS
GPUメモリ40GB
GPUメモリ帯域幅1.6 TB/s
インターコネクトNVLink 600GB/s
ホストとの接続バスPCIe Gen4 64GB/s
マルチインスタンスGPUVarious Instance sizes with up to 7MIGs @5GB
フォームファクタ4/8 SXM GPUs in HGX A100
最大電力400W (SXM)

テンサー演算ユニットを大幅に拡張

 NVIDIA GPUは、Volta以降はディープラーニング向けのテンサー演算ユニット「テンサーコア(Tensor Core)」を搭載している。GPUは本質的にはベクタ演算プロセッサだが、テンサー演算プロセッサを組み合わせたハイブリッド構成とすることで、ディープラーニングの性能を飛躍させた。Ampereアーキテクチャも、その延長にある。

 NVIDIA A100のテンサーコア数は432で、各SMごとに4コアの配置となる。各SMに8コアだったVoltaと比べてテンサーコア数が減っているように見えるが、これはテンサーコアの数え方が変わったためだ。Voltaでは各SMのプロセッシングブロックごとに16×16のテンサー演算ユニットが2個とカウントしていたが、Ampereでは16x32のユニットとしてカウントされている。

 Ampereでは、テンサーコアが大幅に拡張された。まず、データ精度では、新たに「BFloat16」と「Tensor Float32」の2つの新データフォーマットがサポートされた。BFloat16(Brain Floating Point 16)は、ニューラルネットワーク用途を前提として提案された新しい浮動小数点数のフォーマットだ。プロセッサ業界全体で採用が進んでいる。

 従来のIEEE 754の浮動小数点は、FP32(32-bit 単精度浮動小数点数)が、符号部(Sign) 1-bit、指数部(Exponent) 8-bit、仮数部(Mantissa) 23-bitで構成されている。

 それに対して、FP16(16-bit 浮動小数点数)では、符号部(Sign) 1-bit、指数部(Exponent) 5-bit、仮数部(Mantissa) 10-bit。bfloat16(BF16)では符号部(Sign) 1-bit、指数部(Exponent) 8-bit、仮数部(Mantissa) 7-bit。

 データサイズはFP16と同等ながら、ダイナミックレンジはFP32と同等で、仮数部のデータ精度を削った。ダイナミックレンジが重要となるニューラルネットワークに適したフォーマットだ。

TF32フォーマットをサポートするAmpereのテンサーコア
Ampereのテンサー演算ユニットテンサーコアでは、新たにBFloat16とTensor Float32の2つの新データフォーマットをサポート

 一方、Tensor Float32(TF32)は、符号部(Sign) 1-bit、指数部(Exponent) 8-bit、仮数部(Mantissa) 10-bit。19-bit長で、ダイナミックレンジはFP32と同等だが、仮数部のデータ精度はFP16と同等。FP32のダイナミックレンジを持ち込みながら、FP16の精度を保つ新しいフォーマットとなっている。

 Ampereのテンサーコアは、FP16以外にBF16、TF32、Int8、Int4、FP64と幅広くサポートする。TF32は、ディープラーニングのトレーニングを主眼とした拡張で、TF32の導入によってトレーニング性能が大きく伸びる。

スパースネットワークをハードウェアでサポートするAmpereのテンサーコア

 加えて、Ampereのテンサーコアは、ディープラーニングのインファレンス処理での電力効率向上の鍵となる「プルーニング(Pruning: 剪定)」にハードウェアで対応した。プルーニングされたスパース(sparse)ネットワークを、効率よく実行するハードウェアを備える。

 Ampereではスパースネットワークの実行時には、性能が最大2倍になるという。スパース対応は、ディープラーニングのインファレンス(推論)のための拡張で、これによってAmpereではインファレンスの性能が倍増する。

トレーニングとインファレンスの両方の性能を伸ばす

 SM数の増加、新データフォーマットの導入、スパース対応の制御の導入によって、Ampereアーキテクチャではディープラーニングの性能は大きく伸びた。テンサーコアのBF16とFP16の性能は、通常時に312TFLOPSで、スパース時に2倍の624TFLOPS。TF32の性能は通常時に156TFLOPSで、スパース時に312TFLOPS。INT8整数演算での性能は624TOPS、スパースで1,248TOPSとなっている。

Volta V100との性能比較ではV100のFP32性能に対して、A100のスパースTF32の性能はピークで20倍近くの計算となる。INT8の比較では、V100に対してA100はスパースInt8で約20倍

 Voltaアーキテクチャでは、インファレンスは弱かったのが、Ampereではトレーニングとインファレンスの両方が強化された。ディープラーニングのトレーニングでもインファレンスでも速いGPUがA100だ。

 NVIDIAは、過去2年のディープラーニング界の自然言語認識ブームの火付けとなったニューラルネットワーク「BERT」のアクセラレーションを性能比較として示した。Volta V100に対してAmpere A100は、BERTのトレーニングでの6倍、BERTのインファレンスで7倍の性能となるという。

自然言語認識ニューラルネットワーク「BERT」のトレーニングでVolta V100の6倍、BERTのインファレンスで7倍の性能

 さらに、AmpereではテンサーコアでFP64もサポートした。ベクタ部のFP64は9.7TFLOPSだが、テンサー部のFP64は19.5TFLOPSと、FP16のベクタ演算と同等の性能を達成する。こちらは、科学技術系のアプリケーションを意識した拡張と見られる。ディープラーニングアクセラレータに対して、GPUは汎用性がポイントで、Ampereでは科学技術系で重要となるFP64のサポートで、汎用的なコンピューティングも強化されている。

 このほか、Ampereアーキテクチャでは、GPUチップ内のリソースを分割して異なるインスタンスを並列に走らせるマルチインスタンスに対応する。最大7インスタンスまでを1チップのなかで走らせることができる。

 NVIDIA GPUはこれまで大きなワークロードにチップ全体で対応することにフォーカスして来た。しかし、AmpereではAMD GPUと同様に、より粒度の小さなタスクを並列化する方向にも舵を切った。

GPUチップ内のリソースを分割して異なるインスタンスを並列に走らせるマルチインスタンスに対応。最大7つまでのインスタンスを1個のAmpere GPUのなかで並列に走らせることができる

GPUコンピューティングシステムDGXを発売

 ディープラーニングでは、ニューラルネットワークのサイズはどんどん大きくなっており、GPUにはスケールアップが求められる。NVIDIAでは、こうした状況に対応してGPUにチップ間インターコネクト「NVLink」を実装。GPU同士のダイレクトな接続を実現して来た。

 NVLinkはVoltaアーキテクチャの「Tesla V100(GV100)」では、チップトータルの帯域はピーク300GB/sだった。AmpereアーキテクチャのA100では、NVLinkのトータル帯域は倍のピーク600GB/sとなる。

 NVIDIAはA100をGPUコンピューティングシステム「DGX」シリーズで提供する。Ampereベースの「DGX A100」は、8個のNVIDIA A100 GPUと、2個の64コアAMD Rome CPU、それにNVLinkのスイッチであるNVSwitchが6個の構成となっている。システム全体の性能は、FP16で5 PFLOPSに登る。価格は199,000ドルだ。

8個のGPUを搭載するGPUコンピューティングシステム「DGX A100」
CPUにはAMDのRomeを採用
5 PFLOPSがワンノードに収まったDGX A100
DGX A100の価格は199,000ドル

 また、NVIDIAはAmpereアーキテクチャを、エッジ向けのAIプラットフォームボード「NVIDIA EGX A100」としても提供する。急速に高性能が求められているエッジサイドのディープラーニングをターゲットとした製品だ。

NVIDIA EGX A100
NVIDIA EGX A100を使ったロボティック工場

 GPUのプロセス更新レースではAMDに遅れを取ったNVIDIA。同社は、当初ウワサされていたSamsung 7nmではなく、TSMCの7nmプロセスに載せたGPUを投入してきた。ワンショットの限界のダイサイズで、コストは高いが性能も飛躍する。NVIDIAは、Ampereアーキテクチャで、ディープラーニングアクセラレータと戦うことになる。