TBN Grow
PyTorch en TPU y Trainium: ¿cuánto reduce la dependencia de Nvidia?

Ejecutar PyTorch en TPU y Trainium ya solo exige cambiar el dispositivo con TorchTPU y TorchNeuron. Analizamos cifras, límites, costes reales y quién debe probar.
Noticia
Ejecutar PyTorch en las TPU de Google o en los chips Trainium de AWS exigía hasta ahora una biblioteca intermedia y bastantes ajustes. El 19 y 20 de octubre de 2026, justo antes de la PyTorch Conference, ambas empresas liberaron un backend nativo de PyTorch: TorchTPU (Google, desarrollado con el equipo de PyTorch de Meta) y TorchNeuron (AWS, en beta pública). El objetivo común: que el código PyTorch escrito para GPU de Nvidia funcione en sus chips con muy pocos cambios.
- Cambiar el dispositivo, no reescribir. En TorchNeuron, AWS afirma que el único cambio es
model.to('neuron'). En TorchTPU, Google habla de "cambios mínimos de código"; en Hugging Face Transformers v5 basta condevice_map="tpu". - Los dos modos de ejecución. Ambos admiten modo eager (operación a operación, fácil de depurar) y
torch.compile(compilación del grafo completo para producción). - Entrenamiento distribuido incluido. DDP, FSDP2 y DTensor funcionan en ambos; TorchNeuron añade paralelismo de tensores y de pipeline.
- Integrados en el ecosistema de inferencia. TorchTPU trae backends para vLLM y SGLang; TorchNeuron cuenta con vLLM Neuron y soporte en Transformers v5, Diffusers y trl.
- Código abierto Apache 2.0 para ambos proyectos en GitHub.
| Parámetro | Valor | Nota |
|---|---|---|
| TorchTPU – eficiencia de entrenamiento | Hasta 52% de MFU con Qwen 3 8B | Según lo publicado por la empresa, con TorchTitan |
| TorchTPU – escala probada | Hasta 8.192 chips Ironwood (TPU v7x) | Según lo publicado por la empresa, "casi lineal" |
| TorchTPU – inferencia (cliente Zenteiq) | 1.470 → 5.970 millones de tokens/día por cada 1.000 TPU v6e | Según lo publicado por la empresa, unas 4 veces más |
| TorchTPU – versión | 0.2.0 en PyPI, Python 3.11+ | Según el GitHub del proyecto |
| TorchNeuron – estado | Beta pública desde el 20/10/2026 | Trainium2 y Trainium3 |
| TorchNeuron – coste (cliente Deepgram) | Alrededor de un 60% más de segundos de audio por dólar | Según lo publicado por la empresa, frente a sus GPU actuales |
| TorchNeuron – cobertura | 100.000 modelos de Hugging Face probados | Según lo publicado por la empresa; unas 22.000 pruebas omitidas por falta de operadores |
Análisis
Análisis: ¿basta una línea de código para dejar las GPU de Nvidia?
Respuesta corta: basta para probar, no para migrar. El cambio real está en la forma de integración; el ahorro depende mucho de los modelos que ejecute.
¿Qué cambia respecto a antes?
| Criterio | PyTorch/XLA (vía antigua en TPU) | TorchTPU | TorchNeuron |
|---|---|---|---|
| Integración | Biblioteca aparte, ejecución tipo compilación | Backend nativo vía PrivateUse1 | Backend nativo vía PrivateUse1 |
| Modo eager | Sobre todo lazy tensors (agrupa y compila) | 3 niveles: Debug, Strict, Fused | Sí, más un eager "adaptativo" experimental |
| Compilador | XLA | torch.compile → StableHLO → XLA | torch.compile → StableHLO → Neuron |
| Modelo distribuido | Solo SPMD | SPMD y MPMD | DDP, FSDP2, TP, PP |
| Estado | Maduro | Código abierto, versión 0.2.0 | Beta pública |
La diferencia clave es PrivateUse1, el punto de extensión oficial de PyTorch para hardware nuevo. Un tensor en TPU o Trainium es un tensor PyTorch normal, sin envoltorios. Por eso bibliotecas como Hugging Face, vLLM o TorchTitan ya no necesitan una rama distinta para cada chip.
¿Por qué funciona sin reescribir?
Al llamar a torch.compile, PyTorch usa TorchDynamo para capturar el grafo de cálculo. En lugar de pasarlo a un compilador de GPU, TorchTPU lo traduce a StableHLO y deja que XLA lo optimice para TPU. TorchNeuron sigue un camino parecido con Torch-MLIR, StableHLO y el compilador Neuron. El desarrollador sigue escribiendo PyTorch; la traducción al chip ocurre por debajo.
El modo "Fused Eager" de TorchTPU agrupa automáticamente muchas operaciones pequeñas en bloques mayores antes de enviarlas al chip. Google ha informado de mejoras del 50% a más del 100% frente a la ejecución operación a operación. Es una cifra del fabricante, sin medición independiente.
¿A quién afecta y cómo?
- Ingenieros de ML: pueden ejecutar el mismo bucle de entrenamiento en GPU, TPU y Trainium para comparar. Los kernels propios siguen exigiendo aprender Pallas (TPU) o NKI (Trainium).
- Responsables técnicos: ganan margen al negociar precios de GPU. Un contrato en la nube deja de estar atado a CUDA si los modelos corren en varios chips.
- Pymes: la mayoría usa modelos vía API, así que el efecto es indirecto. Los equipos que alojan modelos abiertos (Qwen, Llama) en Google Cloud o AWS se benefician directamente.
- Marketing y producto: nada cambia de inmediato. El beneficio, si llega, será vía precios de API más bajos de proveedores que usen estos chips.
¿Cuánto cuesta en la práctica?
Ninguna empresa publicó precios nuevos. La única cifra de coste es la de Deepgram: alrededor de un 60% más de audio procesado por dólar que con sus GPU actuales. La tabla es un ejemplo hipotético que aplica esa cifra a dos escalas, con un coste de migración supuesto de 30.000 USD (unos dos ingenieros durante 1–2 meses).
| Supuesto | Equipo pequeño | Equipo grande |
|---|---|---|
| Factura mensual de inferencia en GPU | 2.000 USD | 20.000 USD |
| Coste de la misma carga con +60% por dólar | 1.250 USD | 12.500 USD |
| Ahorro mensual | 750 USD | 7.500 USD |
| Coste de migración (supuesto) | 30.000 USD | 30.000 USD |
| Plazo de recuperación | Unos 40 meses | Unos 4 meses |
Conclusión: con una factura pequeña, cambiar de chip rara vez compensa. Con una factura grande y un modelo estable, las cuentas empiezan a salir. El 60% procede de un solo cliente y una sola carga (audio); su modelo puede rendir mejor, peor o no ganar nada.
Riesgos y límites
- Cobertura de operadores incompleta. En la batería de pruebas de PyTorch de agosto de 2026 se omitieron unas 22.000 pruebas porque TorchNeuron no tenía el operador correspondiente. La primera versión no admite formas dinámicas, tensores dispersos ni NestedTensor; FP8 está en beta privada.
- Las formas dinámicas siguen siendo un punto débil en TPU. Google reconoce que longitudes de secuencia o tamaños de lote variables provocan recompilaciones y que la primera iteración tiene alta latencia. Un chatbot con prompts de longitud muy variable es justo el tipo de carga afectada.
- La dependencia solo cambia de lugar. Las TPU solo existen en Google Cloud y Trainium solo en AWS. Salir de CUDA puede significar atarse más a una nube.
- El código exclusivo de CUDA no funciona. CUDA graphs, llamadas específicas de NCCL y kernels CUDA propios hay que reescribirlos.
Puntos por verificar
- El 52% de MFU y los 8.192 chips son pruebas internas de Google con TorchTitan, sin comparación independiente con GPU de precio similar.
- Las cifras de Zenteiq (unas 4 veces) y Deepgram (+60% por dólar) son testimonios de clientes elegidos por los fabricantes.
- El dato de "85% de las apps de IA usan PyTorch" citado por TechCrunch no tiene fuente identificada; TBN Grow no pudo verificarlo.
- Cómo comprobarlo usted mismo: tome un modelo en producción, mida tokens/segundo y coste por millón de tokens en sus GPU actuales y ejecute el mismo modelo en TPU v6e o Trainium2 con las mismas longitudes de entrada.
La valoración de TBN Grow
Es un cambio en el software de infraestructura con valor real para equipos que entrenan o alojan modelos abiertos en Google Cloud o AWS. Quien tenga facturas de GPU de decenas de miles de dólares al mes debería probarlo ya con un modelo estable. Equipos pequeños, usuarios de API o cargas con entradas muy variables deberían esperar una o dos versiones, hasta que maduren la cobertura de operadores y las formas dinámicas.
Qué observar
Qué vigilar al ejecutar PyTorch en TPU y Trainium
Lo que puede hacer ya
- [ ] Localice cada llamada directa a
cudaen su código y sustitúyala por la APItorch.acceleratorpara facilitar el cambio de chip. - [ ] Pruebe TorchTPU:
pip install torch_tpu==0.2.0en una VM TPU v6e (el README del proyecto la señala como el inicio más sencillo; añada--extra-index-url https://download.pytorch.org/whl/cpupara no instalar la versión CUDA). - [ ] Pruebe TorchNeuron:
pip install torch-neuronxen una instancia trn2 y cambie el dispositivo aneuron. - [ ] Ejecute las pruebas de su propio proyecto para detectar operadores no soportados antes de calcular costes.
- [ ] Compare el coste por millón de tokens o por hora de audio, no solo la velocidad.
Calendario y lo que aún no se ha anunciado
- AWS prevé llevar TorchAO y FP8 a disponibilidad general en la próxima versión y cerrar huecos de operadores; sin fechas.
- Google quiere añadir formas dinámicas a
torch.compiley una biblioteca de kernels precompilados; sin calendario. - Google no ha etiquetado TorchTPU como beta ni como versión general, ni ha publicado la lista completa de generaciones de TPU compatibles.
- Nvidia no ha respondido oficialmente.
Más lectura: El mercado chino de chips de IA cambia: Nvidia baja al 34% y Huawei sube al 28% y el problema de rentabilidad de la inversión en infraestructura de IA.
Fuentes de verificación: Google Cloud Blog, Google Developers Blog, TorchTPU en GitHub, PyTorch Blog – TorchNeuron, AWS What's New, TechCrunch.
