PyTorch 2.14 добавил NVGEMM, backend nccl2 и сборки для Python 3.15
Релиз собран из 2 995 коммитов от 487 участников; wheels для Python 3.15 лежат не на PyPI, а на download.pytorch.org.

PyTorch Foundation 2 сентября выпустила PyTorch 2.14. Релиз собран из 2 995 коммитов от 487 участников и меняет сразу несколько слоёв: компиляцию GPU-ядер (NVGEMM с ядрами CUTLASS в Inductor), распределённое обучение (backend nccl2, перестройка process group без перезапуска), управляющие конструкции для torch.compile (torch.switch) и матрицу сборок, в которой появились wheels для Python 3.15 и free-threaded 3.15t.
Практический вопрос для тех, кто обновляется: что сломается. Удалены torch.cholesky, torch.qr и параметр профилировщика use_cuda; acc_policy="balanced" в LinearCrossEntropyOptions теперь вызывает ValueError, нужно "compact"; у скалярного clamp изменился градиент на границе. А torch.compile на Python 3.15 в этом релизе не работает и завершается явным RuntimeError.
Ключевые выводы
- NVGEMM добавляет в Inductor ядра CUTLASS, сгенерированные CuTeDSL, с fusion эпилогов, scaled и NVFP4 GEMM.
- Distributed: новый backend
nccl2с неблокирующими коммуникаторами и eager splitting;c10dумеет перенастраивать process group на месте; Flight Recorder работает с любым backend. torch.switchобобщаетtorch.condна несколько веток,torch.while_loopзахватывается CUDA Graphs,@dynamic_specединообразно описывает динамические формы дляtorch.compile,torch.exportиmake_fx.- Apple Silicon получил нативные SVD,
eigh, QR и Cholesky; появились ROCm 7.14 wheels, захват графов на Intel XPU и цельsm_107для NVIDIA Rubin. - Wheels для Python 3.15 и 3.15t собраны для Linux x86-64 и aarch64, Windows x86-64 и macOS Apple Silicon, но лежат на download.pytorch.org, а не на PyPI;
torch.compileна 3.15 не поддерживается.
Что даёт NVGEMM и кому он нужен
NVGEMM, по описанию релиза, подключает к компилятору Inductor ядра матричного умножения CUTLASS, которые генерируются через CuTeDSL. Поддерживаются слияние эпилогов (операций после умножения), scaled GEMM и формат NVFP4, а также grouped-reduction epilogues. Это продолжение линии PyTorch 2.13, где CuTeDSL-путь только закладывался. Выигрыш получат те, кто гоняет обучение и инференс на современных NVIDIA GPU через torch.compile; на CPU, ROCm и Apple Silicon эта часть релиза ничего не меняет. Цифр ускорения относительно 2.13 в блоге релиза нет, поэтому эффект стоит мерить на своей модели.
Отказоустойчивость распределённого обучения
Backend nccl2 появился рядом с прежним NCCL и приносит неблокирующие коммуникаторы и eager splitting. Важнее для практики изменения в c10d: process group можно перестроить на месте, без полного перезапуска задания, когда один из узлов выпал. Добавлены односторонние окна RMA, а Flight Recorder, инструмент посмертной диагностики зависших коллективных операций, теперь работает не только с NCCL. Для кластеров на десятки GPU это означает меньше потерянных часов при сбое одного узла; для одной машины изменения не заметны.
Python 3.15: wheels есть, torch.compile нет
Python 3.15 ещё не вышел: 1 сентября появился второй релиз-кандидат, финал назначен на 1 октября. PyTorch 2.14 уже публикует сборки под 3.15 и его free-threaded вариант 3.15t для Linux, Windows и macOS на Apple Silicon, включая применимые CPU-, CUDA-, ROCm- и XPU-варианты. Две оговорки из заметок к релизу: эти wheels не лежат на PyPI, их нужно ставить с индекса download.pytorch.org, и torch.compile под 3.15 не поддерживается; попытка скомпилировать модель завершится RuntimeError, работает только eager-режим.
Что это значит на практике: проверить совместимость своего кода с 3.15 до октября можно уже сейчас, но замеры производительности с компиляцией придётся отложить до следующего релиза PyTorch. Про сам релиз-кандидат и заморозку ABI мы писали отдельно.
Несовместимые изменения
LinearCrossEntropyOptions(acc_policy="balanced")удалён: теперьValueError, заменять на"compact".- Удалены устаревшие
torch.choleskyиtorch.qr(используйтеtorch.linalg.choleskyиtorch.linalg.qr) и параметр профилировщикаuse_cuda. - Градиент скалярного
clampна границе изменён с 1 на 0; для тензорных границ градиент делится как 0,5 и 0,5. Модели, чувствительные к поведению на границе клиппинга, могут обучаться иначе. - Поддержка комплексных тензоров в
torch.compileпомечена как экспериментальная.
Как обновляться
- Свериться с матрицей сборок на странице релиза: версии CUDA, ROCm 7.14, XPU и Python для вашей платформы.
- Прогнать по коду поиск
acc_policy="balanced",torch.cholesky,torch.qrиuse_cuda. - Если используете кастомные process group с параметром
backend, проверить их наnccl2отдельно. - Для Python 3.15 ставить только с индекса download.pytorch.org и не рассчитывать на
torch.compile.
Библиотека torchvision 0.29 в релизе объявлена ABI-совместимой с будущими torch 2.15 и 2.16, то есть её не придётся пересобирать под следующие два выпуска. Ограничений на загрузку wheels по регионам в источниках нет. Что ещё вышло в ML-инструментах за последние недели, смотрите в обзоре открытых моделей августа.
Источники: PyTorch 2.14 Release Blog, Release notes v2.14.0 на GitHub, Python 3.15.0rc2
Изображение на обложке: PyTorch Foundation, логотип PyTorch












