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 устройствата са редом до GPU и CPU като естествено поддържани устройства в PyTorch. Екипът на Google посочва, че TorchTPU заменя PyTorch/XLA и го препоръчва за всички нови работни натоварвания.

Накратко

  • Размер: Софтуерен стек, а не модел. 4 отворени хранилища: TorchTPU, vLLM-TorchTPU, SGLang-TorchTPU, TorchTitan. TorchTPU е v0.2.0 в PyPI, изисква Python 3.11 или по-нова версия и е с лиценз Apache 2.0.
  • Работи на: Google Cloud TPU. Тестван е на поколения от v5e нататък, като е мащабиран до 8192 чипа 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 режима:

  • Strict (по подразбиране): изпраща всеки оператор асинхронно със стандартната семантика на PyTorch.
  • Debug: изпълнява операциите синхронно с проверка на границите на тензорите.
  • 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 съобщава за почти линейно мащабиране до 8192 TPU устройства Ironwood.
  • Стъпки за оптимизация: В случай на дообучаване с TorchTitan времето за стъпка спадна от 11,49 сек. на 2,78 сек. Само DeferAndFuse осигури 1,15x ускорение. Пълният torch.compile осигури 3,80x.
  • Поддържани модели: Google непрекъснато тества около 5000 модела от Hugging Face в eager и компилиран режим.
  • Обслужване в голям мащаб: Zenteiq увеличи дневния брой генерирани токени от 1,47 млрд. до 5,97 млрд. на 1000 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
PyTorch устройствоtpuxlaneuronНе е 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 с индекса на 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, мащабирайки се до 8192 чипа Ironwood.
  • vLLM, SGLang и Hugging Face вече работят на TPU чрез стандартния PyTorch.

Разгледайте хранилището в GitHub, статията, документацията и съобщението на Google Cloud. Всички заслуги са на изследователя на този проект. Също така можете да ни последвате в Twitter и не забравяйте да се присъедините към нашия SubReddit за машинно обучение с над 150 хил. членове и да се абонирате за нашия бюлетин. Чакайте! В Telegram ли сте? Вече можете да се присъедините към нас и в Telegram.

Преведено автоматично от английски. Оригиналната статия е на връзката по-долу.

Първоначално публикувано от MarkTechPost на

Прочетете оригинала в MarkTechPost ↗

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

← Към новините

Още новини

Всички последни новини