TorchTPU reduz o acoplamento ao CUDA, mas portabilidade ainda precisa de prova
O backend de Google e Meta aproxima PyTorch das TPUs. Compatibilidade, resultado numérico e custo continuam exigindo avaliação.
Google e Meta abriram o TorchTPU, backend para executar cargas PyTorch nas TPUs do Google com foco em execução imperativa, compilação e processamento distribuído, segundo a InfoQ.[8] A proposta busca reduzir as mudanças exigidas para usar esse hardware em relação à abordagem anterior com PyTorch/XLA descrita na reportagem.[8]
Para quem desenvolve, a questão não é declarar um vencedor entre aceleradores. É verificar se o código pode ganhar uma alternativa sem transferir a economia de infraestrutura para uma conta maior de manutenção.
O que muda para quem desenvolve
A migração apresentada envolve substituir o dispositivo CUDA por TPU e o backend distribuído NCCL por tpu_dist, ou recorrer a APIs de seleção de acelerador para reduzir acoplamento.[8] Isso descreve uma direção de compatibilidade, não a garantia de que qualquer aplicação migre sem outros ajustes.[8]
Há modos eager estrito, de depuração e DeferAndFuse; este último combina execução imperativa e compilada.[8] O Google afirma que DeferAndFuse pode superar o modo estrito em 50% ou mais e reduzir pico de memória HBM.[8] Trate essa afirmação como resultado do fornecedor em condições específicas, não como ganho assegurado para o seu modelo.
Minha recomendação arquitetural é tornar explícitos os pontos dependentes de hardware. Centralize seleção de dispositivo e configuração distribuída, mas evite criar uma abstração extensa antes de conhecer as incompatibilidades reais.
Como aplicar
Uma prova proposta deve começar por um recorte representativo, não pelo treinamento completo. Fixe checkpoint, entradas, precisão e critérios de qualidade. Execute primeiro uma carga simples e depois uma que use os operadores importantes para o produto.
Organize a comparação em quatro partes:
- Correção: confira saídas dentro de uma tolerância justificada e, em treinamento, a evolução da perda.
- Compatibilidade: registre operadores ausentes e adaptações exigidas.
- Execução: separe preparação, compilação e processamento após aquecimento.
- Economia: inclua tempo ocioso, disponibilidade do recurso e esforço de manutenção.
Não publique apenas tokens por segundo sem tamanho das entradas, configuração e critério de comparação. O experimento deve permitir decidir se vale ampliar o teste, não produzir uma conclusão universal sobre o hardware.
Cuidados e limites
O Google montou uma integração que avalia aproximadamente cinco mil modelos de mais de 500 arquiteturas em modos eager e compilado, em gerações de TPU a partir da v5e.[8] Essa cobertura relatada não substitui a execução do seu próprio caminho de código.
O projeto ainda está em fase inicial, com formas dinâmicas, cobertura de operadores, compilação, aprendizado por reforço e quantização entre os itens do roteiro.[8] Os benchmarks apresentados são do fornecedor e de configurações específicas.[8]
Minha leitura é favorável a preservar opções, não a migrar por impulso. Menos acoplamento desnecessário ao CUDA pode facilitar uma avaliação futura. Só uma medição reproduzível deve decidir se a alternativa compensa agora.
Fonte
[8] Fonte: InfoQ