新闻详情

新闻详情

首页 / 资讯中心 / 详情

BitNet 无 GPU 快速推理:1-bit LLM 在普通 CPU 上的完整落地路径

发布时间:2026/9/1 13:47:47来源:尧图网络
BitNet 无 GPU 快速推理:1-bit LLM 在普通 CPU 上的完整落地路径
BitNet 无 GPU 快速推理1-bit LLM 在普通 CPU 上的完整落地路径【免费下载链接】BitNetOfficial inference framework for 1-bit LLMs项目地址: https://gitcode.com/GitHub_Trending/bitne/BitNetbitnet.cpp 是微软开源的 1-bit LLM 推理框架为没有 GPU 的 CPU 用户提供 BitNet b1.58 系列模型的本地部署能力。一台 8 核笔记本跑 2B 模型很多量化方案生成速度只有 2~3 tokens/s风扇却已经拉满。bitnet.cpp 用查找表内核LUT kernels把 1.58-bit 权重换成查表加整数累加官方数据x86 上比原始实现快 2.37x~6.17xARM 上快 1.37x~5.07x单台 CPU 即可把 100B 参数模型跑到接近人眼阅读速度。三个理由值得你部署它内存占用直降 8 倍相比 FP16 权重1-bit 量化让 2B 模型文件从数 GB 缩到约 1GB 量级8GB 内存的旧机器也能装下完整模型。不需要 GPU只需一台 CPUx86AVX2与 ARMNEON/DOTPROD都带专用内核笔记本、迷你主机、开发板均可部署。无损推理1.58-bit 权重 查表内核输出精度与原始模型一致速度提升不靠牺牲质量换取。图AMD EPYC 7V13 上 2B 模型的吞吐对比。绿色为优化内核红色为原始实现左侧子图是 prompt 处理pp128右侧是 token 生成tg128。跑通路径分四步拉仓库、一键编译、启动推理、压测拿数。每一步末尾附一条排错提示遇到报错先对照再翻日志。第 1 步克隆仓库并装 Python 依赖git clone --recursive https://gitcode.com/GitHub_Trending/bitne/BitNet # 带 --recursive 拉取 llama.cpp 子模块 cd BitNet conda create -n bitnet-cpp python3.10 -y # Python 3.10 是硬性要求 conda activate bitnet-cpp pip install -r requirements.txt # 转换/量化脚本依赖来自 llama.cpp 子模块排错cmake报3rdparty/llama.cpp相关目录为空 →git submodule update --init --recursive。第 2 步一键编译并准备 2B 模型setup_env.py 把内核代码生成 cmake 编译 模型下载 GGUF 量化串成一条命令首次执行最耗时的是编译。python setup_env.py -hr microsoft/BitNet-b1.58-2B-4T -q i2_s -md models # i2_s 量化模型与日志落盘到本地脚本按架构自动选择内核x86 默认 i2_s 路径ARM 上 tl1 为默认推荐。跑完后models/下会得到ggml-model-i2_s.gguf日志在logs/分步骤落盘哪一步挂了直接看对应的.log。排错编译阶段报std::chrono或log.cpp相关错误 → llama.cpp 子模块版本过新用git -C 3rdparty/llama.cpp log --oneline -5核对锁定回仓库锁定的子模块 commit。手动编译适合 ARM 开发板或想换量化内核的读者cmake -B build -DBITNET_ARM_TL1ON -DLLAMA_BUILD_TOOLSON \ -DCMAKE_C_COMPILERclang -DCMAKE_CXX_COMPILERclang # ARM 上启用 tl1 查找表内核 cmake --build build --config ReleaseARM 的 ARM 架构编译选项就这一个开关-DBITNET_ARM_TL1ON走 tl1 内核x86 若要用 tl2 内核则改为-DBITNET_X86_TL2ON但官方模型表里 2B 模型 x86 推荐 i2_s多数情况保持默认即可。第 3 步启动对话式推理python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf \ -p You are a helpful assistant -t 4 -cnv # -t 线程数-cnv 进入对话模式-t不必填到逻辑核数后面 §4 有实测依据-n控制生成 token 数默认 128-temp控制随机性默认 0.8。这个脚本本质是包装 run_inference.py 里的build/bin/llama-cli需要手动传参时直接看它的 usage 即可。排错加载阶段报 unsupported type / kernel mismatch → 量化类型与架构不匹配x86 换ggml-model-i2_s.ggufARM 换ggml-model-tl1.gguf后重跑第 2 步。第 4 步用 benchmark 脚本量化性能python utils/e2e_benchmark.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p 256 -n 200 -t 4-p是 prompt 长度默认 512-n是生成长度默认 128。脚本会分别输出 prompt processingpp和 token generationtg两组 tokens/s这才是你该记下的两个数字pp 决定首 token 延迟tg 决定打字机速度。排错tg 数值远低于官方图 → 先确认没有后台任务占满 CPUtop看一眼再降-t一档复测。实测快照三种 CPU 的吞吐量数据取自仓库 src/assets/ 中的官方测试图与 src/README.md模型均为 BitNet-b1.58-2B-4T左列为优化内核This Work右列为原始实现Original。CPU架构/量化线程生成 tg tok/sprompt pp tok/sAMD EPYC 7V13x86 / i2_s1662.6原始 48.5461原始 315Intel i7-13800Hx86 / i2_s620.1原始 17.478原始 53.4Cobalt 100ARM / DOTPROD852.6原始 35.1220原始 103EPYC 16 线程下 prompt 处理到 461 tok/s意味着 4096 token 的长文预处理不到 10 秒i7-13800H 上 6 线程比 4 线程还快一点再往上加线程没有收益说明瓶颈在内存带宽而不是核数。ARM 平台收益最大——Cobalt 100 上 prompt 处理提速 2.19x这正是 LUT 内核在 DOTPROD 指令集上的主场。图EPYC 7V13 上不同线程数的吞吐曲线。绿色为 bitnet.cpp 优化内核红色为原始实现横轴线程数纵轴 tokens/s。踩坑速查⚠️llama.cpp 子模块编译报std::chrono/log.cpp错误官方 FAQ 记录的新版子模块回归。解法git submodule update --init --recursive锁定回仓库指定 commit 后重新 cmake。源自仓库 README FAQ⚠️线程拉满反而变慢i7 上 6 线程 tg 约 20.1 tok/s继续加线程不升反降EPYC 在 12→16 线程也出现回落。解法从nproc的 3/4 起步用 utils/e2e_benchmark.py 各跑一轮取 tg 峰值。源自 src/README.md 官方测试曲线⚠️clang不是 recognized commandWindows或版本 18编译器不满足 clang≥18 的硬性要求。解法Debian/Ubuntu 走 LLVM 官方 apt 源装 clang-18Windows 必须用 VS2022 Developer Command Prompt 并勾选 Clang 组件。源自仓库 README FAQ⚠️x86 机器指定-q tl1直接失败tl1 是 ARM 专用 LUT 内核x86 上 setup_env 会直接拒绝。解法x86 用-q i2_sARM 用-q tl1对应关系见 setup_env.py 里的SUPPORTED_QUANT_TYPES。⚠️想要更快但不知道调哪kernel 分块参数ROW/COL BLOCK、PARALLEL_SIZE集中在 include/gemm-config.hEPYC 8 线程 pp128 的官方最优解是 parallel4 / row block4 / col block128可作起点微调。跑通之后还有三条路GPU 内核入口在 gpu/官方 CUDA 推理核自训的 BitNet 权重可用 utils/convert-helper-bitnet.py 从 safetensors 转 GGUFembedding 场景0.6B/270M的 I2_S 转换指南在 docs/bitnet-embeddings-i2s-guide.md。下一步建议用e2e_benchmark.py扫一遍-t把你机器的 tg 峰值记下来作为基线。【免费下载链接】BitNetOfficial inference framework for 1-bit LLMs项目地址: https://gitcode.com/GitHub_Trending/bitne/BitNet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

