C · 项目报告

FareedKhan-dev/kimi-k3-in-c

A 2.78-trillion-parameter Kimi K3 running inference on a single CPU in 8.24 GB of RAM. Portable C99: no BLAS, no framework, no GPU.

已完成 打开 GitHub
F
3,139星标
522Fork
5Issue
Apache-2.0许可证

分析结果

项目分析

这是一个用纯 C99 实现的 Kimi K3 推理引擎实验项目,目标是在单台 x86-64 CPU 机器上运行 2.78 万亿参数的 Kimi K3 模型推理。项目不依赖 BLAS、深度学习框架或 GPU,通过专家权重 4-bit 打包、流式读取 trunk、专家 LRU 缓存、AVX2/FMA SIMD 优化等方式,将运行内存压到最低约 8.24GB,但需要约 1.56TB 模型 checkpoint 和额外约 109GB trunk 打包文件。它更适合系统编程、推理引擎、模型压缩/量化、LLM 底层实现研究,而不是面向普通应用开发的高性能聊天服务。

适用领域 大语言模型推理 / CPU 推理引擎 / 系统编程 / C99 高性能计算 / 模型量化 / Mixture-of-Experts/MoE / LLM 内存优化 / 模型权重流式加载 / AVX2 SIMD 优化 / 深度学习框架底层实现研究
配置难度 高。简单编译和运行测试较容易,但完整运行模型需要 TB 级存储、Hugging Face 下载、trunk 打包、高速磁盘和对底层推理机制的理解;二次开发难度更高,适合有系统编程和 LLM 推理经验的开发者。
商业价值 中等偏研究型价值。它不适合直接作为商业 LLM 服务部署,因为延迟高、存储要求巨大、生态集成少;但对推理引擎团队、AI Infra 团队、模型压缩/量化研究团队具有较高参考价值,可用于学习超大 MoE 模型低内存推理、CPU fallback、权重流式加载和缓存策略设计。对于希望构建国产化、无 GPU 依赖或极端资源约束推理方案的团队,也有一定技术启发意义。
01

技术亮点

  • 非常激进的工程目标:在单 CPU、约 8GB RAM 下运行 2.78T 参数级别 MoE 模型。
  • 纯 C99 实现,依赖极少,无 BLAS、无 PyTorch、无 CUDA、无 GPU。
  • 工程文档非常完整,README 不只是安装说明,还详细解释了 checkpoint 读取、tokenizer、MoE 专家选择、trunk packing、cache 策略和验证方法。
  • 支持不同内存 preset,同一模型在 8GB 到 224GB 之间输出保持 byte-identical,内存主要影响速度。
  • 提供无需下载 TB 级模型即可运行的测试套件,可先验证核心推理逻辑。
  • 对系统开发者很有学习价值,展示了如何用 mmap/直接 I/O/缓存/量化/SIMD 组合处理超大模型。
  • Apache-2.0 许可证,便于学习、修改和商业环境评估。
  • 项目关注可验证性,README 中强调测量数据来自 docs/data,并提供 reference fixtures 和 gate 测试。
02

目标用户

  • 研究 LLM 推理系统的开发者
  • 对 llama.cpp、ggml、vLLM 等底层推理实现感兴趣的工程师
  • 熟悉 C/C++、Linux、SIMD、内存管理的系统程序员
  • 希望理解超大 MoE 模型如何在低内存环境中运行的研究人员
  • 做模型量化、专家缓存、CPU inference 优化的算法/工程团队
  • 有大容量本地 NVMe 存储并愿意下载 TB 级模型的高级用户
03

