常见问题 / 装与跑
多卡到底怎么拆层?加第二张卡值不值?
两种拆法:llama.cpp 拆层(默认,层分给不同卡,带宽可相加)与 vLLM 张量并行(切矩阵,通信吃 PCIe)。加卡最稳的收益是「装得下更大的模型」,速度翻倍要看互联。
先分清两种多卡:① **拆层(layer split)**——llama.cpp 的默认行为,`--split-mode layer` 把不同的层放到不同卡上,权重读取带宽可以相加;用 `--tensor-split` 指定比例。② **张量并行(tensor parallel)**——vLLM 的 `--tensor-parallel-size N`,把一个矩阵切开分到多卡,每层都要通信,互联不够快就白搭。
速度不会翻倍,站内实测给了几组对照:① NVIDIA RTX 3090 24G 单卡 TP=1 Q4_K_M 46.9 tok/s(ctx 32K),同一基准库目录横切的 TP2 / TP4 单流是 76.4 / 78.7——加卡从 1 张到 2 张涨一截,从 2 张到 4 张几乎不再涨。② 2×3090 NVLink 跑 MiniCPM-V-4.7-35B int4,TP2 plain 单流 172.2 tok/s;同样两张 3090 但走 PCIe 互联,Qwen3.8-27B AWQ 32K 只有 45 tok/s。③ 2×P100 16G(无 NVLink、无 P2P,第二张卡挂在芯片组后走 PCIe 3.0 x4)跑 Qwen3.8-27B UD-Q6_K,plain decode 31.1 tok/s,开 MTP 后 54 tok/s。
上下文越长,多卡的差距越难看:同一条 2×3090 PCIe 的曲线,32K 是 45 tok/s,524K 掉到 6 tok/s,作者标「稳定」。KV 是每层每 token 都摊的,加卡不改变这个斜率。
加卡最实在的收益是容量:站内 2×NVIDIA RTX 5070 Ti 16G TP2 跑 Qwen3.8-27B NVFP4,64K 上下文单流 64 tok/s,每卡显存明细是权重 11.3 GiB + KV 1.51 GiB + CUDA graphs 0.14 + 激活 1.43,合计 14.4/15.47 GiB——这是「消费级 24G 总显存跑新代际 27B」的代表配置。另一头,4×3090 TP4 跑 Ling-3.0-flash INT4 单流 100.43 tok/s,16 并发聚合 295.94 tok/s(折合每请求 18.5 tok/s)——单流和聚合不是一回事,别混用。
怎么配(按目的):① 只是想装下更大的模型 → 拆层最省事,两张同卡容量直接相加;② 想更快 → 看互联有没有 NVLink,没有 NVLink 的 PCIe 多卡通常不如换一张大卡;③ 笔记本别指望外接多卡提速,通道更窄;④ 上手顺序:先用一张卡把模型跑通,再加第二张,先试 llama.cpp 的 `--split-mode layer --tensor-split 1,1`,再考虑 vLLM 的 TP。
条目性质:本站依据自身数据模型与公开架构常数撰写。 有错请直接告诉我们,见关于页。