Appearance
ds4.c 学习知识地图
项目概览
- DwarfStar(ds4.c):antirez 编写的原生推理引擎,首要支持 DeepSeek V4 Flash,也支持 GLM 5.2 和(大内存机器上)DeepSeek V4 PRO——不再 DeepSeek 专用
- ~65,000 行 ds4.c 核心(C),加上 Metal / CUDA / ROCm 后端共 ~240K 行(C + Objective-C + MSL + CUDA + HIP)
- 零外部依赖:JSON、HTTP、分词器全部手写
- 目标平台:Apple Silicon Mac(Metal)、NVIDIA GPU(CUDA,含多卡与 DGX Spark)、AMD GPU(ROCm,Strix Halo)
- 扩展能力:分布式流水线并行、张量并行(Mac RDMA + CUDA)、SSD streaming、会话批处理、多 GPU 放置
- GGUF 量化工具:
gguf-tools/提供 imatrix 收集和 HF-to-GGUF 量化 - 贡献指南:
CONTRIBUTING.md+QA_BEFORE_RELEASES.md含回归测试流程(make test、CUDA regression、质量评分)
知识索引
C 语言知识点
| 概念 | 主题 | 对应文件 |
|---|---|---|
| Makefile / 编译流程 | Part 1 | Makefile |
| malloc/free / xmalloc | Part 1 | ds4.c |
| mmap 零拷贝 | Part 1 | ds4.c |
| __thread TLS | Part 1 | ds4.c |
| struct 对齐 / static_assert | Part 1 | ds4.c |
| 字节序 / 二进制解析 | Part 1 | ds4.c |
| 哈希表(开放寻址) | Part 2 | ds4.c |
| 字符串操作 | Part 2 | ds4.c |
| 浮点运算 / softmax | Part 2 | ds4.c |
| union 类型转换 | Part 2 | ds4.c |
| opaque type 设计 | Part 3 | ds4.h |
| 位操作 / 量化 | Part 3 | ds4.c |
| 多维数组索引 | Part 3 | ds4.c |
| 指针数组 | Part 3 | ds4.c |
| volatile / 信号 | Part 4 | ds4.c |
| pthread 线程池 | Part 4 | ds4.c |
| mutex / condvar | Part 4 | ds4.c |
| POSIX socket | Part 5 | ds4_server.c |
| poll I/O 多路复用 | Part 5 | ds4_server.c |
| 文件 I/O / SHA1 | Part 5 | ds4_server.c |
| JSON 手写解析 | Part 5 | ds4_server.c |
| ObjC 互操作 | Part 6 | ds4_metal.m |
LLM 知识点
| 概念 | 主题 | 对应文件 |
|---|---|---|
| 推理引擎是什么 | Part 1 | README.md |
| 模型文件格式 (GGUF) | Part 1 | ds4.c |
| BPE 分词 | Part 2 | ds4.c |
| 采样策略 | Part 2 | ds4.c |
| Transformer 权重结构 | Part 3 | ds4.h |
| 模型量化 | Part 3 | ds4.c |
| imatrix 重要性矩阵 | — | gguf-tools/ |
| GGUF 量化工具 | — | gguf-tools/ |
| Self-Attention | Part 3 | ds4.c |
| KV Cache | Part 3 | ds4.c |
| MLA (压缩注意力) | Part 3 | ds4.c |
| MoE (混合专家) | Part 3 | ds4.c |
| SwiGLU 激活 | Part 3 | ds4.c |
| RoPE 位置编码 | Part 4 | ds4.c |
| prefill vs decode | Part 4 | ds4.c |
| 自回归生成 | Part 4 | ds4.c |
| 推理并行性 | Part 4 | ds4.c |
| SSE 流式响应 | Part 5 | ds4_server.c |
| Responses API (/v1/responses) | Part 5 | ds4_server.c |
| KV Cache 持久化 | Part 5 | ds4.c |
| OpenAI/Anthropic API | Part 5 | ds4_server.c |
| Tool Calling | Part 5 | ds4_server.c |
| Live Tool Continuation | Part 5 | ds4_server.c |
| KV Cache 命中衰减与驱逐 | Part 5 | ds4_server.c |
| KV Cache 用量报告 | Part 5 | ds4_server.c |
| ds4-eval 能力评估 | Part 5 | ds4_eval.c |
| DeepSeek V4 模型卡 | Part 1 | MODEL_CARD.md |
| GPU 加速 / Flash Attention | Part 6 | metal/ ds4_cuda.cu |
| CUDA Managed KV Cache | Part 6 | ds4_cuda.cu |
| 分布式流水线并行 | 术语表 | ds4_distributed.c |
| 张量并行(Mac RDMA / CUDA) | 术语表 | ds4_tp.c |
| 会话批处理(--batched-session) | 术语表 | ds4_server.c |
| DSpark 推测解码 | 术语表 | ds4.c |
| 多 GPU 放置 / 层打包 | Part 6 | ds4_layer_pack.c ds4_gpu_args.c |
| GLM 5.2 多模型支持 | Part 3 | ds4.c |
学习进度
| 天 | 日期 | 状态 | 对应主题 |
|---|---|---|---|
| 1 | 2025-05-09 | 已完成 | Part 1: 构建与加载 |
| 2 | 2025-05-09 | 已完成 | Part 1: 构建与加载 |
| 3 | 2025-05-09 | 已完成 | Part 1: 构建与加载 |
| 4 | 2025-05-09 | 已完成 | Part 2: 分词与采样 |
| 5 | 2025-05-09 | 已完成 | Part 2: 分词与采样 |
| 6 | 2025-05-09 | 已完成 | Part 3: 模型架构 |
| 7 | 2025-05-09 | 已完成 | Part 3: 模型架构 |
| 8 | 2025-05-09 | 已完成 | Part 3: 模型架构 |
| 9 | 2025-05-09 | 已完成 | Part 3: 模型架构 |
| 10 | 2025-05-09 | 已完成 | Part 4: 推理流程 |
| 11 | 2025-05-09 | 已完成 | Part 4: 推理流程 |
| 12 | 2025-05-09 | 已完成 | Part 5: 服务层 |
| 13 | 2025-05-09 | 已完成 | Part 5: 服务层 |
| 14 | 2025-05-09 | 已完成 | Part 5: 服务层 |
| 15 | 2025-05-09 | 已完成 | Part 6: GPU 加速 |