PyTorch 2.13: FlexAttention на Apple Silicon, torchcomms і менше споживання GPU-пам’яті

PyTorch 2.13 додає FlexAttention для MPS, torchcomms і fused loss. Що перевірити в GPU-пам’яті, distributed training і custom extensions.

Науковець тестує модель PyTorch 2.13 у лабораторному середовищі
Фото: Pavel Danilyuk / Pexels. Pexels License — free to use. Джерело: https://www.pexels.com/photo/a-scientist-testing-a-a-device-8438990/

PyTorch 2.13 вийшов 8 липня 2026 року. Реліз переносить FlexAttention на Apple Silicon, додає CuTeDSL backend для Inductor, новий torchcomms для distributed training і fused LinearCrossEntropyLoss, який у заявлених сценаріях може зменшити пікове споживання GPU-пам’яті до чотирьох разів. Частина API має unstable-статус, тому їх не слід трактувати як довгостроково незмінний контракт.

FlexAttention на Apple Silicon

Підтримка MPS розширює можливості локального тестування sparse attention. Офіційні вимірювання показують значне прискорення для окремих патернів, але результат залежить від форми tensor, sparsity, dtype і конкретного SoC. Benchmark повинен містити warm-up, однакові inputs і контроль чисельної точності.

Менше пам’яті на великому словнику

nn.LinearCrossEntropyLoss об’єднує фінальну лінійну проєкцію та обчислення loss, щоб не матеріалізувати повний проміжний tensor logits. Найбільша користь очікується для мовних моделей із великим vocabulary. Перед заміною перевірте reduction, masking, label smoothing, gradient і збіжність навчання.

torchcomms і FSDP2

Новий communication backend покращує fault tolerance, масштабування та діагностику колективних операцій. FSDP2 може використовувати окрему process group для reduce-scatter й перекривати її з all-gather. Це потенційно підвищує throughput, але додає communicator і споживання ресурсів; потрібні тести на фактичній topology кластера.

Несумісні зміни

Named tensors вилучено, назви частини distributed collectives змінено з compatibility wrappers, Bazel build прибрано. CUDA 13 залишається типовою збіркою, а частину старіших CUDA wheels вилучено. Інфраструктура має перевірити driver, container base і native extensions.

Чекліст оновлення

  • зафіксувати model outputs і training metrics на старій версії;
  • перебудувати custom C++/CUDA extensions;
  • перевірити deterministic mode та чисельні відхилення;
  • запустити memory й throughput benchmarks;
  • тестувати distributed failure, timeout і restart;
  • не будувати стабільний public API поверх unstable-функцій без abstraction layer.

Для порівняння попереднього покоління доступний огляд PyTorch 2.9.

Першоджерело: офіційний анонс PyTorch 2.13.

Коментарі