Tensor Processing Unit(TPU)は、Googleがニューラルネットワーク機械学習用に開発した、ニューラル処理ユニット(NPU)向け特定用途向け集積回路(ASIC)である。TPUは、汎用プロセッサよりもジュール当たりの入出力操作が多い、高量の低精度計算(例:8ビット)を処理するように設計されており、ラスタライゼーションやテクスチャマッピング用のハードウェアを欠いている。Googleは2015年にTPUを社内で使用し始め、2018年にはクラウドインフラストラクチャを通じて第三者利用を可能にし、チップの小型版を販売も開始した。現在のところ、Google Cloudは主にTPUシステムの販売から製品収益を生み出している。
TPUは、TensorFlow、JAX、PyTorchフレームワークをサポートしている。これらは畳み込みニューラルネットワーク(CNN)に特に適しており、GPUは一部の完全結合ニューラルネットワークに利点があり、CPUはリカレントニューラルネットワーク(RNN)に利点がある場合がある。大規模言語モデル用のトランスフォーマーベースのニューラルネットワークを使用するワークフローでは、TPUは推論に、GPUはトレーニングに頻繁に使用される。
歴史
2013年、GoogleはAmir Salekを採用し、同社のデータセンター向けカスタムシリコン開発能力を確立した。Google Technical InfrastructureおよびGoogle Cloudのカスタムシリコン部門の創設者兼責任者として、SalekはオリジナルTPU(Google初の量産チップ)、TPUv2(業界初の量産ディープラーニングトレーニングチップ)、TPUv3、TPUv4、Edge-TPU、およびVCU、IPU、OpenTitanを含む追加のシリコン製品の開発を主導した。
オリジナルTPUエンジニアの一人で後にGroqの創設者となったJonathan Rossによると、Google内の3つの別々のグループがAIアクセラレータを開発しており、シストリックアレイであるTPUが最終的に選択された設計であった。TPUは、WARPを含むシストリックアレイシステムと系譜を共有している。Norman P. JouppiはGoogleのTPU開発のテックリード兼主任アーキテクトを務め、最初のTPUの迅速な設計、検証、および量産への展開をわずか15ヶ月で主導した。第44回国際コンピュータアーキテクチャシンポジウム(ISCA 2017)で発表された画期的な2017年の論文「In-Datacenter Performance Analysis of a Tensor Processing Unit」の筆頭著者として、JouppiはTPUが当時のCPUおよびGPUと比較して15〜30倍の高性能と30〜80倍の性能対ワット比を達成したことを実証した。
テンソル処理ユニットは2016年5月のGoogle I/Oカンファレンスで発表され、同社はTPUが1年以上データセンター内で使用されていたと述べた。その作成を説明するGoogleの2017年の論文は、1990年代に構築された同様のアーキテクチャの以前のシストリック行列乗算器を引用している。このチップは、ニューラルネットワークなどの機械学習アプリケーションに使用されるシンボリック数学ライブラリであるGoogleのTensorFlowフレームワーク向けに特別に設計された。ただし、2017年時点でGoogleは他の種類の機械学習には依然としてCPUとGPUを使用していた。
GoogleのTPUは独自仕様である。一部のモデルは商業的に利用可能であり、2018年2月12日にThe New York Timesは、Googleが「他の企業がクラウドコンピューティングサービスを通じてこれらのチップへのアクセスを購入できるようにする」と報じた。Googleは、TPUがAlphaGo対Lee Sedolの人間対機械囲碁シリーズ、およびゲームルールのみからチェス、将棋、囲碁のプレイプログラムを生成し、それらのゲームの主要プログラムを打ち負かしたAlphaZeroシステムで使用されたと述べている。Googleはまた、Google Street Viewのテキスト処理にTPUを使用し、5日未満でStreet Viewデータベース内のすべてのテキストを見つけることができた。Google Photosでは、個々のTPUが1日あたり1億枚以上の写真を処理できる。また、Googleが検索結果を提供するために使用するRankBrainでも使用されている。
Googleは、Google Cloud Platformの一部としてCloud TPUサービスを通じて、およびノートブックベースのサービスKaggleとColaboratoryを通じて、第三者にTPUへのアクセスを提供している。BroadcomはTPUの共同開発者であり、Googleのアーキテクチャと仕様を製造可能なシリコンに変換している。SerDes高速インターフェースなどの独自技術を提供し、ASIC設計を監督し、台湾積体電路製造公司(TSMC)などの第三者ファウンドリを通じてチップ製造とパッケージングを管理しており、プログラム開始以来の全世代をカバーしている。
2025年9月、GoogleはCrusoeやCoreWeaveを含む複数の「ネオクラウド」と、データセンターでのTPU展開について協議していた。2025年11月、MetaはAIデータセンターでのTPU展開についてGoogleと協議していた。
製品
第一世代TPU
第一世代TPUは8ビット行列乗算エンジンであり、PCIe 3.0バスを介してホストプロセッサによってCISC命令で駆動される。28 nmプロセスで製造され、ダイサイズは≤331 mm²である。クロック速度は700 MHzで、熱設計電力は28〜40 Wである。オンチップメモリは28 MiB、256×256の8ビット乗算器のシストリックアレイの結果を受け取る32ビットアキュムレータは4 MiBである。TPUパッケージ内には、34 GB/sの帯域幅を提供する8 GiBのデュアルチャネル2133 MHz DDR3 SDRAMがある。命令はホストとの間でデータを転送し、行列乗算または畳み込みを実行し、活性化関数を適用する。
第二世代TPU
第二世代TPUは2017年5月に発表された。Googleは、第一世代TPUの設計はメモリ帯域幅によって制限されており、第二世代設計で16 GBのHigh Bandwidth Memoryを使用することで帯域幅が600 GB/s、性能が45テラFLOPSに増加したと述べた。その後、TPUは4チップモジュールに配置され、性能は180テラFLOPSとなる。さらに、これらのモジュールの64個が256チップポッドに組み立てられ、性能は11.5ペタFLOPSとなる。注目すべきことに、第一世代TPUは整数に制限されていたが、第二世代TPUは浮動小数点でも計算でき、Google Brainが発明したbfloat16形式を導入した。これにより、第二世代TPUは機械学習モデルのトレーニングと推論の両方に有用となる。Googleは、これらの第二世代TPUがTensorFlowアプリケーションでの使用のためにGoogle Compute Engineで利用可能になると述べた。
第三世代TPU
第三世代TPUは2018年5月8日に発表された。Googleは、プロセッサ自体が第二世代TPUの2倍の性能を持ち、前世代の4倍のチップを持つポッドに展開されると発表した。これにより、ポッドあたりの性能は8倍に増加する。第三世代TPUもbfloat16をサポートし、トレーニングと推論の両方向けに設計されている。これらはGoogle Cloud TPUサービスを通じて利用可能である。
アーキテクチャと設計
TPUは乗算器のシストリックアレイを中心に構築されており、ニューラルネットワーク操作の基本である行列乗算の効率的な実行を可能にする。データがリズミカルな方法でアレイを流れるシストリックアレイ設計は、頻繁なメモリアクセスの必要性を減らし、エネルギー効率を向上させる。第一世代TPUは8ビット精度で動作するが、後の世代はトレーニング用にbfloat16をサポートする。Norman Jouppiによると、TPUはデータセンターラック内のハードドライブスロットに収まるヒートシンクアセンブリに取り付けられている。
アプリケーションと影響
TPUは、検索(RankBrain)、Google Photos、Street Viewなど、さまざまなGoogleサービスで使用されてきた。また、AlphaGoおよびAlphaZeroシステムでも使用された。Google Cloudを通じたTPUの利用可能性により、第三者開発者や研究者は独自の機械学習ワークロードを加速できるようになった。TPUの開発は、GroqやAWS Trainiumなど、独自のAIアクセラレータを開発する他の企業を含む、より広範なAIハードウェア環境にも影響を与えた。