llama.cpp双GPU下QWEN模型张量分配技巧
原文:Calculate --override-tensor for llama.cpp using QWEN models and Pi for 2 GPU
在 llama.cpp 中使用两块 GPU 并配合 --split-mode layer 时,你通常需要提供一个 --tensor-split 值来匹配每块 GPU 的显存比例,比如你有 16GB + 12GB,那么类似 --tensor-split 0.6,0.4 的设置可能可行。但这是对模型的粗略划分,由于显存计数以数百 MB 为单位,会转化为数万个 ctx token,你需要用 --override-tensor 进行精细调整,以这种方式组合移动张量——想象成盒子里的乐高积木,实现空间的最优利用。例如对于这个 Qwen3.8-27B-UD-Q6_K_M.gguf:普通划分为 110848 ctx,17 组图划分为 136704 ctx,23 组图交换为 139776 ctx。结果例如:-ot '^blk.43.\w[\w.]$=ROCm0,^blk.40.\w[\w.]$=ROCm0' \。棘手之处在于,要测试这一点你必须重启模型,因此在初始评估之后,该技能会给你一个包含所有需要运行的探测项的脚本,你停止模型、运行脚本,完成后重新启动你的原始模型(提示:用 --slot-save-path 保存 KV 缓存),然后模型会评估探测结果并给出最终结果。如前所述,我在 ROCm 和 Vulkan 上都做了测试,理论上也适用于 CUDA,但我没有测试过;脚本是为 Linux 设计的,不过我想如果你开口,你的模型可以帮你把它们适配到 Windows。查看链接:https://store.piffa.net/lm/dual-gpu-tuner/ 单文件下载压缩包:https://store.piffa.net/lm/dual-gpu-ot-tuner.tgz 提交者:/u/ea_man