PyTorch 2.15 acelera em até 6,5 vezes a decodificação MoE em Macs
O PyTorch 2.15 adiciona tensores FP8 nas GPUs da Apple e novos kernels Metal. A decodificação do Qwen3.6-35B-A3B em um M3 Ultra salta de 9,4 para 61,3 tokens por segundo.
3 min de leitura

- Qwen3.6-35B-A3B, 2.14
- 9.4
- Qwen3.6-35B-A3B, 2.15
- 61.3
- LFM2.5-8B-A1B, 2.14
- 23.6
- LFM2.5-8B-A1B, 2.15
- 123.6
O PyTorch 2.15, previsto para 28 de outubro de 2026, deixa os Macs com Apple Silicon muito mais rápidos ao rodar modelos de IA de mistura de especialistas (mixture-of-experts). A equipe de PyTorch do Hugging Face diz que a decodificação em um M3 Ultra fica cerca de 5 a 6,5 vezes mais rápida do que na 2.14. A versão também adiciona números FP8 nas GPUs da Apple e corrige problemas de memória e precisão que quebravam alguns modelos de imagem.
O que é o MPS e o que mudou
O MPS é o backend do PyTorch para as GPUs da Apple, a parte que roda o seu modelo no chip gráfico do Mac em vez de na CPU. O post do Hugging Face, escrito por Irakli Salia e Khushi Agrawal, lista o trabalho feito na 2.15. O objetivo declarado é “tornar o seu Mac um lugar de primeira classe para rodar e treinar modelos PyTorch”.
Boa parte da velocidade vem da migração de operações para kernels Metal escritos à mão. O Metal é a interface de baixo nível da Apple para gráficos e computação. Antes, muitas operações passavam pelo MPSGraph, o framework mais genérico da Apple, o que adicionava overhead.
A versão muda a forma como os modelos geram texto. Quando um modelo escreve um token por vez, o F.linear agora usa kernels feitos para uma única linha de entrada. Um novo F.grouped_mm nativo cuida das muitas pequenas multiplicações de matrizes de que os modelos de mistura de especialistas precisam. Esses modelos enviam cada token para algumas sub-redes especializadas, chamadas de especialistas.
Os números
Todos os números vêm do post do Hugging Face e foram medidos em hardware da Apple com torch.compile.
| Teste | PyTorch 2.14 | PyTorch 2.15 |
|---|---|---|
| Decodificação do Qwen3.6-35B-A3B, M3 Ultra | 9,4 tokens/s | 61,3 tokens/s |
| Decodificação do LFM2.5-8B-A1B, M3 Ultra | 23,6 tokens/s | 123,6 tokens/s |
| Softmax sobre uma linha de 128.256 tokens | 57 microssegundos | 7 microssegundos |
| Decodificação VAE de vídeo do Wan2.2, pico de memória do driver | 270,1 GiB | 8,1 GiB |
| Precisão do VAE do Qwen-Image-2.1 em relação à CPU | 10,06 dB | 29,95 dB |
As camadas lineares tiveram um ganho menor: 1,23 vez mais rápidas em média em 96 formatos de camada BF16, com as camadas grandes ficando perto de 1x. A correção de precisão importa para ferramentas de imagem. O post diz que o encoder do Qwen-Image-2.1 gerava saída corrompida no ComfyUI na 2.14.
FP8 e outras novidades
FP8 é um formato numérico que armazena cada valor em um byte, metade do tamanho dos formatos comuns de 16 bits. O PyTorch 2.15 suporta tensores FP8 no MPS, e a multiplicação de matrizes escalonada F.scaled_mm funciona com eles.
Outras mudanças citadas no post:
- Uma API de streams,
torch.mps.Stream, para executar trabalho em paralelo na GPU. - Softmax, convolução, padding e dropout mais rápidos em kernels Metal dedicados.
- Mais álgebra linear, incluindo fatoração LU complexa e inversão mais rápida de matrizes pequenas.
- Novas operações como
torch.frexp,torch.takeetorch.heaviside.
Requisitos e data de lançamento
O PyTorch 2.15 exige macOS 15 ou posterior e Python 3.11 ou posterior em um Mac com Apple Silicon. O suporte ao Python 3.10 termina com esta versão. Os gerentes de release do PyTorch confirmaram que a 2.14 é a última versão com wheels para 3.10.
A branch de release foi criada em 5 de outubro, e a primeira release candidate saiu em 8 de outubro. A versão final está marcada para 28 de outubro. Você já pode testar a versão candidata em um ambiente separado com uv pip install torch==2.15.0 --index-url https://download.pytorch.org/whl/test/cpu.
O post também antecipa trabalhos voltados à 2.16, que podem mudar. A atenção para decodificação com grouped-query em um M5 Pro cai de 465 para 65 microssegundos nos primeiros testes.
O que isso significa para desenvolvedores
Para quem roda modelos abertos localmente em um Mac, a 2.15 traz grandes ganhos. Os modelos de mistura de especialistas são os que mais ganham nos testes do Hugging Face.
- Teste a release candidate no seu próprio modelo. Instale-a em um ambiente separado e compare os tokens por segundo com a 2.14 antes de 28 de outubro.
- Atualize primeiro o Python e o macOS. Builds em Python 3.10 ou macOS 14 não vão receber a 2.15. Planeje essa mudança agora.
- Verifique de novo os pipelines de imagem. Se as saídas do Qwen-Image-2.1 ou do Wan2.2 pareciam erradas ou ficavam sem memória, a 2.15 mira exatamente esses bugs.
- Experimente FP8 para economizar memória. Um byte por valor corta a memória pela metade em relação aos formatos de 16 bits. Confira a qualidade da saída na sua tarefa antes de trocar.
- Compare backends entre diferentes hardwares. O esforço do PyTorch para tornar cada chip um dispositivo nativo também inclui o novo backend TorchNeuron do AWS Trainium. Código que permanece neutro em relação ao dispositivo pode migrar entre eles.
Fontes
- MPS in PyTorch 2.15 - Hugging Face
- PyTorch Release 2.15 Key Dates - PyTorch Developer Mailing List
- PyTorch 2.15 RC1 produced for pytorch, torchvision & torchaudio - PyTorch Developer Mailing List
Artigos relacionados

RemoveMacAI remove os modelos do Apple Intelligence do macOS 27
Uma nova ferramenta de linha de comando com licença MIT desativa o Apple Intelligence no macOS 27, apaga seus modelos locais e impede que o macOS os baixe de novo.

DuckDB 2.0 LTS adiciona modo servidor, gatilhos e VARIANT
O DuckDB 2.0.0, uma versão de suporte de longo prazo lançada em 21 de outubro, adiciona modo servidor, gatilhos e VARIANT. Versões anteriores à 2.0 não conseguem ler seus arquivos.

TorchTPU: Google abre o código de um PyTorch nativo para TPUs
O TorchTPU roda PyTorch nativamente nas TPUs do Google e passou em 98% dos 4.917 modelos do Hugging Face testados. O PyTorch/XLA foi descontinuado e será arquivado em 15 de novembro.