推理性能
性能数据参考
Qwen3.5-9B-Q4_K-GGUF
| 并发数 | 输入 Tokens | 输出 Tokens | Decode(tps) | TTFT(ms) | TPOT(ms) |
|---|---|---|---|---|---|
| 1 | 32 | 32 | 8.90 | 2013.98 | 112.39 |
| 1 | 128 | 128 | 8.64 | 4242.88 | 115.80 |
| 1 | 1024 | 1024 | 8.23 | 24541.95 | 121.57 |
| 1 | 3072 | 1024 | 6.85 | 82453.04 | 146.04 |
| 1 | 8192 | 1024 | 7.06 | 265272.81 | 141.71 |
| 2 | 32 | 32 | 8.71 | 6234.33 | 114.75 |
| 2 | 128 | 128 | 8.56 | 18502.18 | 116.83 |
| 2 | 1024 | 1024 | 8.24 | 136093.67 | 121.43 |
| 2 | 3072 | 1024 | 6.86 | 244975.47 | 145.84 |
| 2 | 8192 | 1024 | 7.06 | 587420.62 | 141.69 |
测试前准备
llama.cpp 可使用 llama-bench 进行离线单并发推理性能测试。测试前请确认模型路径正确,并已完成 MUSA 版本编译。
建议测试前清理缓存:
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
文本生成快速验证
decode 速度测试
llama-bench -m <model-path> -ngl 999 -fa 1 -p 0 -n 64 -d 64 -r 3 -o json --mmap 0
prefill 速度测试
llama-bench -m <model-path> -ngl 999 -fa 1 -p 1024 -n 0 -r 3 -o json --mmap 0
参数说明
| 参数 | 说明 |
|---|---|
-m <model-path> | 指定 GGUF 模型文件路径。 |
-ngl 999 | 指定 offload 到 GPU 的模型层数。设置为较大值时,尽可能将模型层放到 MUSA GPU 上执行。 |
-fa 1 | 开启 Flash Attention。 |
-p 0 | prompt token 数。decode 测试中设置为 0,用于聚焦 token 生成阶段性能。 |
-p 1024 | prompt token 数。prefill 测试中设置为 1024,用于测试 prompt 处理阶段性能。 |
-n 64 | 生成 token 数。decode 测试中设置为 64。 |
-n 0 | 生成 token 数。prefill 测试中设置为 0,表示不测试 decode 阶段。 |
-d 64 | 指定 llama-bench 的 n-depth 参数。decode 测试中设置为 64。 |
-r 3 | 重复测试次数。 |
-o json | 以 JSON 格式输出测试结果。 |
--mmap 0 | 禁用 mmap 加载模型。 |
结果解读
llama-bench 输出中重点关注 samples_ts 字段,该字段记录每次重复测试的 tokens/s 结果。第一次运行可能受到 warmup 影响而偏慢,正式观察性能时建议重点关注第一次之后的数值。
多模态模型快速验证
多模态模型性能测试需要先启动服务,再通过多模态接口访问服务。多模态部分的性能可从服务日志中查看。
服务启动示例:
llama-server --model /home/dev/models/Qwen3.6-35B-A3B-Q4.gguf --mmproj /home/dev/models/mmproj-Qwen3.6-35B-A3B-BF16.gguf --media-path /home/jingyi.wang/projects/llama.cpp/tools/mtmd --host 127.0.0.1 --port 8000 --ctx-size 32768 -ngl 999 --cont-batching --flash-attn on --metrics --parallel 1 --reasoning off --no-mmap
访问服务可参考“服务调用”章节的 多模态图片调用示例。访问后,服务日志中会输出多模态处理耗时,例如:
srv process_chun: processing image...
encoding image slice...
image slice encoded in 4800 ms
decoding image batch 1/1, n_tokens_batch = 300
其中 image slice encoded in 4800 ms 表示 ViT 编码时间。按单张图片计算,FPS 为 1000 / 4800 = 0.2。

