Sakhanda Wire
NVDA $216.99 -0.05% MSFT $531.59 -0.36% GOOGL $341.10 -0.89% META $690.67 -2.09% AMZN $262.89 +0.17%
← До новин

Google відкрила вихідний код TorchTPU — нативного бекенду PyTorch для Cloud TPU

Google відкрила вихідний код TorchTPU — нативного бекенду PyTorch для Cloud TPU. Його було спільно розроблено з командою PyTorch у Meta та представлено на PyTorch Conference 2026 20 жовтня 2026 року. Наявний код PyTorch звертається до TPU через стандартний torch.device("tpu"). Тепер TPU є нативним пристроєм PyTorch поряд із GPU та CPU. Команда Google зазначає, що TorchTPU замінює PyTorch/XLA і рекомендує його для всіх нових робочих навантажень.

Коротко

  • Розмір: програмний стек, а не модель. 4 відкриті репозиторії: TorchTPU, vLLM-TorchTPU, SGLang-TorchTPU, TorchTitan. TorchTPU — це версія 0.2.0 на PyPI, Python 3.11+, Apache 2.0.
  • Працює на: Google Cloud TPU. Протестовано на поколіннях від v5e, масштабовано до 8 192 чипів Ironwood (TPU7x). Обслуговування підтримує контрольні точки FP8, MXFP4 і NVFP4.
  • Продуктивність: Eager-режим для налагодження, torch.compile для пропускної здатності виробничого рівня.
  • Найкращий результат: 52% MFU під час навчання Qwen 3 8B за допомогою TorchTitan на Ironwood (за власними даними).
  • Найгірший результат: готовий до використання eager-режим займав 11,49 с на крок у сценарії донавчання проти 2,78 с після повного налаштування.

Що таке TorchTPU?

TorchTPU — це відкритий бекенд PyTorch від Google і Meta, який нативно запускає моделі PyTorch на TPU. Він підключається через інтерфейс PrivateUse1 PyTorch. Тензори є звичайними тензорами PyTorch, без підкласів або обгорток. Він запускає один процес на пристрій і зберігає подання тензорів та мутації на місці.

Попередник, PyTorch/XLA, записував графи лінивих тензорів. Розробники часто додавали код для позначення ділянок, придатних до компіляції. PyTorch/XLA також підтримував лише чистий код SPMD. TorchTPU також обробляє дивергентне виконання MPMD.

Як TorchTPU виконує код PyTorch?

TorchTPU постачається з 3 eager-режимами:

  • Строгий (типовий): асинхронно розподіляє кожен оператор зі стандартною семантикою PyTorch.
  • Налагодження: працює синхронно з перевіркою меж тензорів.
  • DeferAndFuse: об’єднує послідовності eager-операторів, щоб зменшити трафік HBM. У статті про TorchTPU зазначено, що він може бути щонайменше на 50% швидшим за Strict.

Для максимальної швидкості torch.compile(backend="tpu") захоплює граф за допомогою TorchDynamo. Він знижує його через StableHLO до OpenXLA, який генерує машинний код TPU. Скомпільовані виконувані файли кешуються між процесами, хостами та перезапусками завдань.

Користувацькі ядра Pallas можна викликати як стандартні функції PyTorch. Також працюють попередньо зібрані ядра Tokamax і тайлові ядра Helion.

Для розподіленої роботи використовується група процесів tpu_dist. Вона підтримує DDP, FSDP2 і DTensor, а також топологічно орієнтовану сітку для міжз’єднань TPU.

Наскільки швидкий TorchTPU?

Усі наведені нижче показники надані Google і партнерами.

  • Масштаб навчання: TorchTitan досяг 52% MFU на Qwen 3 8B. Google повідомляє про майже лінійне масштабування до 8 192 TPU Ironwood.
  • Етапи налаштування: у сценарії донавчання TorchTitan час виконання кроку скоротився з 11,49 до 2,78 с. Сам DeferAndFuse забезпечив прискорення в 1,15 раза. Повний torch.compile — у 3,80 раза.
  • Підтримка моделей: Google постійно тестує близько 5 000 моделей Hugging Face у eager- і скомпільованому режимах.
  • Обслуговування флоту: Zenteiq збільшила щоденний обсяг генерації з 1,47 млрд до 5,97 млрд токенів на 1 000 чипів TPU v6e. Це зростання забезпечила маршрутизація llm-d у GKE, а не лише TorchTPU.

