PCIe 3.0 x16 足够!7900 双卡 TP2 跑 MiniMax-H3 的合理配置与超高性价比平台
-
机器:2× Radeon PRO W7900 48G(gfx1100),PCIe 4.0 x8,单卡 PPT 241 W;
栈:ComfyUI 0.39 + comfy-kitchen 0.2.37 + 自研 tp2-comfy v1.2.0。
每个数字都是同一台机、同一张首帧、同一 seed 现跑出来的,脚本一条命令可复跑。回帖:https://lcz.me/topic/2697(双 7900 XTX 的 TP2 勘误与重测)
重要参考帖:https://lcz.me/topic/2693(那张八档 1.9× 表出自这里)
开这个帖的目的:2697 那套 TP2 跑在 PCIe 3.0 x8 上(all_reduce 5.03 GB/s),我这台正好是 PCIe 4.0 x8(12.95 GB/s)、切分实现基本同源——所以用与 2697 完全相同的口径(124 帧 / 8 步 / seed 145 / 第 2–7 步均值)把六档重跑一遍,量一下带宽从 5.03 提到 12.95 GB/s 到底能换回多少收益,再把 3.0 x16 / 4.0 x16 一起推演出来——结论是 PCIe 3.0 x16 就够。
本文要点
- 六档统一口径实测(124 帧 / 8 步 / seed 145 / 第 2–7 步均值):TP2 加速 1.65–1.87×,加 MLP 分块重叠后 1.71–1.87×。
- 重叠是像素无损的:六档开/关分块,解码像素 PSNR = inf,两卡 md5 一致。
- 天花板在链路:跳过 all_reduce 实测 1.998×(≈2.0),与帖 2697 的 1.97× 一致。
- 带宽收益有明确曲线:3.0 x8 → 3.0 x16 → 4.0 x8 → 4.0 x16,832 档加速比约 1.32× → 1.60× → 1.68× → 1.84×,3.0 x16 已经拿到 4.0 x8 的 95%。
- 性价比平台 = 真 X99(原生 C612 芯片组)+ PCIe 3.0 x16 + 双 7900 XTX 24G;48G 的溢价只对「1080p 长片 / 权重常驻 / SeedVR2 放大」三件事值。
先说我自己的判断
- PCIe 3.0 x16 就够。 带宽对这套 TP2 确实有收益,但曲线很早就压平了:3.0 x16 能拿到 4.0 x8 的 95% 左右(第 5 节有推演表),为 4.0 x16 换平台不值得。
- 通道当然 x16 优于 x8,但协议代次不是瓶颈,条数和延迟才是。
- 要组这套平台,板子必须是原生 C612 芯片组的真 X99(H81/B85 改的不行:PCIe 通道拆东墙补西墙,双卡 x16 跑不满)。
- 硬上 PCIe 4.0 x16 意义不大,投入回报率太低。
0. 先对齐口径,否则数字没法比
项 本文 帖 2697 分辨率 640×352 / 832×480 / 1024×576 / 1344×768 / 1536×864 / 1920×1088 640×352 ~ 1536×864(+1920 四步) 帧数 / 步数 124 帧 / 8 步 124 帧 / 8 步 seed / 首帧 145 / 同一张(全档共用) 145 / 各自素材 步时定义 采样进度条反推单步,取第 2–7 步均值(排除首步编译与末步解码) 同 加速比 同帧同分辨率:单卡步时 ÷ TP2 步时 同 attention / reduce --use-ck-attention/ bf16 all_reduce同 链路 PCIe 4.0 x8,集合通信实测 12.95 GB/s(64 MiB 12.60) PCIe 3.0 x8(单向 7.9 GB/s),补丁后 5.03 GB/s 通道判定 isAllDirectP2p 1 · via P2P/IPC(本来就在 P2P,不吃“默认走 SHM”那个坑)打补丁后才走 P2P
1. 主表(124 帧 / 8 步 / seed 145 / 第 2–7 步均值)
分辨率 packed 行数 单卡 s/步 TP2 s/步 TP2+重叠 s/步 TP2 加速 重叠后加速 重叠省 640×352 9026 6.21 3.77 3.63 1.65× 1.71× 3.7% 832×480 15656 12.65 7.53 7.23 1.68× 1.75× 4.0% 1024×576 22910 21.43 12.64 12.35 1.70× 1.74× 2.3% 1344×768 39758 49.67 28.01 27.03 1.77× 1.84× 3.5% 1536×864 50990 74.90 41.16 40.11 1.82× 1.87× 2.6% 1920×1088 80006 158.41 86.72 84.71 1.83× 1.87× 2.3% 平均:TP2 1.74×,加 MLP 分块重叠 1.80×(重叠平均再省 3.1%)。
(表中「+MLP重叠」= MLP 沿序列分块、块间归约与下一块计算并行;六档都验过,与整块版的解码像素逐像素相同。)
2. 天花板在哪:零通信实测 1.99×
- 把 all_reduce 整个跳过(
TP_NOAR=1,只为计时)跑同一格:832×480 档 6.33 s/步,对单卡 12.65 就是 1.998×(≈2.0)—— 和帖 2697报的 1.97× 几乎一样,说明两边“切分本身”都很干净。 - 通信是纯串行成本:每步 100 次 SUM × packed 行数 × 5376 × 2 B,832 档 ≈ 16.8 GB/步,我们链路 12.95 GB/s ⇒ 约 1.30 s/步,占一步 17%。
- 所以
单卡÷2 + 通信就是硬下限。2697算过“同一个实现换 12.93 GB/s 能到 6.4–6.6 s”,我们这台的实测正好落在那一段——两台机器殊途同归,差别只在链路。
3. 和帖 2697 的差别:链路和功耗
帖 2697(双 7900 XTX) 本文(双 W7900) 单卡 832 档 11.23 s/步 12.65 s/步 all_reduce 带宽 5.03 GB/s 12.95 GB/s TP2 832 档最好 7.68 s/步(1.46×) 7.23 s/步(1.75×) 单卡 12.65 vs 11.23 这 11%:2697的卡压在 261 W,我们 W7900 是 241 W,显存带宽也有落差;另外量化格式也不一样。
4. 那张 1.9× 表:套个公式就能自检
隐含带宽 = 每步 payload ÷ (TP2 步时 − 单卡步时/2)分辨率 单卡 TP2 加速比 隐含通信 隐含带宽 640×352 6.70 3.44 1.95× 0.09 s 108 GB/s 832×480 12.88 6.84 1.88× 0.40 s 42 GB/s 1024×576 21.50 11.33 1.90× 0.58 s 42 GB/s 1344×768 48.64 25.08 1.94× 0.76 s 56 GB/s 1920×1088 149.10 77.24 1.93× 2.69 s 32 GB/s 2697自己实测 all_reduce 是 5.03 GB/s,平台就是 PCIe 3.0 x8(单向 7.9 GB/s)。
上面这列隐含 32–108 GB/s,比链路快 4–14 倍——说明那两个时间不是同条件测的;这张早前的 8 档表后来在楼里被重测纠正过(同机重测 1.10–1.47× SHM / 1.44–1.67× P2P+重叠)。
拿同一公式套本文的格子,反推是 11–14 GB/s,正好对上我们实测的 12.95 GB/s。
5. 带宽到底值多少:3.0 x8 → 3.0 x16 → 4.0 x8 → 4.0 x16
用同一个串行模型换带宽来推演:
step(新带宽) = 实测 − payload/12.95 + payload/新带宽。
先校验模型:把我们的 832 档代入 3.0 x8(5.03 GB/s) 得 9.58 s/步,而帖 2697 同档实测 9.44 s/步,误差 1.5%,够用。分辨率 3.0 x8(5.03) 3.0 x16(10.1) 4.0 x8(12.95,实测) 4.0 x16(25.9) 640×352 4.95(1.25×) 3.99(1.56×) 3.77(1.65×) 3.40(1.83×) 832×480 9.58(1.32×) 7.90(1.60×) 7.53(1.68×) 6.88(1.84×) 1024×576 15.64(1.37×) 13.19(1.63×) 12.64(1.70×) 11.69(1.83×) 1344×768 33.21(1.50×) 28.96(1.72×) 28.01(1.77×) 26.36(1.88×) 1536×864 47.83(1.57×) 42.38(1.77×) 41.16(1.82×) 39.04(1.92×) 1920×1088 97.18(1.63×) 88.63(1.79×) 86.72(1.83×) 83.40(1.90×) 读法:3.0 x16 能拿到 4.0 x8 的 95% 左右(理论上来说应该是相同的),4.0 x16 相比 3.0 x16 只再多 4–5%。为这 4–5% 换平台,投入回报率太低——这就是我开头那句话的来源。
6. 硬件差异、显存边界、以及三档卡能干什么
6.1 三张卡不是只差显存,算力也差一档
型号 显存 显存带宽 CU boost 频率 功耗上限 相对算力 7900 XT 20 GB 800 GB/s 84 2394 MHz 315 W 低 15–20% 7900 XTX 24 GB 960 GB/s 96 2500 MHz 355 W 基准 W7900 48 GB 864 GB/s 96 2495 MHz 241 W(本机 PPT) 低 10–12% - 三张卡是同一套架构(RDNA3 / gfx1100),同一份 int8 权重、同一套 TP2 代码可以原样跑,不用重新烘焙、也不用改 kernel——差别只在显存容量、显存带宽、CU 数和功耗墙。
- 7900 XT(20G)不只是显存少 4 GB:CU 从 96 砍到 84(−12.5%),显存带宽 800 vs 960 GB/s(−17%),叠加频率/功耗墙,实际算力低 15–20%。这一档要按「能跑但更慢」估工期,别只看显存够不够。
- W7900 的 CU 和 XTX 一样多,但显存带宽 864 vs 960 GB/s(−10%)、功耗墙 241 vs 355 W,实测单卡 832 档 12.65 s/步 vs 帖 2697 的 11.23 s/步(−11%)——差的正是这两项,不是 TP 本身的开销。
6.2 六档实测显存(同一份工作流,换卡只变余量)
124 帧 / 8 步,峰值含首步初始化;单卡那列是 48G 卡上的数。
分辨率 单卡峰值 GiB TP2 每卡峰值 GiB 640×352 23.1 12.6 832×480 23.5 13.4 1024×576 24.5 14.0 1344×768 26.7 15.8 1536×864 28.5 16.9 1920×1088 32.6 20.1 6.3 落到「能不能干」
能不能干 双 20G(7900 XT) 双 24G(7900 XTX) 双 48G(W7900,本文实测) 单卡不开 TP 跑 H3 int8 ✗ 想都别想 ✗ 权重就 19.53 GiB,640 档只剩 ~0.9 GiB、1024 起超 ✓ 六档都能跑(23.1 → 32.6 GiB) 640 / 832 / 1024 档 TP2 ✓ 显存够(每卡 12.6–14.0 GiB),但每步慢 15–20% ✓ ✓ 1344 / 1536 档 TP2 ✓ 15.8 / 16.9 GiB,1536 只剩 ~3 GiB ✓ 宽裕 ✓ 宽裕 1080p / 124 帧 TP2 ✗ 要 20.1 GiB,差一口气 ✓ 能跑,余量 3–4 GiB,得先卸编码器 ✓ 余量 27 GiB;不开 TP 也行(32.6 GiB) 1080p / 15 s(362 帧) ✗ ✗ 直接 OOM(要 37.4 GiB/卡) ✓ 能跑;权重不能常驻(常驻 44.5 GiB 贴 48G 顶) 权重常驻(每镜省 ~74 s 重载) ✗ 只在小档可行 124 帧档可常驻 SeedVR2 7B fp16 放大(34 GiB) ✗ ✗ 只能退回 3B fp8 ✓ 单卡可跑(实测 512 s / 5 s 素材) 6.4 所以怎么买
双 7900 XTX 24G 是性价比最高的那一档。 不碰 1080p 长片的话,TP2 在 640–1536 全档都能跑,成本比 48G 低一大截;48G 的溢价只在「362 帧 1080p、权重常驻、顺手跑 SeedVR2 7B」这三件事上摊得平,为它专门升级投入回报率很低。
双 7900 XT 20G 压预算可以,但要按算力打折排工期:显存对应 640–1536,每步比 XTX 慢 15–20%,1080p 差一口气(要 20.1 GiB)。综合体验比 24G 差一档,价格合适才买。
双 48G 只在要做长片/常驻/放大时才值——比如 362 帧 1080p,或者出片后还要用 SeedVR2 7B 放大。
7. 结论
- PCIe 3.0 x16 够用:能拿到 4.0 x8 的 95% 左右(832 档 1.60× vs 1.68×),4.0 x16 只再多 4–5%。
- 超高性价比平台的合理配置:真 X99(原生 C612 芯片组,别买 H81/B85 改的)+ 两个直连 CPU 的 PCIe 3.0 x16 槽 + 双 7900 XTX 24G。
- 我们的 TP2 现在 1.65–1.87×,加 MLP 分块重叠后 832 档 7.23 s/步、1920 档 84.71 s/步。
- 天花板在链路:零通信实测 1.998×(≈2.0,我们)/ 1.97×(帖 2697)。
-
以后黄牛把7900XTX和X99价格炒上天,哥几个都是罪人。
-
-
以后黄牛把7900XTX和X99价格炒上天,哥几个都是罪人。
@xiongjie-gao 已经上天了兄弟, 我得7900xtx 买的时候是4600, x99 是300
-
以后黄牛把7900XTX和X99价格炒上天,哥几个都是罪人。
-
-
以后黄牛把7900XTX和X99价格炒上天,哥几个都是罪人。
-
-
-
-
所以x99的PCIE3.0是可以双卡x16/x16的?但是AI告诉我的是:"X99每张卡中间隔着一颗 PCIe 交换芯片,而交换芯片的上行只有 Gen3 x8。 所以 GPU 侧显示 Gen4 x16 是卡和交换芯片之间的协商,卡间真正的通路是那条 x8。"
@ymxdkb 我没记错的话,X99是有40条3.0通道的,但前提是得高级的U。比如当年刚发布我用过5960X是40条,5820K好像就是28条了。E5我不太清楚,得查查具体型号。
其实不止X99,X299和W790也是一样的,不同CPU通道数不同。
当然有个大坑,一定要买C612南桥的正规X99,别买魔改的。
另外还有一种情况,有的板子是带PLX芯片的。我当年用过一张7槽的华硕X99-E WS,板子有7个槽但U最多才40条通道,只能靠PLX扩出来,这时候就得看说明书插哪几个槽才是16x了。其实吧,其实当年正规品牌的X99都是D4了,我记得5960X发布之后国内到处都买不到D4内存,我还是让朋友从老美那面带了4根回来。我现在家里应该还留了几张X99,X99-E WS,godlike,好像还有一张supermicro的,都tmd是D4,搞的我都想去弄个现在国产的那些D3 X99玩玩了。
-
-
-
-
-
版主审定:本帖设为精华,作者 +6 积分奖励,希望再接再厉!

