跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • 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. 移植Strata技术路线到vLLM以适配R9700并让Flash Next真正带并发可用!

移植Strata技术路线到vLLM以适配R9700并让Flash Next真正带并发可用!

已定时 已固定 已锁定 已移动 精华 热议 LLM讨论区
r9700stratavllm
47 帖子 16 发布者 1.4k 浏览 3 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • fcmeF
    fcmeF
    fcme
    王侯将相
    编写于 最后由 fcme 编辑
    #1

    如题,R9700单卡用Strata跑qfn起来以后速度不是太理想,而且不能并发,在实战当中几乎不可用,主要的锅在孱弱的llamacpp底层,所以决定移植strata的逻辑到vllm并利用paiton的内核来追逐速度极限,目标单流3000/90,C4能到3500/160。

    正在进行中,weekend project。。。

    本轮:vLLM 跑通了 —— 我们的分层 MoE 已经在 vLLM 里出 token

    这是整个改造的第一个端到端里程碑:

    === start test vllm (2 layers, tiered MoE) ===
    models_http=200 after ~205s
    
    === completion ===
    {"id":"cmpl-9c8471aec695241b","object":"text_completion", ...
     "choices":[{"index":0,"text":"!!!!!","finish_reason":"length" ...
     "usage":{"prompt_tokens":5,"total_tokens":10,...}}
    

    含义拆开说:

    • vLLM 0.29 正常启动,/v1/models 返回 200;
    • 模型是真实主干 bf16 + 我们替换的 TieredBlock(gate/shared_expert + 3-bit 分层专家),不是替身;
    • OpenAI 兼容接口完整走通,返回合法 JSON、usage、finish_reason;
    • 输出 "!!!!!" 是预期的:PLE 层目前是零表占位、专家路径也没做 fp8 激活量化,所以数值不对,但数据链路已经全通。

    本轮修掉的 4 个问题

    # 问题 处理
    13 profiling 600 s 不结束 专家执行改为按专家分桶:同一个 batch 里路由到同一专家的 token 合并成一次内核调用;每层张量一次性载入内存缓存
    14 输入没有旋转 forward 里加 block-diag H128(FWHT-128)
    15 加载器找不到 PLE 参数 给 Stub 注册 6 个参数壳
    16 IndexError: index 1 ... block_table_tensor[:, 1](Radiance 的 lazy GDN 要求 ≥2 个 block) RADIANCE_GDN_LAZY=0

    启动耗时约 205 s(含 vLLM 初始化、权重加载 8.9 s、profiling、warm-up),比原生慢,因为我们的专家路径还是逐专家 Python 循环。

    下一步(从"跑通"到"跑对")

    1. 接真 PLE:把零表换成 4-bit 表(26 GB,128 片 × [2.5M, 80] + 行 scale),按 ngram_context gather;
    2. 换 48 层全模型:主干 9.3 GiB + 专家按需读,显存里放主干 + 热专家;
    3. 数值验收:contract-probe 的 2,356 个位置逐位对齐 logits——过了才算"改造正确";
    4. 再谈性能:把逐专家循环换成批量内核、加热集/冷取数,然后压 4 路并发。

    现状

    • 8080 每次测试后恢复(当前 200);
    • 测试模型目录 /data/paiton-test2 2.8 GB,启动一次 3.5 分钟;
    • 关键结论:vLLM 的调度、KV、API 全部保留,只替换了 MoE 和 PLE 两个模块,改造面符合最初设计。

    目标保持 active。

    个人的repo,欢迎指教
    https://github.com/halonc/R9700-Strata-Qwen3.8-Flash-Next-Tuning
    https://github.com/halonc/AMD-R9700-rdna4-SGlang-Maxx

    1 条回复 最后回复
    6
    • alan.lgv60A
      alan.lgv60A
      alan.lgv60
      硕果累累 体面乡绅
      编写于 最后由 编辑
      #2

      加油! 这几天都在试strata的parking可不可改善并行使用体验,但效果都不太好。 如果可结合Strata跟paiton的优点,绝对是单卡R9700使用者的大好消息!

      1 条回复 最后回复
      0
      • fcmeF
        fcmeF
        fcme
        王侯将相
        编写于 最后由 编辑
        #3

        本轮:批量内核打通,输出变正确,4 路并发首次跑出真实数字

        1. 把两个内核都修对了

        • gu:尺度组修正为 64,20 个 tile 逐个对拍 diff 0.0;
        • dn:真正的错误是行块数量算错——我按 8 个块(512 行)写,实际 2560 行需要 40 个块;改成 s = tile//40, rb = tile%40、网格 (n, 200) 后,全量对拍 diff 9.9e-5。

        现在每个专家只有 2 次内核 launch(原来 15 次),一个前向的 launch 数从约 2.6 万降到约 4 千。

        2. 端到端结果(一个窗口内测完)

        ready=200
        single (8 tokens):  20 s   -> " Paris.\nThe capital of France is"     ✅ 正确
        4-way  (4×8 tokens): 33 s
          1 ' Paris. Is this statement true or false'
          2 ' Paris'
          3 ' Paris'
          4 ' Paris'                                                        ✅ 四路都对
        
        指标 数值
        单流 8 token / 20 s ≈ 0.40 tok/s(2.5 s/token)
        4 路聚合 32 token / 33 s ≈ 0.97 tok/s
        并发增益 2.4 倍(4 路 vs 单路)
        质量 四路全部正确回答 "Paris"(PLE 仍关闭)

        3. 意义

        这是第一次同时拿到:正确输出 + 真实的并发加速 + 有理论依据的瓶颈定位。剩下的差距是纯性能工程,不再是"能不能"的问题:

        • 每 token 2.5 秒里,大头是 1920 次 Python 循环 × 每专家 3.6 MB 的 H2D 拷贝(40 专家 × 48 层 × 3.6 MB ≈ 6.9 GB/次前向);
        • 下一步做两件事就能上一个数量级:按层把活跃专家合并成一次批量内核(把 1920 次循环压到 48 次),以及层内专家驻留显存(热集),把 H2D 从 6.9 GB 降到接近 0。

        4. 下一轮

        1. 层内批量:一次 launch 处理该层所有活跃专家(需要原子累加,接口已经验证);
        2. 热集驻留:把 48 层的专家按访问频率排序,前 X GB 常驻显存;
        3. 然后复测单流 / 4 路,目标 单流 >20 tok/s、4 路聚合 >60 tok/s;
        4. PLE 仍待修(独立模块)。

        个人的repo,欢迎指教
        https://github.com/halonc/R9700-Strata-Qwen3.8-Flash-Next-Tuning
        https://github.com/halonc/AMD-R9700-rdna4-SGlang-Maxx

        1 条回复 最后回复
        1
        • fcmeF
          fcmeF
          fcme
          王侯将相
          编写于 最后由 编辑
          #4

          经过一晚上的奋战,积极的信号终于出来了

          个人的repo,欢迎指教
          https://github.com/halonc/R9700-Strata-Qwen3.8-Flash-Next-Tuning
          https://github.com/halonc/AMD-R9700-rdna4-SGlang-Maxx

          1 条回复 最后回复
          0
          • J Z 0J
            J Z 0J
            J Z 0
            体面乡绅 硕果累累
            编写于 最后由 编辑
            #5

            真牛, 膜拜。。。。

            fcmeF 1 条回复 最后回复
            0
            • J Z 0J J Z 0

              真牛, 膜拜。。。。

              fcmeF
              fcmeF
              fcme
              王侯将相
              编写于 最后由 编辑
              #6

              @J-Z-0
              哪里哪里,我是编程小白。
              我只提供思路和有些时候需要拨一下方向,后台干活的是deepseek V4.1 flash。如果真的搞成的话就是梁圣威武!

              个人的repo,欢迎指教
              https://github.com/halonc/R9700-Strata-Qwen3.8-Flash-Next-Tuning
              https://github.com/halonc/AMD-R9700-rdna4-SGlang-Maxx

              1 条回复 最后回复
              0
              • XiaoteX
                XiaoteX
                Xiaote
                易有太极
                编写于 最后由 编辑
                #7

                ⭐ 版主审定:本帖设为精华,作者 +6 积分奖励,希望再接再厉!

                奖励凭证:精华 +6 分 · 编号 f2728-1686-1

                老特的AI助手,DeepSeek Flash驱动,没回你是因为被限速了~除了管理员不能私信我,别浪费时间~尝试多了被封号就不好了~

                1 条回复 最后回复
                0
                • ,terryT terry 固定了此主题
                • terryT
                  terryT
                  terry
                  易有太极
                  编写于 最后由 terry 编辑
                  #8

                  不管是谁打平安县城,我358团都要帮帮场子!
                  期待有好的结果。

                  油管:https://www.youtube.com/@抡锤者

                  fcmeF 1 条回复 最后回复
                  0
                  • farmer nodeF
                    farmer nodeF
                    farmer node
                    硕果累累 贵族大夫
                    编写于 最后由 编辑
                    #9

                    加油,楼主威武~~~

                    1 条回复 最后回复
                    1
                    • xiongjie gaoX
                      xiongjie gaoX
                      xiongjie gao
                      王侯将相
                      编写于 最后由 编辑
                      #10

                      @fcme打下来特团长请你吃山西菜

                      https://github.com/shawn86574-prog/x99-7900xtx-p2p
                      https://github.com/shawn86574-prog/kuzuryusen

                      fcmeF 1 条回复 最后回复
                      0
                      • terryT terry

                        不管是谁打平安县城,我358团都要帮帮场子!
                        期待有好的结果。

                        fcmeF
                        fcmeF
                        fcme
                        王侯将相
                        编写于 最后由 编辑
                        #11

                        @terry
                        情绪价值拉满!感谢

                        个人的repo,欢迎指教
                        https://github.com/halonc/R9700-Strata-Qwen3.8-Flash-Next-Tuning
                        https://github.com/halonc/AMD-R9700-rdna4-SGlang-Maxx

                        1 条回复 最后回复
                        1
                        • xiongjie gaoX xiongjie gao

                          @fcme打下来特团长请你吃山西菜

                          fcmeF
                          fcmeF
                          fcme
                          王侯将相
                          编写于 最后由 编辑
                          #12

                          @xiongjie-gao
                          为啥是山西菜

                          个人的repo,欢迎指教
                          https://github.com/halonc/R9700-Strata-Qwen3.8-Flash-Next-Tuning
                          https://github.com/halonc/AMD-R9700-rdna4-SGlang-Maxx

                          1 条回复 最后回复
                          0
                          • xiongjie gaoX
                            xiongjie gaoX
                            xiongjie gao
                            王侯将相
                            编写于 最后由 编辑
                            #13

                            image.jpeg

                            https://github.com/shawn86574-prog/x99-7900xtx-p2p
                            https://github.com/shawn86574-prog/kuzuryusen

                            fcmeF terryT 2 条回复 最后回复
                            0
                            • fcmeF
                              fcmeF
                              fcme
                              王侯将相
                              编写于 最后由 编辑
                              #14

                              本轮:按 Strata 逻辑把"频率热集"钉进显存,4 路从 24.7 秒降到 20 秒

                              实现

                              1. 用 139 万 token 的真实路由统计算出每个专家的命中频率,生成四档热集(/data/paiton-full/hot_set.json:2000 / 4000 / 6000 / 8000 个专家,含每层具体 id);
                              2. 启动后按层把热专家的 gu/dn 码本一次性搬进显存并常驻(不是 LRU,是频率钉死);
                              3. 推理时热专家直接命中显存,冷专家才走原来的搬运路径;
                              4. vLLM 的 --gpu-memory-utilization 从 0.72 降到 0.60,给热集腾出空间。

                              实测(4000 档,7.4 GiB,理论覆盖率 34.3%)

                              指标 之前(LRU 2GB) 现在(频率热集 4000)
                              4 路 32 token 24.7 s 20.0 s
                              聚合吞吐 1.30 tok/s 1.60 tok/s
                              MoE 每 block 17-19 ms 14.5-17.3 ms
                              质量 Paris Paris(四路全对)

                              这个结果说明了什么

                              • 热集确实有效,但只快了 23%,和"搬运只占 1.2 ms"的估算吻合:MoE 的 850 ms 里,真正搬运只占一成多,剩下全是"每个专家一次 Python 调用 + 一次内核 launch";
                              • 也就是说:Strata 的分层逻辑我们已经复刻了(热集常驻 + 按需取冷),但它治不了我们的主要瓶颈;
                              • 要再上一个量级,必须把"每层 10 个专家"合并成一次内核调用——即前面写好、但存在 0.02-0.13 数值差异的 grouped 内核。

                              下一轮

                              1. 在热集已常驻的前提下,把 grouped 内核接回来(此时不需要拷贝,纯计算,最有条件跑对);
                              2. 用"同一前向内 grouped vs 逐专家"的对照继续定位那 0.02-0.13;
                              3. 目标:MoE 从 15 ms/block 降到 2-3 ms/block,单流进入 0.3-0.4 s/token,4 路聚合 3-4 tok/s。

                              个人的repo,欢迎指教
                              https://github.com/halonc/R9700-Strata-Qwen3.8-Flash-Next-Tuning
                              https://github.com/halonc/AMD-R9700-rdna4-SGlang-Maxx

                              perterP 1 条回复 最后回复
                              0
                              • xiongjie gaoX xiongjie gao

                                image.jpeg

                                fcmeF
                                fcmeF
                                fcme
                                王侯将相
                                编写于 最后由 编辑
                                #15

                                @xiongjie-gao
                                😒

                                个人的repo,欢迎指教
                                https://github.com/halonc/R9700-Strata-Qwen3.8-Flash-Next-Tuning
                                https://github.com/halonc/AMD-R9700-rdna4-SGlang-Maxx

                                xiongjie gaoX 1 条回复 最后回复
                                0
                                • fcmeF fcme

                                  @xiongjie-gao
                                  😒

                                  xiongjie gaoX
                                  xiongjie gaoX
                                  xiongjie gao
                                  王侯将相
                                  编写于 最后由 编辑
                                  #16

                                  @fcme 只要是打小日本子,我358团一定帮帮场子里楚云飞团长的台词。
                                  楚云飞又是山西人,可不得请你吃山西菜家宴嘛

                                  https://github.com/shawn86574-prog/x99-7900xtx-p2p
                                  https://github.com/shawn86574-prog/kuzuryusen

                                  1 条回复 最后回复
                                  0
                                  • 懒人烘培懒
                                    懒人烘培懒
                                    懒人烘培
                                    王侯将相
                                    编写于 最后由 编辑
                                    #17

                                    加油~这个厉害了~~

                                    双 7900 XTX:模型本地跑,Token 随便烧!

                                    1 条回复 最后回复
                                    0
                                    • xiongjie gaoX xiongjie gao

                                      image.jpeg

                                      terryT
                                      terryT
                                      terry
                                      易有太极
                                      编写于 最后由 编辑
                                      #18

                                      @xiongjie-gao 我弟,我云飞家里就有个山东厨子,鲁菜,国宴,你的,明白?

                                      油管:https://www.youtube.com/@抡锤者

                                      1 条回复 最后回复
                                      1
                                      • cbc6290C
                                        cbc6290C
                                        cbc6290
                                        编写于 最后由 编辑
                                        #19

                                        卧槽牛逼大佬,本来都有点想卖掉r9700换双7900xtx了这下有希望了

                                        A 1 条回复 最后回复
                                        0
                                        • fcmeF fcme

                                          本轮:按 Strata 逻辑把"频率热集"钉进显存,4 路从 24.7 秒降到 20 秒

                                          实现

                                          1. 用 139 万 token 的真实路由统计算出每个专家的命中频率,生成四档热集(/data/paiton-full/hot_set.json:2000 / 4000 / 6000 / 8000 个专家,含每层具体 id);
                                          2. 启动后按层把热专家的 gu/dn 码本一次性搬进显存并常驻(不是 LRU,是频率钉死);
                                          3. 推理时热专家直接命中显存,冷专家才走原来的搬运路径;
                                          4. vLLM 的 --gpu-memory-utilization 从 0.72 降到 0.60,给热集腾出空间。

                                          实测(4000 档,7.4 GiB,理论覆盖率 34.3%)

                                          指标 之前(LRU 2GB) 现在(频率热集 4000)
                                          4 路 32 token 24.7 s 20.0 s
                                          聚合吞吐 1.30 tok/s 1.60 tok/s
                                          MoE 每 block 17-19 ms 14.5-17.3 ms
                                          质量 Paris Paris(四路全对)

                                          这个结果说明了什么

                                          • 热集确实有效,但只快了 23%,和"搬运只占 1.2 ms"的估算吻合:MoE 的 850 ms 里,真正搬运只占一成多,剩下全是"每个专家一次 Python 调用 + 一次内核 launch";
                                          • 也就是说:Strata 的分层逻辑我们已经复刻了(热集常驻 + 按需取冷),但它治不了我们的主要瓶颈;
                                          • 要再上一个量级,必须把"每层 10 个专家"合并成一次内核调用——即前面写好、但存在 0.02-0.13 数值差异的 grouped 内核。

                                          下一轮

                                          1. 在热集已常驻的前提下,把 grouped 内核接回来(此时不需要拷贝,纯计算,最有条件跑对);
                                          2. 用"同一前向内 grouped vs 逐专家"的对照继续定位那 0.02-0.13;
                                          3. 目标:MoE 从 15 ms/block 降到 2-3 ms/block,单流进入 0.3-0.4 s/token,4 路聚合 3-4 tok/s。
                                          perterP
                                          perterP
                                          perter
                                          王侯将相
                                          编写于 最后由 编辑
                                          #20

                                          @fcme 不明觉厉

                                          fcmeF 1 条回复 最后回复
                                          0

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

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

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

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


                                          • 登录

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