12 puntos por xguru 2024-05-06 | 1 comentarios | Compartir por WhatsApp
  • Código simple de entrenamiento de LLM creado por Andrej Karpathy en C/CUDA puro
  • Ahora realiza entrenamiento multi-GPU en bfloat16 junto con Flash Attention
  • Está implementado en ~3000 líneas de código C/CUDA y, en general, es hasta un 7% más rápido que PyTorch
  • Lo que se ha trabajado hasta ahora
    • Entrenamiento de precisión mixta (bfloat16)
    • Muchas optimizaciones de kernels, incluido FusedClassifier, que no materializa los logits normalizados (a diferencia del torch.compile actual)
    • Flash Attention (directamente desde cuDNN)
    • Estructura de datos Packed128 que obliga a A100 a usar instrucciones de carga de 128 bits (LDG.128) y almacenamiento (STS.128)
  • Ahora también es posible el entrenamiento multi-GPU
    • Primera versión de entrenamiento multi-GPU con MPI+NCCL
    • Perfilado de toda la ejecución de entrenamiento con NVIDIA Nsight Compute
    • PR de fusión de la etapa 1 de ZeRO (sharding del estado del optimizador)
  • El objetivo es crear un stack de LLM en C/CUDA estable, limpio, probado, mínimo, robusto y suficientemente optimizado, capaz de reproducir directamente la miniserie GPT-2 de todos los tamaños de modelo, desde 124M hasta 1.6B