- Kode pelatihan LLM sederhana buatan Andrej Karpathy dalam C/CUDA murni
- Kini dapat menjalankan pelatihan multi-GPU dengan bfloat16 bersama Flash Attention
- Diimplementasikan dalam ~3000 baris kode C/CUDA, dan secara keseluruhan hingga sekitar 7% lebih cepat daripada PyTorch
- Hal-hal yang sudah dikerjakan sejauh ini
- Pelatihan presisi campuran (bfloat16)
- Banyak optimasi kernel termasuk FusedClassifier yang tidak mewujudkan normalized logit (berbeda dengan
torch.compile saat ini)
- Flash Attention (langsung dari cuDNN)
- Struktur data Packed128 yang memaksa A100 menggunakan instruksi load 128-bit (LDG.128) dan store (STS.128)
- Kini pelatihan multi-GPU juga dimungkinkan
- Versi pertama pelatihan multi-GPU menggunakan MPI+NCCL
- Profiling seluruh proses pelatihan dengan NVIDIA Nsight Compute
- PR merge ZeRO (sharding status optimizer) tahap 1
- Tujuannya adalah membuat stack LLM yang stabil, bersih, teruji, minimal, tangguh, dan cukup teroptimasi untuk mereproduksi mini-seri GPT-2 secara langsung di C/CUDA untuk semua ukuran model dari 124M hingga 1.6B
1 komentar
llm.c - melatih LLM dengan C/CUDA mentah