跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • 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 广场
  1. 主页
  2. 版块
  3. AI硬件
  4. 双 R9700 TP. SGlang 部署qwen3.8-27b-fp8踩坑记录

双 R9700 TP. SGlang 部署qwen3.8-27b-fp8踩坑记录

已定时 已固定 已锁定 已移动 AI硬件
r9700sg-langqwen-27b
7 帖子 4 发布者 448 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • S
    S
    stormaround
    编写于 最后由 编辑
    #1

    【硬件】
    cpu:5700x
    主板:rog crosshair VIII hero
    内存:ddr4 128g
    显卡:r9700 * 2

    【部署全历程】

    1. 初始部署失败(开箱即挂)
       - 直接跑 sglang 起服务:权重加载、cache 分配都正常,但第一次 forward(多模态 warmup)就卡死,300s 看门狗超时,模型从未成功跑完一次 forward
       - 原因:R9700 无 P2P(PCIe 2 hops),sglang logits 的 TP all-gather 无条件走 triton_symm_mem_ag(NVIDIA PTX kernel + symmetric memory peer IPC),rendezvous 从 C++ 抛 hipErrorIllegalAddress 直接 std::terminate,Python 兜底抓不到 → 硬崩
    
    2. Cursor 调 opus5 改源码 → 部署成功
       - 光靠配置参数救不活,是 Cursor 里的 opus5 深入 sglang 源码:定位到 logits_processor.py:333 创建 MultimemAllGatherer 时缺平台门禁,参照同目录 torch_symm_mem.py 的既有约定补上 is_cuda() 判断,非 CUDA 平台回退到常规 all-gather
       - 验证通过:warmup 首次出现 "The server is fired up and ready to roll!",文本 + 图片推理都正常
       - patch 已打成文件可提上游 PR(分支 fix/rocm-disable-symm-mem-logits-allgather)
    
    3. 速度 0.94 tok/s → 23 tok/s(NCCL_PROTO=Simple)
       - RCCL 的 LL/LL128 低延迟协议在无 P2P 时走主机共享内存病态回退(10KiB all-reduce 要 8.2ms),每 token 光通信就 1045ms
       - opus5 实测对比四种协议,NCCL_PROTO=Simple 快 187 倍
    
    4. 23 → 52 tok/s(MTP steps=3 + KV fp8_e4m3)
       - 启用模型自带的 mtp.safetensors 做 NEXTN 投机解码(必须 topk=1)
    

    (为什么用cursor不是Claude code,因为账号稀里糊涂被封了,也没充钱,使用deepseek-v4-flash一直说无法部署,sglang不支持消费级显卡,部署就挂,使用opus5拆解源码,发现了这个bug,修改后能正常部署)

    【响应速度】

    短 prompt(日常交互):
    - 思维链关闭:TTFT 141ms,生成 35.6 tok/s
    - 思维链开启:TTFT 167ms,生成 40 tok/s
    
    满 ctx(预填充主导,TTFT≈prefill 总时长):
    - 173K 冷启动:TTFT 243s,prefill ~713 tok/s
    - 217K(radix 缓存命中):TTFT 137s
    - 260,028 tokens / 262,144(99.2% 满)冷启动:TTFT 473s(7.9 分钟),生成 3.6 tok/s,prefill ~549 tok/s
    
    【上下文召回命中率】3/3 全中 ✅
    - 200K 长文中间埋 needle → 准确返回
    - 217K → 准确返回
    - 260K 满 ctx(needle 埋在开头,即最远端)→ 准确返回 GOLDEN_NEEDLE_77113
    
    【结论】
    - 召回能力优秀:99.2% 满 ctx 仍能精确找回远端信息,长文检索没问题
    - 短上下文很流畅(首 token <200ms),适合日常对话
    - 满 ctx 基本不可交互:等首 token 要 8 分钟、生成只有 3.6 tok/s,只适合离线批处理场景
    - 生成速度随上下文增长衰减明显:40 → 5.3 → 4.3 → 3.6 tok/s(长序列 decode 每 token 要扫全部 KV)
    - prefill 吞吐 550-713 tok/s 偏慢(ROCm 上 cuda graph 未启用);radix cache 对重复前缀有效(217K 场景 TTFT 直接减半)
    

    A卡使用 SGlang能用,但是速度还是较慢

    Ben LeeB 1 条回复 最后回复
    0
    • 张光璞张
      张光璞张
      张光璞
      劳动模范
      编写于 最后由 编辑
      #2

      双9700跑到个位数,没法接受

      S 1 条回复 最后回复
      0
      • 张光璞张 张光璞

        双9700跑到个位数,没法接受

        S
        S
        stormaround
        编写于 最后由 编辑
        #3

        @张光璞 说:

        双9700跑到个位数,没法接受

        跑满上下文能掉到个位数,一般20-40之间

        张光璞张 1 条回复 最后回复
        0
        • S
          S
          stormaround
          编写于 最后由 编辑
          #4

          目前没找到4bit的,4bit应该会快一些

          1 条回复 最后回复
          0
          • S stormaround

            @张光璞 说:

            双9700跑到个位数,没法接受

            跑满上下文能掉到个位数,一般20-40之间

            张光璞张
            张光璞张
            张光璞
            劳动模范
            编写于 最后由 编辑
            #5

            @stormaround 说:

            @张光璞 说:

            双9700跑到个位数,没法接受

            跑满上下文能掉到个位数,一般20-40之间

            @stormaround 说:

            @张光璞 说:

            双9700跑到个位数,没法接受

            跑满上下文能掉到个位数,一般20-40之间

            20~40的速度已经很爽脆了。 但是个位数的话,价值已经不高。

            1 条回复 最后回复
            0
            • S stormaround

              【硬件】
              cpu:5700x
              主板:rog crosshair VIII hero
              内存:ddr4 128g
              显卡:r9700 * 2

              【部署全历程】

              1. 初始部署失败(开箱即挂)
                 - 直接跑 sglang 起服务:权重加载、cache 分配都正常,但第一次 forward(多模态 warmup)就卡死,300s 看门狗超时,模型从未成功跑完一次 forward
                 - 原因:R9700 无 P2P(PCIe 2 hops),sglang logits 的 TP all-gather 无条件走 triton_symm_mem_ag(NVIDIA PTX kernel + symmetric memory peer IPC),rendezvous 从 C++ 抛 hipErrorIllegalAddress 直接 std::terminate,Python 兜底抓不到 → 硬崩
              
              2. Cursor 调 opus5 改源码 → 部署成功
                 - 光靠配置参数救不活,是 Cursor 里的 opus5 深入 sglang 源码:定位到 logits_processor.py:333 创建 MultimemAllGatherer 时缺平台门禁,参照同目录 torch_symm_mem.py 的既有约定补上 is_cuda() 判断,非 CUDA 平台回退到常规 all-gather
                 - 验证通过:warmup 首次出现 "The server is fired up and ready to roll!",文本 + 图片推理都正常
                 - patch 已打成文件可提上游 PR(分支 fix/rocm-disable-symm-mem-logits-allgather)
              
              3. 速度 0.94 tok/s → 23 tok/s(NCCL_PROTO=Simple)
                 - RCCL 的 LL/LL128 低延迟协议在无 P2P 时走主机共享内存病态回退(10KiB all-reduce 要 8.2ms),每 token 光通信就 1045ms
                 - opus5 实测对比四种协议,NCCL_PROTO=Simple 快 187 倍
              
              4. 23 → 52 tok/s(MTP steps=3 + KV fp8_e4m3)
                 - 启用模型自带的 mtp.safetensors 做 NEXTN 投机解码(必须 topk=1)
              

              (为什么用cursor不是Claude code,因为账号稀里糊涂被封了,也没充钱,使用deepseek-v4-flash一直说无法部署,sglang不支持消费级显卡,部署就挂,使用opus5拆解源码,发现了这个bug,修改后能正常部署)

              【响应速度】

              短 prompt(日常交互):
              - 思维链关闭:TTFT 141ms,生成 35.6 tok/s
              - 思维链开启:TTFT 167ms,生成 40 tok/s
              
              满 ctx(预填充主导,TTFT≈prefill 总时长):
              - 173K 冷启动:TTFT 243s,prefill ~713 tok/s
              - 217K(radix 缓存命中):TTFT 137s
              - 260,028 tokens / 262,144(99.2% 满)冷启动:TTFT 473s(7.9 分钟),生成 3.6 tok/s,prefill ~549 tok/s
              
              【上下文召回命中率】3/3 全中 ✅
              - 200K 长文中间埋 needle → 准确返回
              - 217K → 准确返回
              - 260K 满 ctx(needle 埋在开头,即最远端)→ 准确返回 GOLDEN_NEEDLE_77113
              
              【结论】
              - 召回能力优秀:99.2% 满 ctx 仍能精确找回远端信息,长文检索没问题
              - 短上下文很流畅(首 token <200ms),适合日常对话
              - 满 ctx 基本不可交互:等首 token 要 8 分钟、生成只有 3.6 tok/s,只适合离线批处理场景
              - 生成速度随上下文增长衰减明显:40 → 5.3 → 4.3 → 3.6 tok/s(长序列 decode 每 token 要扫全部 KV)
              - prefill 吞吐 550-713 tok/s 偏慢(ROCm 上 cuda graph 未启用);radix cache 对重复前缀有效(217K 场景 TTFT 直接减半)
              

              A卡使用 SGlang能用,但是速度还是较慢

              Ben LeeB
              Ben LeeB
              Ben Lee
              劳动模范 技术大牛
              编写于 最后由 编辑
              #6

              @stormaround 要不要参考flyer666大神的魔改SGLang那个帖子再试试?我在我的双卡7900XTX上引用了,效果飞起。

              suboyangS 1 条回复 最后回复
              0
              • Ben LeeB Ben Lee

                @stormaround 要不要参考flyer666大神的魔改SGLang那个帖子再试试?我在我的双卡7900XTX上引用了,效果飞起。

                suboyangS
                suboyangS
                suboyang
                编写于 最后由 suboyang 编辑
                #7

                @Ben-Lee 这个模型是FP8
                7900xtx 跑的是低精度模型。

                楼主应该用
                tcclaviger/Qwen3.8-27B-DFlash2-FP8

                这个模型,不应该用MTP3,层数太深也影响效率。

                如果一定要用MTP,可以改成1

                https://github.com/magiccodingman/vllm-radiance

                https://github.com/StevenChenSE/sglang/tree/gfx1100-support#chinese

                1 条回复 最后回复
                2

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

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

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

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


                • 登录

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