用纯C语言从零构建了一个BitNet推理引擎——在Xeon上比bitnet.cpp快1.8倍(36 tok/s),零依赖 [招募BitNet和Bonsai CPU测试者]

Reddit r/LocalLLaMA 工具

摘要

Project Zero 是一个从零构建的 C99 LLM推理引擎,可在 CPU 上运行 BitNet 与 Qwen Bonsai-27B,拥有零外部依赖,在 Xeon 上相比 bitnet.cpp 实现 1.8 倍加速。该项目诚邀社区为这两种模型提供基准测试结果。

嘿,r/LocalLLM,我们构建了 Project Zero —— 一个从头编写的纯 C99 CPU 推理引擎,支持运行 LLM,无需显卡。在相同硬件上,它比 bitnet.cpp 快 1.8 倍。我们还完全支持在 CPU 上运行 Qwen Bonsai-27B,希望大家帮忙在多种 x86 CPU 上跑出这两个模型的基准数据。 **它是什么** 单个二进制文件,零外部依赖 —— 不需要 Python、CUDA、ONNX 或 PyTorch。只需 GCC + make + CPU。 支持: - **Microsoft BitNet b1.58-2B-4T** —— 三值权重 ({−1, 0, +1}),二进制文件仅 1.18 GB,提供完整 REPL + 智能体循环 - **Qwen Bonsai-27B** —— 直接读取 GGUF 文件(例如 Ternary-Bonsai-27B-Q2_0.gguf),内存安全的内存映射(mmap)架构,即使在内存受限的环境下也不会 OOM **BitNet 性能 —— 亮点部分** | 硬件 | Project Zero | bitnet.cpp | 加速比 | |------|--------------|------------|--------| | Intel Xeon (Emerald Rapids, 4C) | 36.25 tok/s | 19.33 tok/s | 1.87× | | i5-11300H (Tiger Lake, 双通道 DDR4) | ~16.1 tok/s | ~13.0 tok/s | 1.23× | 在 Xeon 上,我们达到了理论 DRAM 带宽上限的约 95%。在那台机器上,BitNet 的性能基本上已经榨干。 **加速原理**: BitNet 权重以三值形式紧打包为 4 位/字节。我们不采用解包 → float → FMA 的方式,而是使用一个仅需 3 条指令的 VBMI 内核(`vpermi2b` + `vpternlogd` + `vpaddb`),直接喂入 INT8 VNNI 累加指令(`vpdpbusds`)。线程池采用 C11 原子操作的自旋-睡眠策略,消除了 futex 系统调用。 **社区挑战:BitNet 和 Bonsai 基准测试** 目前我们只在两台机器上测试了 BitNet。我们需要看看,在旧款 CPU 架构上,后备的三值内核是否仍能带来加速,并摸清服务器硬件上的内存带宽上限。 此外,PrismML 正在积极征集 Bonsai-27B 的社区基准数据。目前他们的排行榜上所有条目都是基于 GPU(CUDA/Metal/MLX)的,**纯 CPU x86 的条目一条都没有**。我们想改变这一局面。 由于 Project Zero 采用零拷贝的 mmap 架构,你可以在资源严重受限的硬件上运行 Bonsai-27B 而不会崩溃。如果你有一块较老的 AVX2 芯片,或者一台高核心数的 Xeon/EPYC,我们想知道你跑这两个模型能获得多少 token 速率。 **如何测试和跑分** 1. 克隆并构建: ```bash git clone https://github.com/shifulegend/project-zero.git cd project-zero make demo ``` 2. 运行 BitNet 或 Bonsai-27B: ```bash # BitNet (b1.58-2B-4T): ./adaptive_ai_engine --model models/bitnet-b1.58-2B-4T.bin --tokenizer models/bitnet-b1.58-2B-4T_tokenizer_proper.bin --threads 4 # Qwen Bonsai-27B (GGUF): ./adaptive_ai_engine --model models/Ternary-Bonsai-27B-Q2_0.gguf --threads 4 ``` **在哪里发布结果**: 你可以直接在此帖下方回复,或将其发布在仓库的 Discussion #3 中。 仓库地址:https://github.com/shifulegend/project-zero 非常乐意回答关于三值内核设计、AVX-512 VNNI 调度、DRAM 瓶颈,以及我们为何聚焦 Bonsai-27B 的任何问题!
查看原文

相似文章

Bitnet.cpp:面向三值大语言模型的高效边缘推理

Papers with Code Trending

Bitnet.cpp 提出了一个混合精度矩阵乘法库,用于高效边缘推理三值大语言模型(如 BitNet b1.58),相比全精度基线实现了高达 6.25 倍的加速。该系统已在 GitHub 上开源。

Ternary Bonsai:1.58 比特下的顶级智能

Hacker News Top

一种使用三值权重(-1、0、1)的高效 AI 模型架构,仅需 1.58 比特/参数即可实现具有竞争力的性能,可部署在极度受限的设备上。

BitNet 文本嵌入

arXiv cs.CL

本文介绍了 BitEmbed,一个用于基于 LLM 的文本嵌入的极低位宽框架,它将预训练的 LLM 骨干转换为具有三值权重和量化激活的 BitNet 风格编码器。该框架在显著降低编码和存储成本的同时,实现了与全精度模型相当的性能。