7900XTX双卡TP,SGLang & VLLM 多Agent多并发测试对比
-
@Geekyang 9600X 不是给两张卡各 16 lanes,而是把 CPU 的 16 条显卡 lanes 拆成 x8/x8;B850 AI TOP 支持这种 bifurcation。
Ryzen 5 9600X 本身有 24 条可用 PCIe 5.0 lanes;其中 16 条 PEG lanes 可以由主板做 bifurcation,拆成 x8 + x8。AMD 官方给 9600X 的规格也是 28 条 native / 24 条 usable PCIe lanes。:contentReference[oaicite:0]{index=0}
我这块 GIGABYTE B850 AI TOP 正好支持这种分法:
- 第一条 PCIEX16:单卡时最高 x16
- 第二条 PCIEX8:最高 x8
- 两张卡同时插时,第一条会从 x16 降到 x8
- 最终就是 PCIe 5.0 x8 + x8
技嘉官方手册也明确写了:PCIEX16 和 PCIEX8 共享带宽,双卡时 PCIEX16 最高以 x8 运行。:contentReference[oaicite:1]{index=1}
是不是我前面如果哪里写成了“双 x16”,那是表达不严谨,准确说法应该是:
双物理 x16 插槽,CPU 直连,双卡运行时 x8/x8。
对 7900 XTX 做 TP2 来说,这也是我当初选这块板的主要原因之一。
-
@Geekyang 9600X 不是给两张卡各 16 lanes,而是把 CPU 的 16 条显卡 lanes 拆成 x8/x8;B850 AI TOP 支持这种 bifurcation。
Ryzen 5 9600X 本身有 24 条可用 PCIe 5.0 lanes;其中 16 条 PEG lanes 可以由主板做 bifurcation,拆成 x8 + x8。AMD 官方给 9600X 的规格也是 28 条 native / 24 条 usable PCIe lanes。:contentReference[oaicite:0]{index=0}
我这块 GIGABYTE B850 AI TOP 正好支持这种分法:
- 第一条 PCIEX16:单卡时最高 x16
- 第二条 PCIEX8:最高 x8
- 两张卡同时插时,第一条会从 x16 降到 x8
- 最终就是 PCIe 5.0 x8 + x8
技嘉官方手册也明确写了:PCIEX16 和 PCIEX8 共享带宽,双卡时 PCIEX16 最高以 x8 运行。:contentReference[oaicite:1]{index=1}
是不是我前面如果哪里写成了“双 x16”,那是表达不严谨,准确说法应该是:
双物理 x16 插槽,CPU 直连,双卡运行时 x8/x8。
对 7900 XTX 做 TP2 来说,这也是我当初选这块板的主要原因之一。
-
@懒人烘培 不好意思,写错了,我的主板其实是 GIGABYTE B850 AI TOP。两张 7900 XTX 装上去还是太挤了,卡间距连一个槽位都不到。双卡满载时发热很严重,连带着 CPU 温度也跟着遭殃。目前的解决方案是加装两个高压风扇:一个从两卡缝隙中间往里吹风,另一个顺着 CPU 风扇的气流方向,同时兼顾吹 CPU 和中间那张 7900 XTX 的背面。这样调整后,满载长时间跑推理时,显卡和 CPU 温度都能稳定在警戒线以下,不会触发降频。另外,我7900XTX锁功耗墙了,大概是从330W降到了305W(最低能降的数字)。
-
5mm 间距基本等于没有风道,两卡夹缝里的空气被反复加热,上面那张吸的是下面卡的排气,热是必然。尾部加风扇有帮助,但要看是「往夹缝送风」还是「往外抽热风」:
- 夹缝只有 5mm,14cm 扇塞不进去,风压也不够,效果有限;开放式散热的卡,最有效的是从机箱前面往两卡之间送一股定向风,或用导风罩把夹缝热气引出去。
- 根本解法是拉开间距(PCIe 延长线/转接、换板距更大的机箱),或上水冷/涡轮卡。垂直、吊装主要是避免热空气堆积,有用但不是根因。
- 别靠手感判断,看数据:nvidia-smi dmon -s pucvt,分别看两卡温度、功耗和降频原因。一般到 80-83℃ 才开始明显降频,先确认是不是真撞了温度墙。
建议先只把一张卡拉开距离跑一次对比,数据比加扇子直观。
-
-
@懒人烘培 我也是,随时准备搞根PCI延长线把显卡移出来,我是开放式机架,方便。 https://lcz.me/topic/1363/3 flyer666大佬这个帖子里有发图,他的双7900XTX就是延长线引出来了,放在机架上方,四面通风。
-
,系统 取消固定了此主题
-
@Geekyang 我再研究研究哈,网上说法不一,我的理解是B850 AI TOP 的两个 GPU 插槽是 CPU-direct x8/x8,物理拓扑具备 P2P 的前提;但 Gigabyte 并没有把它定义为一个保证 PCIe P2P 的功能。我估计消费级主板上这个功能够呛能实现。我找时间自己实测一下到时候拿数据说话。
-
@Ben-Lee 消费级CPU都没有P2P,因为CPU里没有root complex,但是并不影响TP,TP可走sharememory, 也就是,数据在内存交换。我问了Intel 工程师了。也就是X99 可以TP,但是消费级的就只能sharememory,其实效率也很高,毕竟PCIE带宽高了
-
@张光璞 这两天填了无数坑,折腾出一篇水文 https://lcz.me/topic/1740 7900XTX双卡TP,SGLang & VLLM 多Agent多并发测试对比(续一)- 山重水复), 多批评指正。
或者看下面这个快速简短总结,谨供参考。
**硬件:**2× RX 7900 XTX + Ryzen 9600X + 64G DDR5 + GIGABYTE B850 AI TOP + ADATA SX8200PNP1TB (PCIe Gen3 x4、NVMe 1.3)
**平台:**Ubuntu,SGLang TP2,Qwen3.8-27B GPTQ长上下文唤醒:分钟级重算 → 秒级恢复
SGLang TP2 / MTP3,HiCache size16。首 token 延迟:
上下文档位 冷预填 显存 L1 命中 内存 L2 恢复 L2 比 L1 多等 64K 50.78s 0.431s 0.546s 115ms 120K 121.49s 0.711s 0.896s 185ms 192K 243.81s 1.055s 1.406s 351ms 驱逐对照,64K 回访:
配置 首 token 结果 无 HiCache 48.129s cached tokens = 0,重新计算 有 HiCache 0.546s L2 恢复,避免完整重算 单路历史基准
方案 测试口径 解码速度 单卡 llama.cpp Vulkan + MTP Qwen3.6-27B Q4_K_M,短请求 约 44 tok/s 双卡 vLLM Qwen3.8-27B GPTQ,64K 77.185 tok/s 双卡 SGLang 同轮、同模型,64K 88.815 tok/s 单卡仅作演进背景,不同模型、量化与长度,不计算跨组加速比。
多路 64K 冷预填
并发 引擎 各请求首 token:秒 聚合预填:tok/s¹ 2 路 SGLang 48.15/48.15 2720 2 路 vLLM 48.39/97.38 1346 3 路 SGLang 48.26/48.26/48.26 4070 3 路 vLLM 48.46/97.49/100.20 1962 4 路 SGLang 48.23/48.23/48.23/48.45 5408 4 路 vLLM 48.40/97.44/100.15/102.87 2547 当前进度
技术模块 状态 双 7900 XTX + SGLang TP2
已跑通MTP3 / DFlash2 投机解码
均已测试HiCache L1 命中 / L2 恢复
已验证L3 的 FULL KV + Mamba 完整恢复
研究中多 Agent 长期循环联合验收
待完成 -
@张光璞 这两天填了无数坑,折腾出一篇水文 https://lcz.me/topic/1740 7900XTX双卡TP,SGLang & VLLM 多Agent多并发测试对比(续一)- 山重水复), 多批评指正。
或者看下面这个快速简短总结,谨供参考。
**硬件:**2× RX 7900 XTX + Ryzen 9600X + 64G DDR5 + GIGABYTE B850 AI TOP + ADATA SX8200PNP1TB (PCIe Gen3 x4、NVMe 1.3)
**平台:**Ubuntu,SGLang TP2,Qwen3.8-27B GPTQ长上下文唤醒:分钟级重算 → 秒级恢复
SGLang TP2 / MTP3,HiCache size16。首 token 延迟:
上下文档位 冷预填 显存 L1 命中 内存 L2 恢复 L2 比 L1 多等 64K 50.78s 0.431s 0.546s 115ms 120K 121.49s 0.711s 0.896s 185ms 192K 243.81s 1.055s 1.406s 351ms 驱逐对照,64K 回访:
配置 首 token 结果 无 HiCache 48.129s cached tokens = 0,重新计算 有 HiCache 0.546s L2 恢复,避免完整重算 单路历史基准
方案 测试口径 解码速度 单卡 llama.cpp Vulkan + MTP Qwen3.6-27B Q4_K_M,短请求 约 44 tok/s 双卡 vLLM Qwen3.8-27B GPTQ,64K 77.185 tok/s 双卡 SGLang 同轮、同模型,64K 88.815 tok/s 单卡仅作演进背景,不同模型、量化与长度,不计算跨组加速比。
多路 64K 冷预填
并发 引擎 各请求首 token:秒 聚合预填:tok/s¹ 2 路 SGLang 48.15/48.15 2720 2 路 vLLM 48.39/97.38 1346 3 路 SGLang 48.26/48.26/48.26 4070 3 路 vLLM 48.46/97.49/100.20 1962 4 路 SGLang 48.23/48.23/48.23/48.45 5408 4 路 vLLM 48.40/97.44/100.15/102.87 2547 当前进度
技术模块 状态 双 7900 XTX + SGLang TP2
已跑通MTP3 / DFlash2 投机解码
均已测试HiCache L1 命中 / L2 恢复
已验证L3 的 FULL KV + Mamba 完整恢复
研究中多 Agent 长期循环联合验收
待完成
,我还一直在这儿装蒜
。以后多多指教哈。