跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • 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. 【 爆卖理由+2】双7900 XTX Strata IQ3_S:262K Prefill 6,264 可抄作业

【 爆卖理由+2】双7900 XTX Strata IQ3_S:262K Prefill 6,264 可抄作业

已定时 已固定 已锁定 已移动 优秀 LLM讨论区
7900xtxstrata本地模型
25 帖子 8 发布者 1.5k 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Ben LeeB Ben Lee

    这个太猛了!👍

    懒人烘培懒
    懒人烘培懒
    懒人烘培
    王侯将相
    编写于 最后由 编辑
    #4

    @Ben-Lee 是呀,之前那帖子没有发一周,优化真是快。

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

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

      烘培兄弟,附件不能下载

      懒人烘培懒
      懒人烘培懒
      懒人烘培
      王侯将相
      编写于 最后由 懒人烘培 编辑
      #5

      @Ben-Lee 已经上传到文件末尾,查收

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

      1 条回复 最后回复
      1
      • Ben LeeB
        Ben LeeB
        Ben Lee
        王侯将相
        编写于 最后由 编辑
        #6

        收到了,多谢多谢🙏

        懒人烘培懒 1 条回复 最后回复
        0
        • 懒人烘培懒 懒人烘培

          @Ben-Lee 是呀,之前那帖子没有发一周,优化真是快。

          Ben LeeB
          Ben LeeB
          Ben Lee
          王侯将相
          编写于 最后由 编辑
          #7

          @懒人烘培 这技术迭代,稍微一不注意就发现自己跟不上了,哈哈😄

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

            收到了,多谢多谢🙏

            懒人烘培懒
            懒人烘培懒
            懒人烘培
            王侯将相
            编写于 最后由 编辑
            #8

            @Ben-Lee 是呀,每几天就让AI agent看看有没有新的技术和提升空间。

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

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

              @懒人烘培 我机子上运行的strata两轮调优都是跟着你的方案走的。区别的是pp 6000 token/秒是属于单任务的极限优化。我这边是两组两槽最高四任务并发。所以 做不了这么极致。但从数据上说,也是非常 不错了。

              image.jpeg

              给你这边做个补充,走你这边优化路线多任务并发的优化数据。你不用特地去跑了。

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

              懒人烘培懒 1 条回复 最后回复
              0
              • xiongjie gaoX xiongjie gao

                @懒人烘培 我机子上运行的strata两轮调优都是跟着你的方案走的。区别的是pp 6000 token/秒是属于单任务的极限优化。我这边是两组两槽最高四任务并发。所以 做不了这么极致。但从数据上说,也是非常 不错了。

                image.jpeg

                给你这边做个补充,走你这边优化路线多任务并发的优化数据。你不用特地去跑了。

                懒人烘培懒
                懒人烘培懒
                懒人烘培
                王侯将相
                编写于 最后由 懒人烘培 编辑
                #10

                @xiongjie-gao 说:

                走你这边优化路线多任务并发的优化数据

                不错,多并发有可以参数的数据了,效果也是非常不错的

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

                1 条回复 最后回复
                0
                • Eric SetoE
                  Eric SetoE
                  Eric Seto
                  编写于 最后由 编辑
                  #11

                  @懒人烘培 謝謝! 我的設置基本上同你一樣但是如果我 GPU_MAX_HW_QUEUES=8 就會發生空轉問題, 就算strata 不在運作中GPU仍然會100% load, 但如果我將GPU_MAX_HW_QUEUES=6就不會有空轉問題, 你有同樣的問題嗎? 先多謝師兄指教

                  懒人烘培懒 1 条回复 最后回复
                  0
                  • Eric SetoE Eric Seto

                    @懒人烘培 謝謝! 我的設置基本上同你一樣但是如果我 GPU_MAX_HW_QUEUES=8 就會發生空轉問題, 就算strata 不在運作中GPU仍然會100% load, 但如果我將GPU_MAX_HW_QUEUES=6就不會有空轉問題, 你有同樣的問題嗎? 先多謝師兄指教

                    懒人烘培懒
                    懒人烘培懒
                    懒人烘培
                    王侯将相
                    编写于 最后由 编辑
                    #12

                    @Eric-Seto 刚刚实测,沿用本机 Strata RDNA3 0.1.43 配置,只临时改变队列数。每组完成两次生成,生成结束后各观察 45 秒,结果如下(中位数):

                    状态 GPU0 占用 / 功耗 GPU1 占用 / 功耗
                    Strata 未启动 1% / 11 W 0% / 19 W
                    GPU_MAX_HW_QUEUES=8,生成结束 100% / 69 W 100% / 106 W
                    GPU_MAX_HW_QUEUES=6,生成结束 100% / 77 W 0% / 18 W
                    Strata 进程退出后 1% / 14 W 0% / 20 W

                    我这边双 7900 XTX 也复现了。设为 8,生成结束后双卡仍持续显示 100% 占用;改为 6,第二张卡恢复空闲,但第一张卡仍显示 100%。关闭 Strata 进程后两张卡都恢复正常。功耗也明显下降,因此不只是占用率显示的问题。

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

                    Simon Li 0S 1 条回复 最后回复
                    2
                    • 懒人烘培懒 懒人烘培

                      @Eric-Seto 刚刚实测,沿用本机 Strata RDNA3 0.1.43 配置,只临时改变队列数。每组完成两次生成,生成结束后各观察 45 秒,结果如下(中位数):

                      状态 GPU0 占用 / 功耗 GPU1 占用 / 功耗
                      Strata 未启动 1% / 11 W 0% / 19 W
                      GPU_MAX_HW_QUEUES=8,生成结束 100% / 69 W 100% / 106 W
                      GPU_MAX_HW_QUEUES=6,生成结束 100% / 77 W 0% / 18 W
                      Strata 进程退出后 1% / 14 W 0% / 20 W

                      我这边双 7900 XTX 也复现了。设为 8,生成结束后双卡仍持续显示 100% 占用;改为 6,第二张卡恢复空闲,但第一张卡仍显示 100%。关闭 Strata 进程后两张卡都恢复正常。功耗也明显下降,因此不只是占用率显示的问题。

                      Simon Li 0S
                      Simon Li 0S
                      Simon Li 0
                      编写于 最后由 编辑
                      #13

                      @懒人烘培 我去,我还以为我上面的显卡温度太高被烤出毛病了,原来大家都有这个情况。。。哈哈

                      懒人烘培懒 1 条回复 最后回复
                      0
                      • Simon Li 0S Simon Li 0

                        @懒人烘培 我去,我还以为我上面的显卡温度太高被烤出毛病了,原来大家都有这个情况。。。哈哈

                        懒人烘培懒
                        懒人烘培懒
                        懒人烘培
                        王侯将相
                        编写于 最后由 编辑
                        #14

                        @Simon-Li-0 不得,显卡没有这么脆弱,刚使用双7900XTX的时候,由于没有控制好温度,一卡长时间在110°满载,最后优化后就好了。

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

                        Simon Li 0S Eric SetoE 2 条回复 最后回复
                        0
                        • 懒人烘培懒 懒人烘培

                          @Simon-Li-0 不得,显卡没有这么脆弱,刚使用双7900XTX的时候,由于没有控制好温度,一卡长时间在110°满载,最后优化后就好了。

                          Simon Li 0S
                          Simon Li 0S
                          Simon Li 0
                          编写于 最后由 编辑
                          #15

                          @懒人烘培 我上面这张卡100+,下面的才80+,正常能差15-20度

                          懒人烘培懒 1 条回复 最后回复
                          0
                          • Simon Li 0S Simon Li 0

                            @懒人烘培 我上面这张卡100+,下面的才80+,正常能差15-20度

                            懒人烘培懒
                            懒人烘培懒
                            懒人烘培
                            王侯将相
                            编写于 最后由 编辑
                            #16

                            @Simon-Li-0 哦,你那只要不几个小时连续满载,应该问题不大,夏天温度应该还要高点。可以把单卡功率锁定在300W或者250W试试,看看温度有没有改善

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

                            Simon Li 0S 1 条回复 最后回复
                            0
                            • 懒人烘培懒 懒人烘培

                              @Simon-Li-0 哦,你那只要不几个小时连续满载,应该问题不大,夏天温度应该还要高点。可以把单卡功率锁定在300W或者250W试试,看看温度有没有改善

                              Simon Li 0S
                              Simon Li 0S
                              Simon Li 0
                              编写于 最后由 编辑
                              #17

                              @懒人烘培 用strata非常合适,他不会一直满功耗,双卡27B是真顶不住,跑起来就直接110度纹丝不动。😢

                              1 条回复 最后回复
                              0
                              • 懒人烘培懒 懒人烘培

                                @Simon-Li-0 不得,显卡没有这么脆弱,刚使用双7900XTX的时候,由于没有控制好温度,一卡长时间在110°满载,最后优化后就好了。

                                Eric SetoE
                                Eric SetoE
                                Eric Seto
                                编写于 最后由 Eric Seto 编辑
                                #18

                                @懒人烘培 你的意思是只要調較好顯卡的溫度就不會有空轉的問題? 就算GPU_MAX_HW_QUEUES=8? 我兩張顯卡edge溫度處於65以下仍然會有空轉的問題

                                Simon Li 0S 懒人烘培懒 E 3 条回复 最后回复
                                0
                                • Eric SetoE Eric Seto

                                  @懒人烘培 你的意思是只要調較好顯卡的溫度就不會有空轉的問題? 就算GPU_MAX_HW_QUEUES=8? 我兩張顯卡edge溫度處於65以下仍然會有空轉的問題

                                  Simon Li 0S
                                  Simon Li 0S
                                  Simon Li 0
                                  编写于 最后由 编辑
                                  #19

                                  @Eric-Seto 不是的,烘焙老哥在说我的显卡温度高的问题,这个空转问题是另一回事,还没找到怎么解决

                                  1 条回复 最后回复
                                  1
                                  • Eric SetoE Eric Seto

                                    @懒人烘培 你的意思是只要調較好顯卡的溫度就不會有空轉的問題? 就算GPU_MAX_HW_QUEUES=8? 我兩張顯卡edge溫度處於65以下仍然會有空轉的問題

                                    懒人烘培懒
                                    懒人烘培懒
                                    懒人烘培
                                    王侯将相
                                    编写于 最后由 懒人烘培 编辑
                                    #20

                                    @Eric-Seto 我和你的都有 8 时空转的问题,你改成 6 后解决了,我那设备只改善了一张卡,目前还有点摸不清楚原因

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

                                    1 条回复 最后回复
                                    1
                                    • Eric SetoE Eric Seto

                                      @懒人烘培 你的意思是只要調較好顯卡的溫度就不會有空轉的問題? 就算GPU_MAX_HW_QUEUES=8? 我兩張顯卡edge溫度處於65以下仍然會有空轉的問題

                                      E
                                      E
                                      Enigma
                                      体面乡绅 硕果累累
                                      编写于 最后由 编辑
                                      #21

                                      @Eric-Seto 说:

                                      @懒人烘培 你的意思是只要調較好顯卡的溫度就不會有空轉的問題? 就算GPU_MAX_HW_QUEUES=8? 我兩張顯卡edge溫度處於65以下仍然會有空轉的問題

                                      我也有这个问题,就是用你的方法治的,谢谢啦

                                      1 条回复 最后回复
                                      1
                                      • Eric SetoE
                                        Eric SetoE
                                        Eric Seto
                                        编写于 最后由 Eric Seto 编辑
                                        #22

                                        Strata/AMD ROCm:GPU_MAX_HW_QUEUES=8 待機 GPU 持續 100% 負載的核心修補實測

                                        **背景:雖然將 GPU_MAX_HW_QUEUES 設為 6 解決了我的GPU 持續 100% 負載問題,但在多數已測項目中,prefill(提示處理)與 decode(生成)速度比目前 queue=8 的配置慢。因此我嘗試保留 queue=8,改從核心驅動修補這個問題。

                                        根本原因(Root Cause)

                                        在 AMD ROCm/Ubuntu 環境下執行 Strata 推論引擎(v0.143,搭配社群 #pr1 fork)時,即使處於待機狀態,GPU 使用率仍持續維持在 100%,通常是由一個已知的硬體排程器錯誤所造成,涉及多媒體引擎排程器(Multimedia Engine Scheduler,MES)的韌體。

                                        當 HIP/ROCm streams 透過 MES(mes_v11_0_add_hw_queue)建立多個硬體佇列,或與這些佇列互動時,引擎會觸發 amdgpu_ring_commit 內部的緊密輪詢迴圈。這會使 rocm-smi 與作業系統持續回報 100% GPU 使用率,並讓顯示卡維持在高功耗狀態,即使當下完全沒有進行任何推論工作。

                                        相關討論:ROCm/TheRock issue #9141。該討論涵蓋不同 GPU 世代與軟體;本文只記錄我的 GFX11/gfx1100 雙卡實測,不能推論所有 AMD GPU 的相同症狀都能用這份修補解決。

                                        下文那次長提示停滯的根因,也仍然未確認。

                                        修正方法:Kernel修補(Fix — Kernel Patch)

                                        重要:任何想嘗試這個修補的人,都必須先備份並保留原本可正常開機的核心、對應的 /lib/modules/<原核心版本>/ 與 initramfs,並確認 GRUB 仍可選擇舊核心。不要覆蓋或刪除唯一可用的核心。若新核心無法開機,應能從 GRUB 切回原版;若完全當機,可能需要實體重啟電腦。

                                        修補附件:ubuntu-7.0.0-38-mesfix.patch「此附件僅在 Ubuntu 26.04.1、核心套件 7.0.0-38.38 上驗證;其他核心版本需要確認或移植。」

                                        附件是這次實際使用的核心原始碼修補檔,並非一鍵安裝程式或預先編譯的核心套件。它是針對 Ubuntu linux-source-7.0.0 套件 7.0.0-38.38 移植;該份原始碼的 Makefile 版本為 7.0.14。其他核心版本可能需要重新移植,不能假設能直接套用。

                                        如果想自行compile mesfix patch 參考這個指南: Strata-ROCm-MES-核心修補編譯指南.md

                                        修補來源是 AMD 維護者的 MES workaround backport 分支,包括 MES 通知 API、KFD 與 user queue workaround、計時器微秒單位修正,以及 SR-IOV 的區別處理。另納入 GPU reset 期間跳過 user-queue 通知的保護。為配合 Ubuntu 7.0 原始碼,調整了 queue removal 的對應位置,並補上 amdgpu_reset.h include。這是上游修補的本機移植與整合,並非我原創的排程器修正。

                                        本機採用獨立核心版本 7.0.14-strata-mesfix1,保留原版 7.0.0-38-generic 及其復原選項。這是另外安裝一個核心,不需要重新安裝 Ubuntu。

                                        測試時的設定:

                                        # /etc/modprobe.d/amdgpu.conf
                                        options amdgpu sched_policy=0
                                        
                                        GPU_MAX_HW_QUEUES=8
                                        

                                        前者是開機載入 AMDGPU 驅動時使用的設定;後者是 Strata 引擎程序的環境變數。更改前者後,本機有重新產生 initramfs 並重新開機。進入修補核心後,已以 uname -r 與 /sys/module/amdgpu/parameters/sched_policy 確認核心版本及實際值為 0,並確認 ROCm/HIP 可偵測兩張 GPU。

                                        本機測試環境為 Ubuntu 26.04.1 LTS、雙 Xeon E5-2673 v4、256 GiB RAM、Sapphire Nitro+ 與 XFX MERC 310 RX 7900 XTX 雙卡,模型為 Qwen3.8-Flash-Next GSQ-RCO abliterated IQ3_S,context 上限 262,144 tokens。Strata 使用私有 ROCm/HIP 執行環境。本機此前讀到的 MES 韌體版本為 0x86;這套修補中的通知 API 會檢查韌體是否至少為 0x70。

                                        待機 100% 負載似乎已修復

                                        修補後,以 GPU_MAX_HW_QUEUES=8 載入雙卡模型,在初始載入後、各組提示測試後,以及最後壓力測試後觀察待機負載,沒有再看到持續 100% 使用率的情況。

                                        觀察方法是在 API 狀態為 idle、沒有排隊請求時,每 2 秒取樣一次;大部分觀察區間為 60 秒。本次合計有 9 組 60 秒觀察,另外有一組 10 秒確認;兩張 GPU 在這些待機取樣中都沒有出現 95% 或以上使用率。

                                        最後一輪壓力測試完成後,模型仍保持載入,60 秒待機結果為:

                                        GPU 使用率 功耗中位數
                                        Sapphire Nitro+ RX 7900 XTX 0% 24 W
                                        XFX MERC 310 RX 7900 XTX 0% 21 W

                                        因此,這裡的「似乎修復」是指持續卡在 100% 的症狀未再重現;

                                        GPU_MAX_HW_QUEUES=8 壓力測試結果

                                        一次 150K 提示測試失敗:模型引擎在 prefill 階段停滯,之後由 watchdog 自行終止。重新載入同一 queue=8 配置後,同一引擎程序連續完成了 12 次 150K 以上的長提示請求,全部通過。

                                        • 本輪修補核心測試總計 27 次請求:26 次成功、1 次失敗,包含暖機及 1K/8K/15K/32K 的短提示組。
                                        • 其中 150K 以上長提示共有 15 次:14 次成功、1 次失敗。
                                        • 失敗發生在初次測試的第二次 150K 正式量測。記錄顯示在 prompt chunk 起點 token 25,088、layer 4 處停止進展;watchdog 偵測到 60 秒無進展後,以 SIGABRT 終止引擎,server 回報 exit code -6。
                                        • 之後重新載入模型,先完成 6 次長提示重試(每個長度為 1 次暖機及 2 次量測,組間有待機觀察),再以同一引擎程序完成 6 次交替長提示壓力測試。最後這 6 次請求之間沒有刻意加入等待,也沒有重新載入引擎。

                                        後續 12 次成功結果如下;速度採引擎回報的原生 timings,並非包含 HTTP、tokenization 及 conversation-cache 存放時間的整段牆鐘耗時。

                                        階段 請求 輸入 tokens Prefill tokens/s Decode tokens/s 結果
                                        重新載入後重試/暖機 150K-WARMUP 150,000 4,999.7 85.8 通過
                                        重新載入後重試/量測 150K-FIRST 150,000 4,504.7 96.0 通過
                                        重新載入後重試/量測 150K-SECOND 150,000 4,484.2 99.6 通過
                                        重新載入後重試/暖機 262K-WARMUP 261,632 4,857.1 91.7 通過
                                        重新載入後重試/量測 262K-FIRST 261,632 4,631.9 93.2 通過
                                        重新載入後重試/量測 262K-SECOND 261,632 4,677.6 96.3 通過
                                        交替壓力測試/壓力測試 150K-CYCLE1-STRESS 150,000 4,744.4 95.5 通過
                                        交替壓力測試/壓力測試 262K-CYCLE1-STRESS 261,632 5,083.3 104.0 通過
                                        交替壓力測試/壓力測試 150K-CYCLE2-STRESS 150,000 4,693.3 105.6 通過
                                        交替壓力測試/壓力測試 262K-CYCLE2-STRESS 261,632 5,060.5 101.6 通過
                                        交替壓力測試/壓力測試 150K-CYCLE3-STRESS 150,000 4,899.3 107.6 通過
                                        交替壓力測試/壓力測試 262K-CYCLE3-STRESS 261,632 4,952.4 101.7 通過

                                        每次長提示輸出上限及實際輸出均為 256 tokens,關閉 thinking,使用 temperature=0、top-k=1、top-p=1、min-p=0、seed=42。所有成功長提示的 cache_n=0,沒有重用已處理的輸入 tokens;模型都正確找出放在提示開頭、中間及結尾的三組驗證碼。這是合成檢索壓力測試,不代表所有真實工作負載都已驗證。

                                        最後獨立的 6 次交替壓力測試,合計處理 1,234,896 個輸入 tokens,中位速度如下:

                                        輸入長度 成功次數 Prefill 中位數 Decode 中位數
                                        150,000 tokens 3/3 4,744.4 tokens/s 105.6 tokens/s
                                        261,632 tokens(接近 262K) 3/3 5,060.5 tokens/s 101.7 tokens/s

                                        結論(Conclusion)

                                        **這份核心修補似乎解決了我這組雙 RX 7900 XTX 在 queue=8 下「沒有推論仍持續 100% GPU 負載」的問題。

                                        但我仍然不確定這是否已經是一個長期穩定的解法,因為測試中確實發生過一次 150K watchdog 停滯。後面的重試及壓力測試通過,並不能消除這次失敗,也不足以證明所有工作負載都穩定。

                                        目前我會把它視為有初步實測支持、仍需更長時間驗證的實驗性 workaround。歡迎其他具有相近 GFX11 環境的人,在先備份並保留原版核心的前提下測試與回報;不要把這篇當作所有 AMD ROCm 系統的通用修復保證。ubuntu-7.0.0-38-mesfix.patch

                                        懒人烘培懒 1 条回复 最后回复
                                        0
                                        • Eric SetoE Eric Seto

                                          Strata/AMD ROCm:GPU_MAX_HW_QUEUES=8 待機 GPU 持續 100% 負載的核心修補實測

                                          **背景:雖然將 GPU_MAX_HW_QUEUES 設為 6 解決了我的GPU 持續 100% 負載問題,但在多數已測項目中,prefill(提示處理)與 decode(生成)速度比目前 queue=8 的配置慢。因此我嘗試保留 queue=8,改從核心驅動修補這個問題。

                                          根本原因(Root Cause)

                                          在 AMD ROCm/Ubuntu 環境下執行 Strata 推論引擎(v0.143,搭配社群 #pr1 fork)時,即使處於待機狀態,GPU 使用率仍持續維持在 100%,通常是由一個已知的硬體排程器錯誤所造成,涉及多媒體引擎排程器(Multimedia Engine Scheduler,MES)的韌體。

                                          當 HIP/ROCm streams 透過 MES(mes_v11_0_add_hw_queue)建立多個硬體佇列,或與這些佇列互動時,引擎會觸發 amdgpu_ring_commit 內部的緊密輪詢迴圈。這會使 rocm-smi 與作業系統持續回報 100% GPU 使用率,並讓顯示卡維持在高功耗狀態,即使當下完全沒有進行任何推論工作。

                                          相關討論:ROCm/TheRock issue #9141。該討論涵蓋不同 GPU 世代與軟體;本文只記錄我的 GFX11/gfx1100 雙卡實測,不能推論所有 AMD GPU 的相同症狀都能用這份修補解決。

                                          下文那次長提示停滯的根因,也仍然未確認。

                                          修正方法:Kernel修補(Fix — Kernel Patch)

                                          重要:任何想嘗試這個修補的人,都必須先備份並保留原本可正常開機的核心、對應的 /lib/modules/<原核心版本>/ 與 initramfs,並確認 GRUB 仍可選擇舊核心。不要覆蓋或刪除唯一可用的核心。若新核心無法開機,應能從 GRUB 切回原版;若完全當機,可能需要實體重啟電腦。

                                          修補附件:ubuntu-7.0.0-38-mesfix.patch「此附件僅在 Ubuntu 26.04.1、核心套件 7.0.0-38.38 上驗證;其他核心版本需要確認或移植。」

                                          附件是這次實際使用的核心原始碼修補檔,並非一鍵安裝程式或預先編譯的核心套件。它是針對 Ubuntu linux-source-7.0.0 套件 7.0.0-38.38 移植;該份原始碼的 Makefile 版本為 7.0.14。其他核心版本可能需要重新移植,不能假設能直接套用。

                                          如果想自行compile mesfix patch 參考這個指南: Strata-ROCm-MES-核心修補編譯指南.md

                                          修補來源是 AMD 維護者的 MES workaround backport 分支,包括 MES 通知 API、KFD 與 user queue workaround、計時器微秒單位修正,以及 SR-IOV 的區別處理。另納入 GPU reset 期間跳過 user-queue 通知的保護。為配合 Ubuntu 7.0 原始碼,調整了 queue removal 的對應位置,並補上 amdgpu_reset.h include。這是上游修補的本機移植與整合,並非我原創的排程器修正。

                                          本機採用獨立核心版本 7.0.14-strata-mesfix1,保留原版 7.0.0-38-generic 及其復原選項。這是另外安裝一個核心,不需要重新安裝 Ubuntu。

                                          測試時的設定:

                                          # /etc/modprobe.d/amdgpu.conf
                                          options amdgpu sched_policy=0
                                          
                                          GPU_MAX_HW_QUEUES=8
                                          

                                          前者是開機載入 AMDGPU 驅動時使用的設定;後者是 Strata 引擎程序的環境變數。更改前者後,本機有重新產生 initramfs 並重新開機。進入修補核心後,已以 uname -r 與 /sys/module/amdgpu/parameters/sched_policy 確認核心版本及實際值為 0,並確認 ROCm/HIP 可偵測兩張 GPU。

                                          本機測試環境為 Ubuntu 26.04.1 LTS、雙 Xeon E5-2673 v4、256 GiB RAM、Sapphire Nitro+ 與 XFX MERC 310 RX 7900 XTX 雙卡,模型為 Qwen3.8-Flash-Next GSQ-RCO abliterated IQ3_S,context 上限 262,144 tokens。Strata 使用私有 ROCm/HIP 執行環境。本機此前讀到的 MES 韌體版本為 0x86;這套修補中的通知 API 會檢查韌體是否至少為 0x70。

                                          待機 100% 負載似乎已修復

                                          修補後,以 GPU_MAX_HW_QUEUES=8 載入雙卡模型,在初始載入後、各組提示測試後,以及最後壓力測試後觀察待機負載,沒有再看到持續 100% 使用率的情況。

                                          觀察方法是在 API 狀態為 idle、沒有排隊請求時,每 2 秒取樣一次;大部分觀察區間為 60 秒。本次合計有 9 組 60 秒觀察,另外有一組 10 秒確認;兩張 GPU 在這些待機取樣中都沒有出現 95% 或以上使用率。

                                          最後一輪壓力測試完成後,模型仍保持載入,60 秒待機結果為:

                                          GPU 使用率 功耗中位數
                                          Sapphire Nitro+ RX 7900 XTX 0% 24 W
                                          XFX MERC 310 RX 7900 XTX 0% 21 W

                                          因此,這裡的「似乎修復」是指持續卡在 100% 的症狀未再重現;

                                          GPU_MAX_HW_QUEUES=8 壓力測試結果

                                          一次 150K 提示測試失敗:模型引擎在 prefill 階段停滯,之後由 watchdog 自行終止。重新載入同一 queue=8 配置後,同一引擎程序連續完成了 12 次 150K 以上的長提示請求,全部通過。

                                          • 本輪修補核心測試總計 27 次請求:26 次成功、1 次失敗,包含暖機及 1K/8K/15K/32K 的短提示組。
                                          • 其中 150K 以上長提示共有 15 次:14 次成功、1 次失敗。
                                          • 失敗發生在初次測試的第二次 150K 正式量測。記錄顯示在 prompt chunk 起點 token 25,088、layer 4 處停止進展;watchdog 偵測到 60 秒無進展後,以 SIGABRT 終止引擎,server 回報 exit code -6。
                                          • 之後重新載入模型,先完成 6 次長提示重試(每個長度為 1 次暖機及 2 次量測,組間有待機觀察),再以同一引擎程序完成 6 次交替長提示壓力測試。最後這 6 次請求之間沒有刻意加入等待,也沒有重新載入引擎。

                                          後續 12 次成功結果如下;速度採引擎回報的原生 timings,並非包含 HTTP、tokenization 及 conversation-cache 存放時間的整段牆鐘耗時。

                                          階段 請求 輸入 tokens Prefill tokens/s Decode tokens/s 結果
                                          重新載入後重試/暖機 150K-WARMUP 150,000 4,999.7 85.8 通過
                                          重新載入後重試/量測 150K-FIRST 150,000 4,504.7 96.0 通過
                                          重新載入後重試/量測 150K-SECOND 150,000 4,484.2 99.6 通過
                                          重新載入後重試/暖機 262K-WARMUP 261,632 4,857.1 91.7 通過
                                          重新載入後重試/量測 262K-FIRST 261,632 4,631.9 93.2 通過
                                          重新載入後重試/量測 262K-SECOND 261,632 4,677.6 96.3 通過
                                          交替壓力測試/壓力測試 150K-CYCLE1-STRESS 150,000 4,744.4 95.5 通過
                                          交替壓力測試/壓力測試 262K-CYCLE1-STRESS 261,632 5,083.3 104.0 通過
                                          交替壓力測試/壓力測試 150K-CYCLE2-STRESS 150,000 4,693.3 105.6 通過
                                          交替壓力測試/壓力測試 262K-CYCLE2-STRESS 261,632 5,060.5 101.6 通過
                                          交替壓力測試/壓力測試 150K-CYCLE3-STRESS 150,000 4,899.3 107.6 通過
                                          交替壓力測試/壓力測試 262K-CYCLE3-STRESS 261,632 4,952.4 101.7 通過

                                          每次長提示輸出上限及實際輸出均為 256 tokens,關閉 thinking,使用 temperature=0、top-k=1、top-p=1、min-p=0、seed=42。所有成功長提示的 cache_n=0,沒有重用已處理的輸入 tokens;模型都正確找出放在提示開頭、中間及結尾的三組驗證碼。這是合成檢索壓力測試,不代表所有真實工作負載都已驗證。

                                          最後獨立的 6 次交替壓力測試,合計處理 1,234,896 個輸入 tokens,中位速度如下:

                                          輸入長度 成功次數 Prefill 中位數 Decode 中位數
                                          150,000 tokens 3/3 4,744.4 tokens/s 105.6 tokens/s
                                          261,632 tokens(接近 262K) 3/3 5,060.5 tokens/s 101.7 tokens/s

                                          結論(Conclusion)

                                          **這份核心修補似乎解決了我這組雙 RX 7900 XTX 在 queue=8 下「沒有推論仍持續 100% GPU 負載」的問題。

                                          但我仍然不確定這是否已經是一個長期穩定的解法,因為測試中確實發生過一次 150K watchdog 停滯。後面的重試及壓力測試通過,並不能消除這次失敗,也不足以證明所有工作負載都穩定。

                                          目前我會把它視為有初步實測支持、仍需更長時間驗證的實驗性 workaround。歡迎其他具有相近 GFX11 環境的人,在先備份並保留原版核心的前提下測試與回報;不要把這篇當作所有 AMD ROCm 系統的通用修復保證。ubuntu-7.0.0-38-mesfix.patch

                                          懒人烘培懒
                                          懒人烘培懒
                                          懒人烘培
                                          王侯将相
                                          编写于 最后由 编辑
                                          #23

                                          @Eric-Seto 很详细,我也试试看👍

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

                                          1 条回复 最后回复
                                          0

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

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

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

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


                                          • 登录

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