GoogleとMeta、TPU上でPyTorchをネイティブ実行するTorchTPUを公開
2025年半ばにGoogleでMetaのPyTorchチームとともに開始されたこのオープンソースのバックエンドは、すでにGoogle Cloudの大手顧客の一部で本番運用されていると、開発チームは述べています。
AIイラストGoogleとMetaは、GoogleのTPUチップ上でPyTorchをネイティブに実行できるオープンソースのバックエンド「TorchTPU」を発表しました。プロジェクトのチームによると、このプロジェクトは2025年半ばにGoogleでMetaのPyTorchチームとの協力により始まり、現在も活発に開発が続けられています。
チームによると、TorchTPUはすでにGoogle Cloudの大手顧客の一部で、推論and学習のワークロードに本番利用されています。TPUはこれまでTensorFlowとJAXのエコシステムに結び付けられてきたと、チームは指摘しています。
チームはTorchTPUを、従来の試みとは一線を画すものだと説明しています。Googleは2020年に、Lazy Tensorsに基づくTPU向けの初のコンパイル版PyTorchであるPyTorch/XLAを公開しました。チームによると、この統合にはソースコードへの侵襲的な変更が必要で、コンパイル時のレイテンシーが深刻であり、PyTorchのイーガー実行モードに対応しておらず、新しい分散コンピューティング機能への対応も遅れていました。一方TorchTPUはイーガー実行を最優先事項として扱い、ランタイムにJAXへの依存がありません。
目標は、ワークロードをTPUに移行する際、コード内の対象デバイスをGPUからTPUに切り替えるだけで済むようにすることです。チームは、モデルのシェイプ、シャーディング、演算がGPU向けに調整されている可能性があるため、この変更だけではTPUの最高性能は得られないと注意を促しつつ、それでもモデルはそのまま動作するはずだと述べています。
チームによると、これまでにプロジェクトは次の成果を挙げています。
- 新しいイーガーモード「DeferAndFuse」を含む、イーガーモードとコンパイルモードのサポートを追加
- 約450のATen演算のサポートを追加
- JAX/PallasとHelion DSLで記述したカスタムカーネルを利用可能に
- ダウンロード数上位5,000のHugging Faceモデルで、そのままの実行を検証
- vLLM、SGLang、TorchTitan、Ray、TorchRecとの統合を検証
チームは制約も挙げた。TPUデバイスにアクセスできるのは単一のユーザー空間プロセスのみであるため、強化学習のコロケーションは標準ではサポートできず、チームはこれを回避する方法を調査していると述べた。また、基盤となるコンパイラとランタイムはテンソルの形状がコンパイル時に判明していることを前提としているため、有界ダイナミズムのサポートも追加している。
精度については、TorchTPUはbfloat16で乗算しFP32で累積する中程度のモードが既定です。より高いモードではFP32の精度をさらに回復できますが、計算コストは約3倍または約6倍になり、チームはほとんどのディープラーニングのワークロードで既定の設定を推奨しています。