跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(LCZ-Blue)
  • 不使用皮肤
  • LCZ-Green
  • LCZ-Blue
  • LCZ-Black
折叠
品牌标识

抡锤者

首页 版块 标签
硬件
装备秀
AI 广场 App
  1. 主页
  2. 版块
  3. LLM讨论区
  4. 【分享】N卡 fork - 给 sergqwer/strata-nvfp4 加上 DP 双卡预填充:2×3090 @350W 长 prompt prefill 4.7K–5.7K tok/s(附 GitHub 分支)

【分享】N卡 fork - 给 sergqwer/strata-nvfp4 加上 DP 双卡预填充:2×3090 @350W 长 prompt prefill 4.7K–5.7K tok/s(附 GitHub 分支)

已定时 已固定 已锁定 已移动 LLM讨论区
rtx3090strata多卡部署
4 帖子 3 发布者 430 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • A
    A
    applejuice
    王侯将相
    编写于 最后由 applejuice 编辑
    #1

    之前我分享过 nicejunjie/Strata-rdna3 的 DP 双卡预填充(STRATA_DP_PREFILL)在 CUDA 上的编译。这次我把这套 DP 移植到了 sergqwer 的 NVIDIA 分支 strata-nvfp4 0.1.44.1-nvfp4.2 上。sergqwer 的提示词处理本来就比较快,两者合在一起,是我在 2×3090 上测到最快的 Strata。

    代码在这里(非官方):https://github.com/strata-dp/strata-nvfp4/tree/dp-prompt-path (分支 dp-prompt-path)

    改了什么

    • 基于 sergqwer/strata-nvfp4 v0.1.44.1-nvfp4.2。
    • 移植了 nicejunjie 的 4 个 DP 提交(保留原作者):DP 主体、STRATA_DP_MIN 默认 8000、DP 计划拒绝的段落改用流水线 chunk、DP 计划的最后一个 chunk 检查。主体有 5 处冲突,我手动合并:prefill.cpp 用 nicejunjie 的 chunk 遍历;generate.cpp 保留 sergqwer 自己的流水线 chunk 大小,再加上 DP 的覆盖。
    • 我自己补了一个小提交:chunk 循环的步长和最后一行的位置改成跟随 step_at(来自 nicejunjie 另一个没移植的提交,不补的话 DP 的 chunk 计划和循环会对不上)。
    • 没有移植:STRATA_DP_SHARE(我测过没有提升)、提前/延后回填(依赖他的张量并行代码)、张量并行相关的提交。

    DP 预填充是什么

    • 原版双卡是层切分:卡 0 跑 0–23 层,卡 1 跑 24–47 层,prompt 的每个 chunk 先过卡 0 再过卡 1。
    • DP 模式下每张卡都放全部 dense 权重,两张卡轮流拿 chunk,各自跑完全部 48 层,每层的状态在两卡之间同步。
    • 只对 ≥8,000 token 的 prompt 生效,decode 不受影响。

    测试环境

    • 2× RTX 3090 24 GB,各 PCIe 4.0 x16,P2P 开启(引擎日志两个方向都是 peer access on),两卡都限 350 W
    • 32 核 EPYC(AVX2,无 AVX-512),256 GB DDR4 八通道,Ubuntu 24.04,CUDA 13 镜像,CUDA_ARCHITECTURES=86
    • 模型:Swift 1.5 Qwen3.8-Flash-Next IQ4_XS(UkisAI GGUF),512K 上下文(YaRN ×2),int8 KV,--kv-resident 32768,--pipeline-windows 2,--pcie-frac 0,--spec 4 + MTP
    • DP 设置:STRATA_DP_PREFILL=1 STRATA_KV_HOST_DMA=1 STRATA_PREFILL_AUTO_MAX=16384,不用 --trim-stage-weights
    • 所有引擎用同一份配置和同一个专家 profile,只换引擎

    Prefill(tok/s,350 W,每个 prompt 加随机前缀避免缓存命中,max_tokens 1)

    引擎 19K 43K 89K 123K
    本分支(sergqwer + DP) 4,719 5,354 5,705 5,592
    nicejunjie/Strata-rdna3 + DP(CUDA 编译) 4,493 5,046 5,481 5,418
    上游 Niko1221/Strata main(10-28,引擎 0.1.53),无 DP 2,567 3,885 4,611 4,737
    • 比 nicejunjie 的 DP 分支快 3~6%。
    • 比上游最新版快 18~84%,prompt 越短差距越大。

    Decode(tok/s,350 W,greedy,关思考)

    引擎 中文散文 中文聊天 英文技术 代码
    本分支 118 130 127 209
    nicejunjie + DP 121 125 118 199
    上游 main 127 131 126 188

    DP 不改 decode 路径。上游最新版的中文散文 decode 更好一点,代码则是本分支最好。

    单卡参考(1× 3090,350 W)

    单卡时 DP 不会生效,本分支就等于 sergqwer 原版引擎:

    19K 43K 89K 123K decode(散文 / 聊天 / 英文 / 代码)
    1× 3090 2,414 2,966 2,921 2,864 110 / 113 / 109 / 163

    单卡的 prefill 大约是双卡 DP 的一半,decode 慢 7~22%。

    注意

    • 只支持正好两张卡的层切分。 不能和 --batch、--peer-device、--trim-stage-weights 一起用。
    • 需要 KV streaming(配置里有 --kv-resident)。上下文 ≥ 65536 且内存够时 setup 会自动打开;WSL 下是关的,所以 DP 也开不了。
    • 显存: DP 每张卡多放一份 dense 权重,所以每张卡缓存的专家比 nicejunjie 分支少约 300 个。我在一次图片请求后见过一条 "only 435 MiB of VRAM free" 的警告,没有出错,但长上下文加图片时要留意。
    • P2P: 我的卡开了 P2P。GeForce 官方驱动一般没有 P2P,DP 照样能跑,只是卡间同步要经过内存中转,速度我没测。
    • 350 W: 两张 3090 跑 350 W 时整机功耗接近 1 kW,电源要够。
    • 这是非官方移植,基于 sergqwer 的 0.1.44.1-nvfp4.2,不是他最新的 0.2.0 版本。
    • 这个分支 p2p/nvlink 帮助不大

    感谢 nicejunjie 的 DP 实现,也感谢 sergqwer 的 NVIDIA 分支。

    1 条回复 最后回复
    1
    • A
      A
      applejuice
      王侯将相
      编写于 最后由 applejuice 编辑
      #2

      因为我没用iq3_s 所以就没测了
      有兴趣的网友可以试试

      我自己用的时候都是在250w

      Engine / setting Power 19K 43K 89K 123K
      **Port, DP ** 250 W 4,226 4,644 4,812 4,713

      这已经是strata 刚出来的时候 我觉得可以用的 差不多两倍了

      1 条回复 最后回复
      2
      • ,terryT terry 固定了此主题
      • ,A applejuice 引用了 此主题
      • stxpnetS
        stxpnetS
        stxpnet
        王侯将相
        编写于 最后由 编辑
        #3

        mark一下,我用的是SWIFT IQ 3 S

        双卡3090 PCIE 4.0 16X/16X

        白天(宰相) Strata QFN3.8 IQ4_XS 262K ~120 t/s
        夜间(将军) vllm+swift 1.5 27B INT4-W4A8-dflash2 188K X 2 ~85 t/s
        1 条回复 最后回复
        0
        • starryskyknightS
          starryskyknightS
          starryskyknight
          硕果累累 贵族大夫
          编写于 最后由 编辑
          #4

          感謝分享 來試試看

          1 条回复 最后回复
          0
          • ,系统 取消固定了此主题

          你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

          厌倦了每次访问都刷到同样的帖子?您注册账号后,您下次访问时都将自动回到上次浏览的位置,并可选择接收新回复的通知(通过电子邮件或推送通知)。您还可以收藏帖子、为帖子点赞,以此向其他社区成员表达您的感谢。

          有了你的建议,这篇帖子会更精彩哦 💗

          注册 登录
          回复
          • 在新帖中回复
          登录后回复
          • 从旧到新
          • 从新到旧
          • 最多赞同


          • 登录

          • 登录或注册以进行搜索。
          • 第一个帖子
            最后一个帖子
          0
          • 版块
          • 最新
          • 标签
          • 热门
          • 用户
          • 群组