TPU v3の鍵となる改良点
TPU v2のところで掲げた鍵となる目標を振り返ってみると、TPU v3では、ハードとソフトのコデザインでハードウェアを簡素化し、ソフトウェアの動作の予測性を高めた。TPUでは、スーパスカラやキャッシュのように状況によって動作が変わる機構を使わず、VLIWやスクラッチパッドメモリを使って同一シーケンスで処理が行なわれる構造を使っている。
この設計目標の達成に大きく貢献したのは、第1にbfloat16を使ったシストリックアレイの採用でコンピュート密度を高めたこと。第2にHBMによって計算のためのデータを高速で供給できるようにしたこと。第3にXLAコンパイラの最適化でハードウェアをうまく利用できるようにしたことである。
さらに、短期間で開発できたのは、システムファーストのアプローチをとったことと、なじみのあるインタフェースを使うインタコネクトを使ったことが効いている。
新規の問題への対応という点では、線形代数問題を解くフレキシブルなデータコアの実現と、XLAコンパイラ、HBMの大容量化が威力を発揮した。
そして、設計面では効率の高いマトリクスユニットを使ったこと。設計を単純化したこと。高性能の設計で性能/$を高めたことが効果をあげている。
TPU v2、v3はマシンラーニング用のスパコン
システム設計の面では、TPU v1はシングルチップのコプロセサであった。また、実際のアプリケーションに使っているモデルの学習を行うには、1個のTPU v2チップでは60~400日かかってしまう。このような膨大な学習を実用的な時間で行うには、多数のTPU v2、v3チップを使う大規模なスパコンを作ることが求められた。
TPUでの学習ポッドのアーキテクチャは、次の図のように、1枚のボードに4個のTPUを搭載し、そのボードを2次元トーラス接続して大規模アレイを作っている。そして、スパコン側はTop of the Rack(TOR)のスイッチにホストCPUを接続し、各ホストからPCI Express経由でTPUボードを接続している。このホストとTPUボードを接続するネットワークはそれぞれ独立で、同期式の並列トレーニングができるようになっている。
次の図の左側の2本のラックでできているのはTPU v2の256チップのスパコンである。このシステムは64枚のTPU v2ボードで作られている。
写真の右側の8ラックのシステムはTPU v3の1024チップのスパコンで、ボード当たりのTPU個数は4個で、256枚のTPU v3ボードで作られている。右下の写真に見られるように、TPU v3では4個のチップには水冷のヒートシンクが付けられている。
ラック当たりのTPUの個数はv2もv3も128個で変わりはないが、v3はピーク演算性能が2.6倍に上がっており、電力密度が高くなっているので水冷としたのかもしれない。
TPU v2×256個のスパコンはピーク演算性能は11.5PFlops、HBMの総容量は4TBとなっている。一方、TPU v3×1024個のスパコンのピーク性能は>100PFlopsでHBMの容量は32TBとなっている。これは同じ2ラック構成で比べると、>25PFlopsの演算性能となり、11.5PFlops×2.6倍=29.9PFlopsとそれほど矛盾しない性能記述である。
(次回は9月11日に掲載します)