Acelerando el entrenamiento de transformadores con NVIDIA Transformer Engine, kernels fusionados, BF16, FP8 y evaluación comparativa de GPU
NVIDIA
Este tutorial explora cómo NVIDIA Transformer Engine acelera las cargas de trabajo de transformadores combinando kernels de GPU fusionados, cálculo en BF16 y ejecución de FP8 consciente del hardware. Cubre la instalación, detección de GPU, recorrido por los módulos, configuración de la receta FP8, entrenamiento de modelos, evaluación comparativa y generación autorregresiva.
El tutorial comienza instalando NVIDIA Transformer Engine e inicializando el entorno de PyTorch. Detecta la arquitectura de la GPU para determinar si los kernels de TE y los núcleos tensoriales FP8 son compatibles, con un respaldo de solo PyTorch para hardware no compatible. Se examinan los componentes fusionados principales, como te.Linear, te.LayerNorm, te.LayerNormLinear, te.LayerNormMLP y te.TransformerLayer. Se configura una receta FP8 de escala retrasada con formatos híbridos E4M3/E5M2 e historial de amax. Se construye un modelo de lenguaje causal compacto estilo GPT utilizando bloques te.TransformerLayer fusionados, y se implementa un modelo equivalente de solo PyTorch para comparación. El modelo se entrena en secuencias deterministas de patrones aritméticos sintéticos, con autocast FP8 condicional cuando es compatible. Las pruebas de rendimiento miden la latencia promedio por paso y el uso máximo de memoria de la GPU para los modos BF16 y FP8. Se inspeccionan los metadatos FP8, incluidos los factores de escala y el historial de amax. Finalmente, la generación autoregresiva codiciosa valida que el modelo aprende el paso aritmético, y se sugieren extensiones como modelos más grandes y formatos FP8 alternativos.
Fuente: MarkTechPost —
original
