[ PROMPT_NODE_22462 ]
Inference Serving Llama Cpp 优化
[ SKILL_DOCUMENTATION ]
# 性能优化指南
最大化 llama.cpp 推理速度和效率。
## CPU 优化
### 线程调整
bash
# 设置线程 (默认: 物理核心数)
./llama-cli -m model.gguf -t 8
# 对于 AMD Ryzen 9 7950X (16 核, 32 线程)
-t 16 # 最佳: 物理核心数
# 避免超线程 (矩阵运算较慢)
### BLAS 加速
bash
# OpenBLAS (更快的矩阵运算)
make LLAMA_OPENBLAS=1
# BLAS 可带来 2-3 倍加速
## GPU 卸载
### 层卸载
bash
# 将 35 层卸载到 GPU (混合模式)
./llama-cli -m model.gguf -ngl 35
# 卸载所有层
./llama-cli -m model.gguf -ngl 999
# 寻找最佳值:
# 从 -ngl 999 开始
# 如果内存溢出 (OOM),每次减少 5 直到合适
### 内存使用
bash
# 检查显存使用
nvidia-smi dmon
# 如果需要,减少上下文
./llama-cli -m model.gguf -c 2048 # 2K 上下文而不是 4K
## 批处理
bash
# 增加批大小以提高吞吐量
./llama-cli -m model.gguf -b 512 # 默认: 512
# 物理批 (GPU)
--ubatch 128 # 一次处理 128 个 token
## 上下文管理
bash
# 默认上下文 (512 tokens)
-c 512
# 更长上下文 (较慢,更多内存)
-c 4096
# 超长上下文 (如果模型支持)
-c 32768
## 基准测试
### CPU 性能 (Llama 2-7B Q4_K_M)
| 设置 | 速度 | 备注 |
|-------|-------|-------|
| Apple M3 Max | 50 tok/s | Metal 加速 |
| AMD 7950X (16c) | 35 tok/s | OpenBLAS |
| Intel i9-13900K | 30 tok/s | AVX2 |
### GPU 卸载 (RTX 4090)
| GPU 层数 | 速度 | 显存 |
|------------|-------|------|
| 0 (仅 CPU) | 30 tok/s | 0 GB |
| 20 (混合) | 80 tok/s | 8 GB |
| 35 (全部) | 120 tok/s | 12 GB |