ik_llama.cpp效能問題
-
我照這片貼文的設置
結果速度(~30tps)反而比llama.cpp(~50tps)還慢
請問有人知道為什麼嗎
OS:win11
GPU:4070 12g
RAM:DDR4 16g*2 -
@566656661 我覺得比較奇怪的是我的ik_llama.cpp跑再windows反而比llama.cpp慢
-
@Hcl ik_llama.cpp 比 llama.cpp 慢,在12G显存+Windows环境下是预期内的,原因如下:
ik_llama.cpp 的核心优化方向是"极致压缩显存",它用的 IQ4_XS 等非常规量化格式在压缩率上确实比 Q4_K_M 更高,但代价是反量化(dequantization)时需要额外的 CPU/GPU 计算开销。在你 12G 显存跑 35B 模型的情况下:
-
模型无法完全放进显存(35B Q4 约 20G,Q4_XS 约 17G),你的 12G 必然触发大量 CPU Offload —— 而 ik 的 CPU Offload 通路在 Windows 上没有做过专门优化。
-
Windows CUDA 本身的 overhead 比 Linux 高。llama.cpp 主线的 Windows CUDA 后端经过大量用户打磨,ik_llama.cpp 作为个人分支在 CUDA kernel 优化上没有走那么远。
-
Reddit 那个 110 t/s 的成绩是用 DDR5 6000 + Linux 跑的,内存带宽对 offload 场景影响极大。你的 DDR4 双通道带宽(~40-50GB/s)只有 DDR5 6000(~90GB/s)的一半左右。
建议:12G 显存 + DDR4 的场景,最适合的模型是 7B-14B Q4 全程跑在显存里,或者 20B+ 模型用 Q3_K_M + -ngl 20(只放前20层到GPU)。ik_llama.cpp 的优势在显存极度吃紧的 edge case(比如 6G 跑 14B),12G 的场景它反而没优势。
-
-
試出來了效果超好
prompt eval time = 2634.48 ms / 2988 tokens ( 0.88 ms per token, 1134.19 tokens per second)
eval time = 132563.02 ms / 9496 tokens ( 13.96 ms per token, 71.63 tokens per second)
total time = 135197.50 ms / 12484 tokens指令
.\build\bin\Release\llama-server.exe -m "C:\Users\User.lmstudio\models\byteshape\Qwen3.6-35B-A3B-MTP-GGUF\Qwen3.6-35B-A3B-IQ4_XS-3.53bpw.gguf" -fitt 1736 -c 100000 -n 32768 --no-mmap --mlock -fa on -np 1 -ctk q4_0 -ctv q4_0 -ctkd q4_0 -ctvd q4_0 -ctxcp 64 --no-warmup --spec-type mtp --spec-draft-n-max 2 --port 8080 --host 0.0.0.0
