テンソル・プロセッシング・ユニット

テンソル・プロセッシング・ユニット（Tensor processing unit、TPU）はGoogleが開発した機械学習に特化した特定用途向け集積回路(ASIC)。グラフィック・プロセッシング・ユニット(GPU)と比較して、ワットあたりのIOPSをより高くするために、意図的に計算精度を犠牲に（8ビットの精度）した設計となっており、ラスタライズ/テクスチャマッピングのためのハードウェアを欠いている 。チップはGoogleのテンソルフローフレームワーク専用に設計されているがGoogleはまだ他のタイプの機械学習にCPUとGPUを使用している 。他のAIアクセラレータの設計も他のベンダーからも登場しており、組み込みやロボット市場をターゲットとしている。

Googleは同社独自のTPUは囲碁の人間対機械シリーズのAlphaGo対李世ドル戦で使用されたと述べた。GoogleはTPUをGoogleストリートビューのテキスト処理に使っており、5日以内にストリートビューのデータベースの全てのテキストを見つけることができる。Googleフォトでは個々のTPUは1日に1億枚以上の写真を処理できる。TPUはGoogleが検索結果を提供するために使う「RankBrain」においても使用されている 。TPUは2016年のGoogle I/Oで発表されたが、GoogleはTPUは自社のデータセンター内で1年以上前から使用されていると述べた。

Googleの著名ハードウェアエンジニアのNorm Jouppiによると、TPU ASICはヒートシンクが備え付けられており、データセンターのラック内のハードドライブスロットに収まるとされている。2017年時点でTPUはGPUTesla K80やCPUXeon E5-2699 v3よりも15～30倍高速で、30～80倍エネルギー効率が高い。

アーキテクチャ

第1世代 

第1世代のTPUは、PCIe 3.0バスを介してホストCPUからのCISC命令で動作する8ビット行列乗算エンジンである。TPUは28 nmプロセスで製造され、正確なダイサイズは不明であるがHaswellの半分未満とされていることから最大で331 mm2である。クロックスピードは700 MHzであり、熱設計電力(消費電力)は28～40Wである。TPUは28 MiBのチップメモリーと65536個の8ビット積和演算器の結果を取る4 MiBの32ビットアキュムレーターを有している。命令はホストとのデータ送受信、行列の乗算または畳み込み、活性化関数の適用を実行する。

第2世代 

第2世代のTPUは2017年5月に発表された 。個々のTPU ASICは45テラFLOPSであり、4チップ(1台)で合計180テラFLOPSモジュールとなる。これらのモジュールは256チップ(64台)組み合わせると11.5 PFLOPSのパフォーマンスを発揮する。とりわけ第1世代のTPUは整数に限定されている一方で第2世代のTPUは浮動小数点演算が可能であるので、機械学習モデルの訓練と推論の両方に役立つ。Googleはテンソルフローアプリでの使用のために「Google Computeエンジン」で第2世代のTPUが利用できるようになると述べた。

第3世代 

第3世代のTPUは2018年5月に発表された。発表内容は、1ユニットあたりの計算性能が100ペタFLOPSであり、冷却が液体冷却であることのみであった。

関連項目 
AlphaGo
TensorFlow

参考文献 

AIアクセラレータ
集積回路