📘 llama.cpp 算子开发·优化实战

30章 从入门到精通
🧑‍🏫 友好色系
01 llama.cpp 项目概览
项目背景 · 核心架构 · 编译运行 · 社区生态
02 C++基础与性能编程
现代C++ (C++17/20) · 内存管理 · RAII · 移动语义 · 智能指针
03 量化基础与GGML类型系统
量化原理 (FP16/INT8/INT4) · GGML张量 · 内存布局
04 GGML库核心概念
ggml_tensor · ggml_cgraph · ggml_context
05 算子开发环境搭建
编译选项 · gdb/perf · nsys/vtune 性能分析
06 第一个GGML算子
从零实现向量加法 ggml_add
07 算子注册与调度机制
ggml_ops表 · op参数解析 · 前向/反向传播
08 矩阵乘法算子 MatMul
基础实现 · 循环优化 · 缓存友好访问
09 量化矩阵乘法 QMatMul
INT8/INT4量化 · 反量化与计算融合
10 注意力机制算子 Attention
SDPA · Flash Attention思路 · 内存优化
11 激活函数算子
ReLU · GELU · SiLU 实现与融合优化
12 归一化算子 RMSNorm / LayerNorm
实现细节 · 数值稳定性 · 融合kernel
13 Softmax 算子
数值稳定性 · 在线softmax · 融合mask
14 RoPE 旋转位置编码算子
实现原理 · 复数乘法优化 · 就地计算
15 KV Cache 算子
内存管理 · 分页缓存 · 连续批处理支持
16 SIMD 优化基础
x86 (AVX2/AVX-512) · ARM (NEON/SVE) 入门
17 手写SIMD内核
intrinsics 优化向量加法·点积·reduce
18 算子融合策略
kernel融合 · 计算图融合 · 内存访问优化
19 内存带宽优化
数据布局 (NCHW/NHWC) · 对齐 · 预取 · 非临时存储
20 多线程并行
OpenMP · 线程池 · 任务调度 · 负载均衡
21 GPU后端支持
CUDA/ROCm/Metal 基础 · GPU算子入门
22 CUDA算子开发
从零实现CUDA kernel · 共享内存 · warp优化
23 算子自动调优
AutoTVM思路 · 参数搜索 · 硬件特性适配
24 性能Profiling与瓶颈分析
perf/nsys定位热点 · roofline模型
25 常见性能陷阱
分支预测 · 伪共享 · TLB miss · 内存碎片
26 测试与验证
单元测试框架 · 数值精度测试 · 回归测试
27 算子文档与代码规范
Doxygen注释 · 命名规范 · PR流程
28 实战案例1:优化LLaMA Attention
LLaMA模型的Attention算子优化
29 实战案例2:Mamba SSM算子
为Mamba模型开发自定义SSM算子
30 课程总结与进阶方向
社区贡献指南 · 前沿论文 · 持续学习路径