
El 29 de mayo de 2026 se publicó la primera entrega de una serie práctica sobre profiling en PyTorch que presenta torch.profiler y busca reducir la barrera de entrada para desarrolladores. Firmada por Aritra Roy Gosthipaty, Sayak Paul, Sergio Paniego, Rémi Ouazan Reboul y Pedro Cuenca, la guía explica paso a paso cómo obtener trazas útiles para identificar y corregir cuellos de botella en entrenamiento e inferencia. Esto facilita a ingenieros e investigadores comprobar mejoras reales de rendimiento en sus modelos.
La demostración parte de la operación más básica aún relevante en redes neuronales: multiplicación de matrices seguida de suma de sesgo, implementada como torch.add(torch.matmul(x, w), b). El código de referencia se ofrece en 01_matmul_add.py y la receta emplea torch.profiler.profile con activities=[torch.profiler.ProfilerActivity.CPU, torch.profiler.ProfilerActivity.CUDA]. Los autores recomiendan marcar bloques con torch.profiler.record_function("matmul_add") y ejecutar varias iteraciones para calentar la GPU; las mediciones del artículo se realizaron en una NVIDIA A100 — SXM4-80GB.
Los autores subrayan el contexto: sin profiling no es posible saber qué optimizar — ya sea para aumentar tokens/segundo en un LLM, reducir la latencia de inferencia o entender por qué un bucle de entrenamiento es lento — pero las trazas suelen ser densas y difíciles de interpretar. La serie anuncia dos entregas siguientes: Part 2 ampliará el ejemplo a nn.Linear y a un pequeño MLP para motivar optimizaciones y ver kernels, y Part 3 aplicará lo aprendido a modelos de lenguaje grandes.
En términos prácticos, la primera parte enseña a configurar torch.profiler y a interpretar sus salidas: qué devuelve, cómo leer la tabla del profiler y la traza, y cómo distinguir la pista de CPU, la pista de GPU y brechas sospechosas en la ejecución. Además muestra cómo seguir la cadena de eventos desde una llamada en Python hasta el kernel CUDA correspondiente y compara qué cambia —y qué no-al aplicar torch.compile sobre el mismo código.
El post define conceptos útiles para principiantes: un kernel GPU es el programa que se ejecuta en muchos hilos del dispositivo, mientras que la CPU es la que lo programa y lanza. Entre las recomendaciones concretas figuran mantener el script de ejemplo abierto para recorrerlo paso a paso, usar record_function para etiquetar regiones legibles en la traza y ejecutar múltiples iteraciones para obtener mediciones estables y reproducibles.
La serie está diseñada para aumentar su complejidad de forma progresiva — desde matmul+suma, pasando por nn.Linear y MLP, hasta LLMs— y no exige más que conocimientos básicos de PyTorch. La pieza invita a practicar con 01_matmul_add.py y a comparar trazas antes y después de aplicar técnicas como torch.compile para identificar qué optimizaciones realmente aportan ganancia de rendimiento.
Fuentes
Respuestas (0)
Aún no hay respuestas en este tema.