C#上位机与51单片机串口通信协议设计及源码解析 2026/9/1 14:36:07

C#上位机与51单片机串口通信协议设计及源码解析

简介:一份完整的C#与51单片机串口通信源代码工程,面向嵌入式入门开发者与上位机编程学习者,解决PC端与单片机之间的指令下发、数据回传与硬件控制问题。压缩包共53个文件,包含6个C#源文件、3个可直接运行的exe、DLL与配置文件&…

阅读更多 →
RevokeMsgPatcher 防撤回工具:3 步安装,撤回不再让重要消息丢失 2026/9/1 14:36:07

RevokeMsgPatcher 防撤回工具:3 步安装,撤回不再让重要消息丢失

RevokeMsgPatcher 防撤回工具:3 步安装,撤回不再让重要消息丢失 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址…

阅读更多 →
Android TCP客户端从Demo到工程级:帧设计、心跳与断线重连实践 2026/9/1 14:36:07

Android TCP客户端从Demo到工程级:帧设计、心跳与断线重连实践

简介:一份面向Android开发者的TCP客户端实现资源,围绕Socket通信、线程管理与异常处理等关键点,演示如何在Android设备上创建TCP客户端,并与远程服务器进行双向数据交换。项目包含完整的Eclipse工程源码,压缩包共49个文…

阅读更多 →
读懂二极管型号字母,快速识别整流、肖特基、快恢复与稳压管 2026/9/1 14:36:07

读懂二极管型号字母,快速识别整流、肖特基、快恢复与稳压管

平时维修电源、给电路板排错时,最怕的不是看不懂原理图,而是拿起一只二极管半天不确定它到底是什么类型。很多时候,二极管外壳上明明印着一行字母和数字,却因为不了解命名规则,直接影响了选型和替换。其实判断二极管类…

阅读更多 →
Unity与Python联动:MediaPipe驱动虚拟数字人完整方案 2026/9/1 14:36:07

Unity与Python联动:MediaPipe驱动虚拟数字人完整方案

简介:本资源是一套完整的跨平台虚拟人物驱动解决方案,面向Unity开发者、计算机视觉初学者及XR应用实践者,解决Python端手部/面部关键点识别与Unity 3D角色实时驱动的技术集成难题。压缩包共158个文件,含20个核心Python脚本&#x…

阅读更多 →
基于STM32F407的4096点FFT频谱分析实现与优化 2026/9/1 14:33:06

基于STM32F407的4096点FFT频谱分析实现与优化

简介:面向嵌入式开发者的4096点快速傅里叶变换(FFT)实现资料,基于STM32微控制器,系统讲解从采样数据准备、数字信号处理库选择到频域结果输出的完整流程,适合用于音频分析、通信解调与频谱检测等场景&#…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