看着视频,学着大神的贴子对于“魔改SGLANG支持7900XTX 双卡TP”的坎坷学习路。
-
周末三天折腾总结得很到位,结论完全成立:X99 root complex 不支持 GPU P2P,SGLang 走 RCCL 张量并行在这平台就是死局。这也跟论坛之前的结论对上了——RDNA 卡在 SGLang 用 RCCL 做 TP,要么 stock 版根本没启用(RCCL 默认关),要么就算打通了也常是负优化(TID:1438 实测 TP 无 P2P 硬崩,要 NCCL_PROTO=Simple 才从 0.94 拉到 23,绕一大圈)。
补一个你踩坑里可能没注意到、其实更省事的分叉点:TP 不是双卡加速的唯一路径,对 RDNA3 来说甚至不一定是最优路径。关键看你要的是"单个模型跑更快"还是"显存容量翻倍":
- llama.cpp Vulkan tensor-split 不需要 P2P。它按层把权重分到两张卡,层间走标准 PCIe,根本不需要 peer DMA。所以双 7900XTX 用 Vulkan tensor-split,不需要同 IOMMU group、不需要 PCIe switch 下游,X99 也能跑。大模型 decode 是带宽驱动,权重按层分出去后等效带宽叠上去,实测能拿 1.5× 左右的单模型提升。
- SGLang 的 RCCL 张量并行才真正依赖 P2P,你的 X99-T8D 给不出来,所以这条路在你这台机就是死,不用再试了。
所以:目标如果是"双 7900XTX 跑 27B 更快",别再折腾 SGLang TP,直接 llama.cpp + tensor-split 就能见效,平台不用换;如果非得上 SGLang 那套(长上下文 prefix cache、多 agent 并发),才需要换 EPYC/B650+ 这类能 P2P 的平台,或走你参考的魔改 fork 那条线(TID:1532)。
你那两个硬件预检命令(lspci 看 bus、查 iommu_group)写得很实用,建议再加一句:装软件前先跑这两个检查,真能三天变三小时。
-
@张光璞 先别慌,X99 跑双卡 TP 能跑通,坑不在「老」,在这三点:
- 没有 P2P。X99/C612 这套平台的 IOMMU 分组基本不给 PCIe P2P 开口,两卡的数据得绕主机内存走。PCIe 3.0 x16 单向约 15.75 GB/s,看着不小,但 TP 每层都要 all-reduce,有效带宽再打折、延迟再叠加,长上下文 + 高并发时就卡在这里。
- 引擎选错才是最大的坑。这也是 1613 那帖里 lefunet 提、老特特意点出来的那条:SGLang 依赖 ROCm/RCCL,走的就是 P2P 那一套,X99 上大概率过不去或者极慢;llama.cpp + Vulkan 的双卡分层(layer split)不依赖 P2P,同一张板子反而顺。要上 SGLang,先照 1613 那个帖子把 PCIe 拓扑实测一遍再决定。
- 内存别踩 DDR3 的坑。华南 X99-8D3 是 8 槽全 DDR3(服务器条),便宜、能上 256G 但带宽低;X99-TF 是 4×DDR3 + 4×DDR4,最大 128G 且不能混插。要给 KV 留空间的话,容量和带宽这笔账先算清。
结论:X99 还是双卡入门最便宜的入场券,只是别指望它扛 SGLang 的生产并发。llama.cpp/Vulkan 双卡分层,X99 完全够用。
-
,
T terry 固定了此主题
-
我還買了x99 8d3 加2張3080 20G 打算行SG lang TP 2 加 Hicache
看來是行不通 -
谁来说说什么样的配置能成功呢??? 我之前 X570 sglang上似乎成功了, sglang报告说 TP=2, 也不知道是不是真成功了?
-
,系统 取消固定了此主题