CPU 推理场景与要点
没有 GPU 或只做低并发验证时,CPU 推理可用 llama.cpp、Ollama 等方案:吞吐低但部署简单,适合功能验证、小规模内网与离线批处理。CPU 推理的瓶颈通常在内存带宽而不是算力,量化档位直接决定内存占用与读取量,因此调优的第一手段是降量化档位,其次才是线程数。
基本信息
| 常用工具 | llama.cpp、Ollama 等支持 CPU 回退的方案 |
|---|---|
| 关键参数 | 线程数、批大小、量化档位 |
| 性能预期 | 比 GPU 慢一到数个量级,按生成速率评估可接受性 |
| 主要瓶颈 | 内存带宽与内存容量 |
| 适用场景 | 功能验证、离线批处理、小规模内网服务 |
典型使用场景
- 无 GPU 的开发机做接口联调与功能验证
- 内网小规模服务:并发很低,省去 GPU 采购与运维
- 离线批处理:夜间跑完即可,不关心单条延迟
- 边缘或受限环境:只有 CPU 可用时仍能跑起模型
- 量化效果对照:在 CPU 上比较不同量化档位的输出差异
llama.cpp 纯 CPU 运行
llama.cpp 纯 CPU 运行
# -t 指定线程数,一般设为物理核心数附近
./build/bin/llama-server -m <模型.gguf> -t 16 --host 0.0.0.0 --port 8080
# 校验:观察实际生成速率(token/s)是否符合预期
# 量化档位与线程数是两个最主要的手动旋钮影响 CPU 推理速度的因素
| 因素 | 方向 | 说明 |
|---|---|---|
| 内存带宽 | 主要瓶颈 | 每步都要把权重读一遍 |
| 量化档位 | 低位量化更快 | 读取量下降,占用同步减少 |
| 线程数 | 接近物理核数较优 | 超过物理核数收益有限 |
| 上下文长度 | 越长越慢 | 每步需要处理更多 KV |
CPU 推理优先看内存带宽与量化档位:4 位档位能显著降低内存占用与带宽压力,速度与质量需一并评估。
单机多实例会共享内存带宽:并发跑多个进程不会线性加速,反而互相拖慢,规划时按整机总量估算。