- Mã huấn luyện LLM đơn giản do Andrej Karpathy tạo ra bằng C/CUDA thuần
- Giờ đây có thể thực hiện huấn luyện đa GPU với bfloat16 cùng Flash Attention
- Được triển khai trong khoảng ~3000 dòng mã C/CUDA và nhìn chung nhanh hơn PyTorch tới khoảng 7%
- Những gì đã được thực hiện cho đến nay
- Huấn luyện độ chính xác hỗn hợp (bfloat16)
- Nhiều tối ưu hóa kernel, bao gồm FusedClassifier không hiện thực hóa các log đã chuẩn hóa (khác với
torch.compile hiện tại)
- Flash Attention (trực tiếp từ cuDNN)
- Cấu trúc dữ liệu Packed128 để buộc A100 sử dụng các lệnh nạp 128-bit (LDG.128) và lưu trữ (STS.128)
- Giờ đây cũng có thể huấn luyện đa GPU
- Phiên bản đầu tiên của huấn luyện đa GPU dùng MPI+NCCL
- Profiling toàn bộ lần chạy huấn luyện bằng NVIDIA Nsight Compute
- PR hợp nhất giai đoạn 1 của ZeRO (optimizer state sharding)
- Mục tiêu là xây dựng một stack LLM tối giản nhưng ổn định, sạch sẽ, đã được kiểm thử, được củng cố và tối ưu hóa đủ tốt để tái tạo trực tiếp bằng C/CUDA toàn bộ mini-series GPT-2 với mọi kích thước mô hình từ 124M đến 1.6B
1 bình luận
llm.c - huấn luyện LLM bằng raw C/CUDA