Appearance
llm.c — 學習索引
專案概述
GPT-2/GPT-3 訓練框架,純 C/CUDA 實作,無 PyTorch 依賴。
學習目標摘要
- 理解 GPU 並行運算在大模型訓練中的底層實作
- 掌握 CUDA kernel 設計:Grid/Block/Warp 結構與記憶體合併
- 學習用 C + CUDA 實現高效能 Transformer 訓練(效能超越 PyTorch)
前置知識
- C/C++ 程式基礎
- 基本的 CUDA 概念(可選,文件有入門解說)
- llm.c 之前的階段(Transformer 架構、反向傳播)
關鍵概念
- CUDA Kernel:GPU 上的最小執行單位
- Grid / Block / Warp:GPU 並行運算的層級結構
- 記憶體合併(Memory Coalescing):最佳化 GPU 記憶體存取
- Kernel Fusion:合併多個運算減少記憶體來回
- Mixed Precision Training:FP16/BF16 混合精度訓練
- CuBLAS / CuDNN:NVIDIA 加速庫的使用
筆記
| 筆記 | 說明 |
|---|---|
| llmc-01-閱讀摘要 | 專案定位、核心架構、訓練流程 |
| llmc-02-文件重點 | 技術細節:CUDA kernel、記憶體管理、多 GPU |
| llmc-03-閱讀心得 | 個人反思與啟發 |
| llmc-04-閱讀評論 | 優缺點分析、與 nanoGPT 比較 |
| llmc-05-程式碼逐行解讀 | LayerNorm forward/backward、CUDA kernel、Transformer block |
| llmc-06-概念卡片 | CUDA → Grid/Block/Warp、記憶體合併、Kernel Fusion |
| llmc-07-Q&A問答集 | 關於 CUDA 優化與訓練流程的常見問題 |
| llmc-08-實驗紀錄 | 建置指南、硬體需求、CLI 參數 |
| llmc-09-延伸資源 | 論文、影片、相關專案、語言移植 |
| llmc-10-詞彙對照表 | 中英詞彙對照 |
原文檔案
翻譯
學習路徑建議
- 先讀 llmc-01-閱讀摘要 了解全貌
- 看 llmc-05-程式碼逐行解讀 理解程式運作
- 閱讀
doc/layernorm/layernorm.md做第一個實作練習 - 透過 llmc-06-概念卡片 補強 CUDA 知識
- 實機操作 llmc-08-實驗紀錄 建置與訓練