- Andrej Karpathy द्वारा pure C/CUDA में बनाया गया एक सरल LLM training code
- अब bfloat16 में Flash Attention के साथ multi-GPU training कर सकता है
- ~3000 लाइनों के C/CUDA code में implement किया गया है, और कुल मिलाकर PyTorch से लगभग 7% तक तेज़ है
- अब तक किए गए काम
- mixed precision training (bfloat16)
- कई kernel optimizations, जिनमें FusedClassifier भी शामिल है जो normalized logits को materialize नहीं करता (मौजूदा
torch.compile के विपरीत)
- Flash Attention (सीधे cuDNN से)
- Packed128 data structure, जो A100 को 128-bit load (
LDG.128) और store (STS.128) instructions का उपयोग करने के लिए मजबूर करता है
- अब multi-GPU training भी संभव है
- MPI+NCCL का उपयोग करने वाला multi-GPU training का पहला version
- NVIDIA Nsight Compute के साथ पूरे training run की profiling
- ZeRO (optimizer state sharding) stage 1 merge PR
- लक्ष्य 124M से 1.6B तक के सभी model sizes की GPT-2 mini-series को सीधे C/CUDA में पुनर्निर्मित करने के लिए
स्थिर, साफ, tested, minimal, robust, और पर्याप्त रूप से optimized LLM stack बनाना है
1 टिप्पणियां
llm.c - raw C/CUDA से LLM को train करना