Які інтеграції постачаються з TorchTPU?

  • Hugging Face: Transformers v5 розгортається на TPU за допомогою device_map="tpu". Diffusers підтримує eager-режим, torch.compile і паралелізм тензорів.
  • vLLM-TorchTPU: створено за допомогою Inferact. Зберігає стандартні планувальники та API-сервери, використовуючи власні ядра Pallas.
  • SGLang-TorchTPU: створено за допомогою RadixArk. Зберігає повторне використання префіксів RadixAttention.
  • Функції обслуговування: KV-кеші FP8, контрольні точки FP8, MXFP4 і NVFP4. Спекулятивне декодування включає MTP та EAGLE-3.
  • TorchTitan: рецепти для Llama 3 70B/405B, Qwen 3 8B/32B, Qwen 3 235B MoE і FLUX.1 12B.
  • Також: llm-d 1.0, Ray, TorchRec, VeRL (попередня версія) і LiteRT-Torch для експорту на пристрої.

Як TorchTPU порівнюється з PyTorch/XLA, TorchNeuron і JAX?

ФункціяTorchTPU (репозиторій)PyTorch/XLA (репозиторій)TorchNeuron (документація AWS)JAX на TPU (документація Google)
ПостачальникGoogle + MetaGoogle / PyTorchAWSGoogle
Апаратне забезпеченняCloud TPU (протестовано на v5e і новіших)Cloud TPUTrainium 2, Trainium 3Cloud TPU
Пристрій PyTorchtpuxlaneuronНе є PyTorch
Механізм бекендуPrivateUse1Запис графа лінивих тензорівPrivateUse1Не застосовується
Типове виконанняEager (Strict, Debug, DeferAndFuse)Ливі тензориEager плюс torch.compileНе розкрито
Шлях компіляціїTorchDynamo до StableHLO до XLAXLANeuron CompilerXLA
Розподілені APIDDP, FSDP2, DTensor, SPMD і MPMDЛише чистий SPMDFSDP, DTensor, DDP, TPНе розкрито
Користувацькі ядраPallas, Tokamax, HelionНе розкритоNKIPallas
Обслуговування vLLM / SGLangvLLM-TorchTPU, SGLang-TorchTPUНе розкритоvLLM NeuronvLLM-JAX, SGLang-JAX
СтатусВідкритий код, v0.2.0Замінюється TorchTPUПублічна бета-версія (Neuron 2.33)Підтримується
ЛіцензіяApache 2.0Не розкритоНе розкритоНе розкрито

Як встановити TorchTPU?

Встановіть пакет на TPU VM, а потім виберіть пристрій tpu:

Копіювати кодСкопійованоВикористати інший браузер
# pip install torch_tpu
import torch
device = torch.device("tpu")
x = torch.randn((4, 4), device=device)

У README репозиторію зафіксовано torch_tpu==0.2.0 з індексом wheel-пакетів CPU PyTorch. Без нього pip завантажує CUDA-збірку torch. Повні інструкції доступні на torchtpu.readthedocs.io.

Основні висновки

  • TorchTPU має відкритий вихідний код за ліцензією Apache 2.0 і створений спільно з Meta.
  • Він замінює PyTorch/XLA виконанням на основі PrivateUse1 із пріоритетом eager-режиму.
  • torch.compile(backend="tpu") проходить через StableHLO та XLA.
  • TorchTitan досяг 52% MFU на Qwen 3 8B із масштабуванням до 8 192 чипів Ironwood.
  • vLLM, SGLang і Hugging Face тепер працюють на TPU через стандартний PyTorch.

Перегляньте репозиторій GitHub, статтю, документацію і оголошення Google Cloud. Уся заслуга належить досліднику цього проєкту. Також підписуйтеся на нас у Twitter і не забудьте приєднатися до нашого сабреддіту ML із понад 150 тисячами учасників та підписатися на нашу розсилку. Стривайте! Ви є в Telegram? тепер ви також можете приєднатися до нас у Telegram.

Перекладено автоматично з англійської. Оригінал статті — за посиланням нижче.

Вперше опубліковано виданням MarkTechPost

Читати оригінал на MarkTechPost ↗

Текст і зображення належать MarkTechPost і наводяться тут із зазначенням авторства та посиланням на оригінальну публікацію.

← До новин

Ще новини

Усі останні новини