powered by TechFeed
表示モード
Google

GoogleとMetaがNvidia依存を「1単語の変更」で回避できるPyTorchバックエンドを公開 — `cuda`を`tpu`に書き換えるだけでGoogle TPUが動作対象に

10月20日、madrobot.blogが「Google and Meta want PyTorch code written for Nvidia to run on Google's chips with a one-word change」と題した記事を公開した。この記事では、GoogleとMetaが共同で開発したTorchTPUにより、NvidiaのCUDA向けに書かれたPyTorchコードを1単語の変更でGoogle TPU上で動作させられるようになったことについて詳しく紹介されている。

10月20日、madrobot.blogが「Google and Meta want PyTorch code written for Nvidia to run on Google's chips with a one-word change」と題した記事を公開した。この記事では、GoogleとMetaが共同で開発したTorchTPUにより、NvidiaのCUDA向けに書かれたPyTorchコードを1単語の変更でGoogle TPU上で動作させられるようになったことについて詳しく紹介されている。


「cuda」を「tpu」に変えるだけ

AIの世界でNvidiaが圧倒的な地位を保っている理由のひとつは、チップそのものではなくCUDAというソフトウェアプラットフォームだ。開発者はCUDA向けにコードを書き、そのコードがNvidiaハードウェアに縛り付ける。書き直しのコストが乗り換えのハードルになっている。

GoogleとMetaは10月21日(現地時間)、サンノゼで開催されたPyTorch ConferenceでTorchTPUを発表した。PyTorchをGoogleのTPU(Tensor Processing Unit)上でネイティブに動作させるオープンソースのバックエンドだ。なお、元記事はカンファレンス前日の10月20日に公開されている。

プロジェクトが掲げるゴールはシンプルである。モデルの移植は

model.to("cuda")  # 変更前
model.to("tpu")   # 変更後

「この1単語の変更で済むべきだ」というのが公式の言葉だ。


従来のPyTorch/XLAとの違い

GoogleはTPU向けに2020年からPyTorch/XLAというブリッジを提供してきた。しかしTorchTPUの発表文でGoogleのエンジニアは旧来の方法を率直に批判している。PyTorch/XLAは「侵襲的なソースコード修正を必要とし」「深刻なコンパイル時レイテンシに苦しんでおり」、PyTorchが通常提供するeagerモード(コードをステップごとに即時実行するデバッグしやすいモード)が使えなかった、と述べている。

TorchTPUはeagerモードをデフォルトでサポートし、高速実行のためのtorch.compile、複数チップへのモデル分散も通常のPyTorchの流儀で扱える。コードはGitHubで公開されており、vLLMやSGLangのTPU対応版、MetaのTorchTitan学習プラットフォームも同梱されている。


互換性と性能の数字

GoogleはHugging Faceで最もダウンロードされているオープンモデル4,917件(Qwen、DeepSeek、Gemma、Llama、Whisper、CLIPなど)でテストを実施した。

  • 98%(4,821モデル)がクラッシュなく動作
  • 代表的な657モデルのうち**97%**がGPUと同一の数値結果を出力

性能面では、最新のIronwoodチップ(Googleが2025年に発表した第6世代TPUで、大規模言語モデルの推論・学習向けに設計されたデータセンター向けアクセラレータ)上でQwen3 235Bを最大8,192チップでスケールさせた際、演算効率(チップのピーク性能に対する実使用率)は約27〜29%で安定して推移したとしている。64チップ時点では、PyTorchセットアップが毎秒1,828トークンを達成し、GoogleのJAXベーストレーナーの1,937トークン/秒と比べ約6%の差にとどまった。

ただしGoogleは重要な注釈を付けている。1単語の変更でとりあえず動くが、ピーク性能を引き出すにはTPU固有のチューニングとカスタムカーネルが必要だ。またFlexAttentionなどPyTorchの一部機能はまだ未サポートである。

これらの性能数値はGoogleの自己測定であり、第三者による検証はまだない。


Hugging FaceもTPUサポートを刷新

Hugging Faceは自社ブログで、TransformersとDiffusersライブラリがTPUを「ただのデバイス」として扱えるようになったと発表した。従来必要だったアドオン「Optimum TPU」はもう不要になる。モデルのロードはdevice_map="tpu"を渡すだけだ。

「すべてがグリーンではないけれど」と正直に書いており、TPU上で実行するテストの**96.5%**が通過している状態だという。


CUDAの牙城を崩す動き、Metaが果たす役割

昨年12月、ReutersはすでにGoogleがMetaの協力を得てTorchTPUを開発中と報道していた。この動きはGoogleだけではない。DeepSeekはHuaweiのAscendチップ向けソフトウェアを整備し、MicrosoftはMaia 300チップに投資している。AI推論・学習のソフトウェアスタックを巡る競争が各社で同時進行している。

こうした文脈でMetaの共同開発参加が持つ意味は大きい。PyTorchはMetaが生み出したフレームワークであり、そのMetaが名を連ねることで、TorchTPUはGoogleの自社製ツールにとどまらず、PyTorchコミュニティ全体に向けた標準的な選択肢として位置づけられる。TorchTitanの同梱もその文脈で捉えると、単なる機能追加以上の意味合いを持つ。CUDAへの依存が「書き直しのコスト」ではなく「単なる価格比較」になれば、クラウドのAIワークロードの選択肢は実質的に広がる。

Googleが今後6〜12ヶ月の優先事項として挙げるのは、ソフトウェアの安定化、モデルサポートの拡充、強化学習への対応だ。フィードバックはGitHub上で受け付けている。

詳細はGoogle and Meta want PyTorch code written for Nvidia to run on Google's chips with a one-word changeを参照していただきたい。