编程 kimi-k3-in-c:纯C99实现的Kimi K3推理引擎,176KB二进制,8GB内存可跑2.78万亿参数模型

2026-09-05 19:05:56

kimi-k3-in-c:纯C99实现的Kimi K3推理引擎,176KB二进制,8GB内存可跑2.78万亿参数模型

Kimi K3发布时,圈子里都在讨论一件事:2.78万亿参数,全球第一个开源的三万亿级模型。马斯克在X上点了赞,有人称之为"Sputnik时刻"。但热闹归热闹,跑起来要几十个H100,普通人别说跑,连下载1.56TB的权重文件都很难。

kimi-k3-in-c 把运行门槛直接拉到了地面。它在GitHub上已获得超过3800个Star。

它是用纯C99写的Kimi K3推理引擎,2.78万亿参数的模型甚至不用显卡,普通电脑只靠CPU和8GB内存就能跑起来。

零框架、零GPU、零依赖,整个引擎大小为176KB,跑出来的结果和PyTorch官方实现逐字节完全一样。

实际运行体验

只需要一台装有Linux的台式电脑和一块NVMe固态硬盘。装上GCC编译器,克隆仓库,make一下,一分钟编译完。然后下载模型权重1.56TB,大概几小时,下载后自动验证,出错会自己报出来。

运行检测脚本k3-doctor.sh,它会自动检测磁盘带宽和内存大小并给出推荐值。选择laptop预设,8G内存就可以运行。输入"法国的首都是",等待半分钟后输出Paris。同样的提示词换成128GB内存的server预设,5.6秒就出结果。

Reddit上有人说,这个项目问的问题跟别人不一样:别人的想法是把模型放到内存中去,而它的想法是——模型真的要一直留在内存里吗?问题一问对,答案就不一样了。

技术原理

01 四重压缩,675倍压缩

模型原始大小为5.56TB,最终运行时只需要8.24GB内存,缩小了675倍。第一,权重出厂时就是半字节格式,1.56TB直接存到硬盘上不需要解压;第二,每个模型层有896个专家,每次推理只唤醒16个,其余1.45TB的权重从不进入内存;第三是专家权重自动缓存,重复使用时直接拿,不从硬盘读。

02 无依赖,只用C99标准库

整个推理引擎只用了7个C源文件,编译后得到一个176KB的静态二进制文件。不需要PyTorch、CUDA等任何GPU框架,也不需要ONNX这样的中间层,只用到基本的数学库。注意力机制、矩阵乘法、激活函数等所有数学运算都是自己写的。基础运算和CPU向量加速走两条不同路径,靠固定累加顺序保证结果逐位一致——两台不同机器运行同一个提示词,得到的是完全一样的结果。

03 确定性验证,三道关卡

不需要下载模型就可以进行全部测试。第一道门禁,逐token与官方输出比较,32个位置都一致;用两种不同生成方式分别运行20个token,带缓存的情况下都正确;93层逐层和PyTorch参考值对比无差异。

04 内存阶梯,8GB到224GB结果完全相同

使用Linux cgroup限制内存,测试了12个预算等级,各个等级的输出结果都一样。内存是速度旋钮,并不是正确性开关。从笔记本上的8GB(26.5秒/Token)到服务器上的128GB以上(5.6秒/Token),只是速度不同。

这里有一个反常识的地方:内存并不是越大越快。当插入四条大容量内存后,为保证稳定性主板会自动降低频率,导致带宽变小。瓶颈是会转移的——模型小的时候卡在频率,模型大的时候卡在容量。

安装方式

克隆仓库,编译和验证:

git clone https://github.com/FareedKhan-dev/kimi-k3-in-c.git
cd kimi-k3-in-c
make -j
make test

测试套件不需要模型权重,一分钟跑完,通过就说明引擎本身没问题。然后下载模型并运行:

export HF_TOKEN=hf_your_token_here
./scripts/download-model.sh ~/k3model

下载完打包主干,选一个预设就能跑:

python3 tools/pack_trunk.py ~/k3model ~/k3trunk
./bin/k3 ~/k3model --trunk ~/k3trunk --preset laptop \
  --tok ~/k3model --prompt "法国的首都是" --gen 8 --incremental

注意事项

  • 只能在Linux x86-64上运行,需要O_DIRECT和posix_memalign
  • 需要1.7TB存储空间,其中1.56TB是检查点,109GB是打包主干
  • 没有聊天模板,没有temperature采样,没有HTTP API,就是一个基座模型直接续写
  • "8GB实测"是在228GB服务器上用cgroup限制进行的,并非真实8GB物理机

小结

这个项目引发了一些争议:有人认为176KB二进制运行2.78万亿参数模型是技术奇迹,也有人质疑8GB实测的真实性。两种说法都对,但重点在于它证明了一个思路是可行的。kimi-k3-in-c的贡献不是让你现在就能用它,而是让你知道这件事能够实现。项目基于MIT协议开源。

开源地址:https://github.com/FareedKhan-dev/kimi-k3-in-c

推荐文章

程序员茄子在线接单