性能分析

上下文计算计算:Qwen3.5 35B A3B的上下文长度
单个队列 (2 kv * 40 Layers * 32768 ctx * 2 num_key_value_heads * 128 Head_Dim * 4/8字节 Q4量化) / 1024^3 = 2.5 GB

模型kv占位layersnum_key_value_headsHead_Dim模型量化ctx队列显卡占用
Qwen3.5 35B A3B Q4M24021284/8字节100K2模型20.5 GB+kv缓存1GB*2
         
         
         
         

问题

  • v100 16gx2卡,x99服务器40G内存,固态硬盘,llama.cpp 加载Qwen3.5 35B模型,为什么推理性能这么慢

日志分析

  • 4 tokens /s 性能
[43981] slot update_slots: id  0 | task 78949 | new prompt, n_ctx_slot = 102400, n_keep = 0, task.n_tokens = 29492
[43981] prompt eval time =   23404.64 ms / 13108 tokens (    1.79 ms per token,   560.06 tokens per second)
[43981]        eval time =    8653.15 ms /    36 tokens (  240.37 ms per token,     4.16 tokens per second)
[43981] slot update_slots: id  0 | task 79037 | new prompt, n_ctx_slot = 102400, n_keep = 0, task.n_tokens = 30435
[43981] prompt eval time =    2117.28 ms /   947 tokens (    2.24 ms per token,   447.27 tokens per second)
[43981]        eval time =   23765.67 ms /    97 tokens (  245.01 ms per token,     4.08 tokens per second)
[43981] slot update_slots: id  0 | task 79177 | new prompt, n_ctx_slot = 102400, n_keep = 0, task.n_tokens = 30732
[43981] prompt eval time =    1154.34 ms /   301 tokens (    3.84 ms per token,   260.75 tokens per second)
[43981]        eval time =    9675.27 ms /    40 tokens (  241.88 ms per token,     4.13 tokens per second)
  • 性能问题分析
-------------上下文长度-------------------
Q4 量化的 35B 模型约 20GB
ctx-size = 204800 (200k)
KV Cache 开启 q4_0 压缩,parallel = 2, 约 2GB 的空间
--------------批次长度---------------------
batch-size = 4096
需要极高的显存带宽,会产生巨大的瞬时显存峰值
--------------cpu数量-------------
可以加到12