
2026/10/21 1:40
Google が TorchTPU をオープンソース化。TPU のネイティブ PyTorch バックエンドです。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Google は、テンザリング処理ユニット (TPU) 向けの新しい PyTorch バックエンドをリリースしました。これにより、開発者は Llama、ResNet、Qwen などの人気のある AI モデルをこの専用ハードウェア上で直接実行できるようになります。この統合は
torch.compile() を通じてグラフモードでの実行をサポートし、カスタム ATen カーネルおよび最適化された XLA コンパイルキャッシュを活用することで高いパフォーマンスを確保しています。また、データ並列およびテンザル並列といった分散トレーニング戦略もサポートしています。本システムは TPU VM または Google Cloud インスタンスでの使用を対象としており、Python 3.11+ が要求されます。インストールは pip(バージョン 0.2.0)を通じて簡略化されていますが、CPU ビルドを意図している場合に CUDA 依存関係を誤ってインストールすることを防ぐために、必ず --extra-index-url フラグを使用する必要があります。ソースからのビルドでは Bazel が使用され、推奨されるのは Bazelisk を伴うものであり、デフォルトは最適化モードです。本プロジェクトには組み込みのデバッグユーティリティ、ベンチマッキングツール、Marimo ノートブックをフィーチャーした対話型ドキュメントライブラリが含まれています。結局のところ、この進歩は企業が複雑なモデルを効率的にデプロイすることを可能にし、高性能 TPU ハードウェアと標準的な深層学習フレームワークの間のギャップを埋め、利用性を損なったり大幅なコード変更を必要としたりすることなく実現します。本文
PyTorch on TPU: 概要と導入ガイド
Google Tensor Processing Units(TPU)向けの PyTorch バックエンドを提供するプロジェクトです。ユーザーは TPU デバイス上で PyTorch モデルと演算を実行できます。
プロジェクトの主な機能
- TPU 向け ATen カーネル: 多様な PyTorch 演算への最適化済み実装
- コンパイルキャッシュ: XLA コンピュテーションの実行速度向上
- 分散学習サポート: Data Parallelism、Tensor Parallelism の実装
- サンプルコード: Llama, Qwen, ResNet, DLRM, minGPT, UNet 等のモデル対応
統合: グラフモード実行への完全対応torch.compile()- デバッグ・ベンチマーク: ユーティリティ機能の提供
ドキュメントとノートブック
- ユーザーガイド: https://torchtpu.readthedocs.io/
フォルダに含まれるインタラクティブノートブックの静的ページです。docs
- 実行方法: Marimo(Jupyter に類似)を使用します。
marimo edit file.py
注意: 本手順は TPU VM 上で実行する必要があります。v6e GCE インスタンスの使用が推奨されます。
インストール手順
インストールポリシーは PyTorch の Release Compatibility Matrix に準拠しています。現在、Python 3.11 以上をサポートしています。
1. 仮想環境の作成
# 標準的な方法 python -m venv .venv source .venv/bin/activate # uv を使用する場合(pip コマンドの前に `uv run` または事前インストールが必要) uv venv .venv source .venv/bin/activate
2. パッケージのインストール
pip 経由(公開リリース版)
PyPI の
0.2.0 をインストールします。CPU ビルドを使用する際は以下の URL が必須です。
pip install torch_tpu==0.2.0 --extra-index-url https://download.pytorch.org/whl/cpu
注意:
を省略すると CUDA バージョンの PyTorch がインストールされ、動作しません。--extra-index-url
ソースコードからビルド(ホイール構築)
Bazel を使用してカスタムビルドを行う場合、最適化モード(
-c opt)がデフォルトで設定されます。
非最適化ビルドの場合(開発・デバッグ用):
bazel build -c dbg --config=wheel_common //ci/wheel:torch_tpu_wheel \ --//:allow_unoptimized_wheel=True
重要:
の指定は必須です。省略するとビルドが失敗します。また、共有 XLA/MLIR バックエンドのファクタリング処理が正しく動作する必要があります。--config=wheel_common
RBE 認証情報のない場合: リモートキャッシュを無効化するには、オプション順序に注意してください。後方の設定が優先されます。
bazel build --config=wheel_common //ci/wheel:torch_tpu_wheel --config=no_rbe
ビルド済みホイールのインストール
- 構築した
ファイルのパスを確認し、仮想環境をアクティブ化します。.whl - CPU バージョン用の PyTorch インデックスを追加してインストールしてください。
cd <path_to_repo> source .venv/bin/activate # 構築されたホイールをインストール pip install ../bazel-bin/ci/wheel/*.whl --extra-index-url https://download.pytorch.org/whl/cpu
スタートガイド
- PyTorch: 公式ドキュメント を参照
- チュートリアル: TorchTPU 使用例とサンプルコード
- API: 利用可能な TPU API リファレンス
Bazel セットアップ
プロジェクトは Bazelisk(Bazel のラッパー)を使用してビルド・依存関係管理を行います。
インストール方法
Go がインストールされている場合:
go install github.com/bazelbuild/bazelisk@latest
またはバイナリを直接ダウンロード:
wget -O ~/bin/bazel https://github.com/bazelbuild/bazelisk/releases/download/v1.27.0/bazelisk-linux-amd64
インストール後、環境変数
PATH に追加してください。有効性は以下のコマンドで確認できます。
bazel info
VSCode (clangd) セットアップ
C++ コードのナビゲーションを強化するために、VSCode に clangd 拡張機能を搭載することをお勧めします。
拡張機能のインストール
# clangd のインストール code --install-extension llvm-vs-code-extensions.vscode-clangd # Microsoft の C++ 拡張機能をアンインストール(干渉防止) code --uninstall-extension ms-vscode.cpptools
compile_commands.json
の生成
compile_commands.json最初のビルドには時間がかかります(>30 分)。最近のビルド後であれば、以下のようにスキャンをスキップできます。
# クイックなスキャン開始 nox -s refresh_compile_commands -- --no-build # 特定のディレクトリに限定する場合 nox -s refresh_compile_commands -- //src/torch_tpu/ops/...
寄稿とライセンス
- コントリビューション: CONTRIBUTING.md をご参照ください。
- ライセンス: Apache License 2.0 (LICENSE ファイル)。