12 Punkte von xguru 2024-05-06 | 1 Kommentare | Auf WhatsApp teilen
  • Einfacher LLM-Trainingscode von Andrej Karpathy, geschrieben in reinem C/CUDA
  • Führt jetzt Multi-GPU-Training in bfloat16 zusammen mit Flash Attention aus
  • Implementiert in ~3000 Zeilen C/CUDA-Code und insgesamt bis zu etwa 7 % schneller als PyTorch
  • Bisher erledigte Arbeiten
    • Mixed-Precision-Training (bfloat16)
    • Viele Kernel-Optimierungen, darunter ein FusedClassifier, der normalisierte Logits nicht materialisiert (anders als das aktuelle torch.compile)
    • Flash Attention (direkt aus cuDNN)
    • Die Datenstruktur Packed128, die A100 zur Verwendung von 128-Bit-Lade- (LDG.128) und Speicherbefehlen (STS.128) zwingt
  • Jetzt auch Multi-GPU-Training möglich
    • Erste Version von Multi-GPU-Training mit MPI+NCCL
    • Profiling eines vollständigen Trainingslaufs mit NVIDIA Nsight Compute
    • Merge-PR für ZeRO (Sharding des Optimizer-Status) Stufe 1
  • Ziel ist es, einen stabilen, sauberen, getesteten, minimalen, gehärteten und ausreichend optimierten LLM-Stack zu schaffen, der die GPT-2-Miniserie in allen Modellgrößen von 124M bis 1.6B direkt in C/CUDA reproduziert

1 Kommentare

 
xguru 2024-05-06

llm.c - LLM-Training in rohem C/CUDA

unterstützt jetzt Multi-GPU-Training und ist etwa 7 % schneller als PyTorch