配置要求

  • 操作系统:Linux x86-64。
  • CPU:需要 AVX2 + FMA;AVX-512 不是必须。
  • 内存:最低约 8GB 可运行,但速度极慢;更多内存只改善速度,不改变输出。
  • 存储:至少约 1.7TB 可用空间,包含 1.56TB checkpoint 和约 109GB packed trunk;强烈建议使用高速本地 NVMe。
  • 编译工具链:GCC >= 9 或 Clang >= 10,GNU make;可选 CMake。
  • Python:3.9+,用于模型下载、trunk 打包和分析工具;核心 make test 不依赖 Python。
  • 依赖:C99 compiler、libm、OpenMP;无 BLAS、无深度学习框架、无 GPU 依赖。
  • 模型文件:需要 96 个 safetensors shard、config.json、tokenizer 文件等完整 checkpoint。
  • 环境变量:HF_TOKEN 用于 Hugging Face 模型下载。
04

适用场景

  • 学习如何用 C99 从零实现 Transformer/MoE 推理引擎
  • 验证 Kimi K3 这类超大 MoE 模型在 CPU 上低内存运行的可行性
  • 研究 4-bit 专家权重、MXFP4、线性注意力、MLA/KDA 等机制的工程实现
  • 测试不同内存预算下 trunk streaming 和专家缓存策略对性能的影响
  • 作为 CPU-only LLM inference、zero-dependency inference engine 的教学和实验样例
  • 在无 GPU 但有大容量高速存储的服务器或工作站上做低速推理实验
05

部署与配置

  • 准备 Linux x86-64 环境,CPU 需支持 AVX2 和 FMA,安装 GCC 9+ 或 Clang 10+、GNU make;可选安装 CMake。
  • 克隆仓库:git clone https://github.com/FareedKhan-dev/kimi-k3-in-c.git && cd kimi-k3-in-c
  • 运行环境检查:./scripts/k3-doctor.sh,用于检查工具链、内存、磁盘性能和可用空间。
  • 编译项目:make -j;或使用 CMake:cmake -B build && cmake --build build -j
  • 在未下载模型前先运行测试:make test,确认 C 引擎、tokenizer、safetensors reader、缓存逻辑和测试 oracle 均正常。
  • 从 Hugging Face 获取访问 token,设置环境变量:export HF_TOKEN=hf_your_token_here
  • 下载 Kimi K3 checkpoint:./scripts/download-model.sh ~/k3model。该步骤约需 1.56TB 下载量,耗时较长。
  • 打包 trunk:./scripts/pack-trunk.sh ~/k3model ~/k3trunk,生成约 109GB 的 trunk.bin/trunk.json。
  • 运行推理示例:./bin/k3 ~/k3model --trunk ~/k3trunk --preset workstation --tok ~/k3model --prompt "The capital of France is" --gen 8 --incremental
06

风险与注意事项

  • 实际使用门槛很高:需要下载 1.56TB 模型 checkpoint,并额外生成约 109GB trunk 文件。
  • 最低内存运行虽然可行,但速度极慢,README 示例中 8 tokens 需要约 261.5 秒,约 32.69 秒/token。
  • 不是聊天模型服务框架;Kimi K3 base model 没有 chat template,输出是续写而非指令对话。
  • 强依赖 Linux x86-64、AVX2/FMA 和高速本地存储,普通笔记本即使内存够也可能因磁盘性能体验很差。
  • 项目版本为 0.1.0,可能仍处于实验性质,接口、性能和兼容性存在变化风险。
  • README 中的惊人指标需要完整 checkpoint 和特定运行方式复现,不能等同于生产级高吞吐推理方案。
  • CPU-only 超大模型推理的单位 token 延迟很高,不适合在线客服、实时聊天、API 商业服务等低延迟场景。
  • 对中国开发者而言,Hugging Face 大文件下载可能受网络、权限、带宽和稳定性影响较大。
  • 完整理解和二次开发需要 C、Linux I/O、SIMD、Transformer/MoE 结构等多方面知识。

历史记录

热榜历史快照

2026-08-08 第2名 新收录 · github_search
2026-08-07 第3名 新收录 · github_search
2026-08-06 第5名 新收录 · github_search
2026-08-05 第5名 新收录 · github_search
2026-08-04 第8名 新收录 · github_search