Google は今週の Google I/O 2019 で、第 2 世代と第 3 世代の TPU チップを搭載した Cloud TPU (テンソル プロセッシング ユニット) ポッドが Google Cloud Platform でパブリック ベータ版として利用可能になったことを発表しました。
1,000 TPU を搭載したクラウド TPU ポッド
TPUは、Googleが機械学習ワークロード向けに開発したASICです。Googleが2016年に初めてTPUチップを発表した際、推論性能の面で大きな衝撃を与えました。このチップは、当時推論向けに最適化されていなかったNvidia Kepler GPUの最大30倍、Intel Haswell CPUの80倍の性能を示しました。2017年には、Googleは「Cloud TPU」と呼ばれる第2世代TPUを発表しました。この新しいチップは、推論(学習済みの機械学習ニューラルネットワークモデルの実行)だけでなく、トレーニングにも使用できるようになりました。
開発者は、1,000TPUのポッド全体、またはこのポッドの「スライス」にアクセスできるようになりました。以前はCloud TPUポッドは256個のCloud TPUをサポートしていましたが、Googleは複数のラックにまたがるトロイダルメッシュネットワークを構築し、TPUポッドに1,000個を超えるTPUを収容できるようになりました。開発者は、予算が限られている場合は、16コア(TPU 2個)という小さなポッドのスライスにアクセスすることもできます。
GoogleはI/Oイベントで、256個のCloud TPU v2スライスでImageNetデータを用いた標準的なResNet-50画像分類モデルを11.3分で学習できるのに対し、256個のCloud TPU v3スライスでは7.1分で学習できることを示しました。これらの数値によると、Cloud TPU v2はCloud TPU v2よりも60%遅いことがわかります。単一のTPUを使用した場合、同じモデルの学習には302分かかります。
パブリックベータ版にアクセスするための情報は、Google のブログ投稿で入手できます。
Google Cloud TPUの進化
Googleは発表当時、第2世代TPUが180テラフロップス(TFLOPS)の浮動小数点演算性能を達成できると発表しました。これは、FP16半精度演算においてNVIDIAの最新Tesla V100アクセラレータの6倍に相当します。Cloud TPUは、NVIDIAのTensor Coreの性能を50%上回ります。Googleは、Cloud TPUポッドをそれぞれ64個のTPUで設計し、合計ピーク性能は11.5ペタフロップスに達しました。
1年後の2018年、同社は420TFLOPSの性能を誇るTPUバージョン3を発表しました。また、256個のTPUを搭載し、100ペタFLOPSの性能を誇る、従来の8倍の性能を誇る新しい液冷ポッド構成も発表しました。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
GoogleはCloud TPUを直接販売しておらず(推論に最適化されたEdge TPUと呼ばれるバージョンのみを販売しています)、開発者にクラウド上でのアクセスを提供することで、開発者に自社の機械学習ハードウェアを購入してもらいたいと考えているNvidiaやIntelといった企業と競合しています。TPUは他の競合製品と比較してパフォーマンス/価格が優れている傾向があるため、機械学習チップメーカーにはより高い価値を提供するプレッシャーがかかるでしょう。
Google Cloud TPU のユースケース
Googleは、すべての種類の機械学習アプリケーションがCloud TPUに適しているわけではないことを明確にしています。Googleによると、最も適しているのは以下のアプリケーションです。
- 行列計算が支配的なモデル
- メインのトレーニング ループ内でカスタム TensorFlowo が動作していないモデル
- 数週間または数ヶ月にわたって雨が降るモデル
- 非常に大きな有効バッチサイズを持つ大規模および超大規模モデル
さらに、Google は、頻繁な分岐を必要とする線形代数プログラムや、メモリにスパースにアクセスするワークロード、あるいは高精度の演算を必要とするワークロードなどのアプリケーションには TPU を使用しないことを推奨しています。
ルシアン・アルマスは、Tom's Hardware USの寄稿ライターです。ソフトウェア関連のニュースやプライバシーとセキュリティに関する問題を取り上げています。