跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • 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. AI音视频画图
  4. 7900 XTX 单卡 15 秒 OOM 复现与绕过报告,4080 16G能跑 XTX24G OOM!

7900 XTX 单卡 15 秒 OOM 复现与绕过报告,4080 16G能跑 XTX24G OOM!

已定时 已固定 已锁定 已移动 精华 AI音视频画图
7900xtxminimaxcomfyui
9 帖子 5 发布者 247 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题由 双卡7900xtx vs 170hx vs 5090d32gb vs 4090 48gb vs 5080视频生成 分支而来 terry
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • terryT terry

    @xiongjie-gao 还得我弟支撑,我忙完了才有空测试。

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

    @terry
    可复现,三次都OOM了。但不是说XTX有多弱,实属甲沟炎踢到痔疮上了。
    动一个参数就能绕过去。

    7900 XTX 单卡 15 秒 OOM 复现与绕过报告

    测试时间:2026-11-08 测试机器:本机 2× RX 7900 XTX 24 GB(gfx1100)
    参考帖:https://lcz.me/topic/2867 《六张卡跑同一个 MiniMax-H3 视频工作流,差多少?》
    说明:全部为单卡实测,未使用 TP2。


    一、结论摘要

    待验证的说法 判定 依据
    7900 XTX 单卡 15 秒 OOM,5080 16 GB 能跑 属实 本机 3 次配置复现,均在约 105 s 失败
    原因是「AMD ROCm 缺 comfy-aimdo 动态卸载」 不成立 comfy-aimdo 0.6.0 在 7900 XTX 上成功初始化(有 ROCm 原生 .so)
    24 GB 是「必须同时装下权重+激活」的硬门槛 不成立 OOM 时 PyTorch 侧仅占用 0.18–3.25 GiB,崩溃点在音频 VAE 编码
    expandable_segments 无效 属实 碎片不是主因(与原帖一致)
    可通过配置/单点代码修改绕过 成立 分段编码补丁已使流程越过 OOM 点

    一句话结论:这不是显存容量墙,而是「音频 VAE 一次性编码峰值」叠加「显存被权重铺满至 0 余量、且不为普通张量分配让路」的实现缺陷。


    二、测试条件

    项目 设置
    模型 minimax_h3_ref2va_pruned_int8_convrot(20.97 GB)
    文本编码器 qwen3vl_32b_minimax_h3_int8_convrot(原帖为 nvfp4_awq,本机无该文件)
    视频 VAE minimax_h3_video_vae_int8_convrot
    音频 VAE minimax_h3_audio_vae_fp32
    分辨率 1344×768(ResolutionSelector 1.0 MP,16:9,multiple 32)
    步数 / 采样器 8 步(BasicScheduler beta)
    显存策略 按原帖 --lowvram;另做对照
    时长 15 秒(H3LVUnified.max_seconds=15 / target_seconds=15)
    服务 端口 8199,HIP_VISIBLE_DEVICES=0,ComfyUI /mnt/ai/ComfyUI-AMD/ComfyUI
    显存采样 直接读 /sys/class/drm/card*/device/mem_info_vram_used,100 ms 一次

    工作流取自本机实际执行过的 API 快照(queue_snapshot.json),节点与参数与原帖一致。


    三、复现数据

    # 启动参数 结果 用时 显存峰值 失败位置
    1 --lowvram(动态 VRAM 默认开启) OOM 107.64 s 22.49 GiB 音频 VAE 编码
    2 --lowvram --reserve-vram 6 OOM 105.27 s 23.97 GiB 音频 VAE 编码
    3 --lowvram --disable-dynamic-vram OOM 105.14 s 23.86 GiB 音频 VAE 编码
    4 动态 VRAM 开 + 文本编码器置 CPU OOM — — 音频 VAE 编码(请求 10.76 GiB)
    5 分段编码补丁(见第五节) 不再中断 超时 240 s 仍在跑 23.98 GiB 越过了原失败点

    典型报错(第 2 次):

    torch.OutOfMemoryError: CUDA out of memory. Tried to allocate 3.07 GiB.
    GPU 0 has a total capacity of 23.98 GiB of which 38.00 MiB is free.
    Of the allocated memory 180.74 MiB is allocated by PyTorch
    Warning: Ran out of memory when regular VAE encoding, retrying with tiled VAE encoding.
    [ERROR] Exception during processing !!! ... Tried to allocate 490.00 MiB ... 64.00 MiB free
    

    四、根因分析

    4.1 OOM 不在视频 UNET 采样,而在音频 VAE 编码

    调用栈固定为:

    comfy_extras/nodes_lt_audio.py:57   execute
    comfy_extras/nodes_audio.py:93      t = vae.encode(waveform.movedim(1, -1))
    comfy/sd.py:1473                    self.first_stage_model.encode(...)
    comfy/ldm/minimax/audio_vae.py:438  x = self.pre_block(x.transpose(1, 2)).transpose(1, 2)
    

    即参考音频(音色参考)的 fp32 编码器里一个 conv1d 要一次性申请 3.07–10.76 GiB 连续显存。它与 20 GB 视频 UNET 是否放得下无关。

    4.2 三次尝试中,显存余量在编码前就已经是 0

    配置 失败瞬间 PyTorch 记账 卡内其它占用 可用余量
    --lowvram 3.25 GiB ≈19.2 GiB(aimdo staged 权重) 0 B
    --reserve-vram 6 0.18 GiB ≈23.8 GiB 38 MiB
    --disable-dynamic-vram 少量 ≈23.8 GiB 158 MiB

    --reserve-vram 在 comfy-aimdo 0.6.0 的 ROCm 后端没有生效:保留量没有变成可用余量,峰值反而更高。这解释了为什么分段后连 274 MiB 的请求仍会失败。

    4.3 为什么 5080(16 GB)反而能跑

    • 5080 的原帖数据显示峰值恒定 15.2 GB,即被稳定压在预算内(NVIDIA 侧 aimdo/CUDA 的 evict 正常,分配压力能触发权重回收);

    • 7900 XTX 峰值是 17.7 GB(5 s)→ 23.2 GB(10 s)→ 15 s 溢出,随音频时长上涨,说明 AMD 侧权重只进不出,编码器再要一块就必然失败。

    4.4 原帖还有一处不可比因素

    原帖文本编码器用的是 qwen3vl_32b_minimax_h3_nvfp4_awq。nvfp4 是 NVIDIA Blackwell 的 FP4 格式,ROCm 没有对应 kernel,在 AMD 上只能反量化运行,会同时放大显存占用和时间。因此「490 s vs 124 s」里混入了格式不兼容的开销,不能直接当作 A/N 硬件差距。


    五、绕过方案与验证

    5.1 已实施:音频分段编码(nodes_audio.py)

    改动文件:[comfy_extras/nodes_audio.py](file:///mnt/ai/ComfyUI-AMD/ComfyUI/comfy_extras/nodes_audio.py)

    • 新增 _encode_audio_chunked()(第 67–107 行),把第 93 行的单次 vae.encode 改为调用它;

    • 按 H3_AUDIO_ENCODE_CHUNK(默认 5 秒)切段,并对齐到 hop_length=800,保证每段 latent 完整;

    • 逐段编码后 torch.cat(outs, dim=-1) 沿时间维拼接(latent 形状 [B, 32, 2, T]);

    • 某段在 GPU 仍 OOM 时,把音频 VAE 临时移 CPU 跑完再放回,日志打印 audio VAE encode OOM at Xs, finishing on CPU;

    • H3_AUDIO_ENCODE_CHUNK=0 可完全关闭本补丁。

    结果:原第 105 秒必崩的路径被越过,流程继续执行;首段仍有一次 274 MiB 的 OOM,随后由 CPU 兜底接管。

    5.2 已验证无效(不必再试)

    手段 结果
    PYTORCH_HIP_ALLOC_CONF=expandable_segments:True 无效,碎片非主因
    --reserve-vram 6 无效,峰值反升
    --disable-dynamic-vram(旧路径) 无效,同样崩在音频编码
    文本编码器置 CPU 减小不了音频编码峰值(请求涨到 10.76 GiB)
    TP2 双卡 已按要求排除;且实测 5 s 仅 1.79× 加速,性价比低

    5.3 待验证(按成功率排序)

    1. --novram + 分段编码:强制最小显存常驻,把余量腾出来,可能让 15 秒全程跑在 GPU 上;
    2. 给 aimdo 的 ROCm 后端补 reserve 水位:让 staging 上限 = 总显存 − 预留,从根上解决「铺满到 0」;
    3. 喂 ≤8–10 秒参考音频,15 秒用两段串接(尾帧接首帧)生成,这是生产口径下最省事的做法;
    4. 换用本机已有的 qwen3vl_32b_minimax_h3-w4a8_convrot 文本编码器,压低常驻占用。

    六、对原帖数据的复核意见

    原帖结论 复核
    5 s / 10 s 峰值 17.7 / 23.2 GB 与本次观测的「随时长上涨」一致,可信
    15 s 单卡 OOM 已复现,属实
    16 GB 能跑 / 24 GB 不能跑是「动态换页」差异 方向对,但机制描述不准:N 卡被压在预算内,A 卡是权重铺满+不回收
    AMD 缺 comfy-aimdo 事实错误,0.6.0 有 aimdo_rocm.so 并能初始化
    24 GB 是硬门槛 不成立,属实现缺陷,可绕过
    TP2「通信开销大」 5 s 加速 1.79×,能耗代价仅 +3%,问题在单卡基线慢 5.57×

    七、附件与复现方式

    文件 说明
    /tmp/h3bench/bench.py 无头跑批脚本:起服务、提交真实 prompt、100 ms 采样显存
    /tmp/h3bench/results/server_*.log 各配置完整服务日志
    /tmp/h3bench/results/summary_*.json 状态、耗时、显存峰值、OOM 摘要
    /tmp/h3bench/results/vram_*.csv 显存时间序列

    复现命令示例(单卡、原帖口径):

    /home/jay/ComfyUI-AMD/venv/bin/python /tmp/h3bench/bench.py \
      --tag post_15s --seconds 15 --dynamic on \
      --server-args=--lowvram --steps 8 --megapixels 1.0 --timeout 1800
    

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

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

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

      奖励凭证:精华 +6 分 · 编号 f2920-3256-1

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

      1 条回复 最后回复
      0
      • terryT
        terryT
        terry
        易有太极
        编写于 最后由 terry 编辑
        #3

        这个,AMD没办法像Nvidia那样流式进出?驱动问题?就是单卡能跑到理想水准吗?

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

        xiongjie gaoX 1 条回复 最后回复
        0
        • terryT terry

          这个,AMD没办法像Nvidia那样流式进出?驱动问题?就是单卡能跑到理想水准吗?

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

          @terry 是驱动有残疾。N卡把缺页迁移的能力写到的驱动层面,这个是Rocm没想到的。
          所以,Aimdo可以在Rocm里加载,但没起到显存警戒线的作用。一次性音频编码的峰值最后点火把这个问题引爆。
          所以,怎么形容好呢?阿喀琉斯之踵?

          image.jpeg

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

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

            @terry 是驱动有残疾。N卡把缺页迁移的能力写到的驱动层面,这个是Rocm没想到的。
            所以,Aimdo可以在Rocm里加载,但没起到显存警戒线的作用。一次性音频编码的峰值最后点火把这个问题引爆。
            所以,怎么形容好呢?阿喀琉斯之踵?

            image.jpeg

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

            @xiongjie-gao 好吧,这个问题就让我来解决吧,我来重写!😂
            再这一方面AMD真特么是脑残,Intel更是。老黄吃肉是有道理的。

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

            1 条回复 最后回复
            0
            • 天知道天
              天知道天
              天知道
              编写于 最后由 编辑
              #6

              没跑过15秒,我跑过OOM的情况是10秒的动作迁移,因为要参考一个10秒的视频,频繁的OOM,最后用KJ的low vram attention和chunk feedforward节点分块解决的。如果硬要跑15秒,可以试试这两个节点。
              当然如果能从根本上解决这个问题就是大家福音了,期待有好消息。

              terryT 1 条回复 最后回复
              1
              • 天知道天 天知道

                没跑过15秒,我跑过OOM的情况是10秒的动作迁移,因为要参考一个10秒的视频,频繁的OOM,最后用KJ的low vram attention和chunk feedforward节点分块解决的。如果硬要跑15秒,可以试试这两个节点。
                当然如果能从根本上解决这个问题就是大家福音了,期待有好消息。

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

                @懒人烘培 消失了?这个你去验证了😂
                @天知道 你有空可以测试下发个帖子,其实只要是软件问题都有解。

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

                懒人烘培懒 1 条回复 最后回复
                0
                • ,天知道天 天知道 引用了 此主题
                • terryT terry

                  @懒人烘培 消失了?这个你去验证了😂
                  @天知道 你有空可以测试下发个帖子,其实只要是软件问题都有解。

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

                  @terry 说:

                  这个你去验证了

                  周末忙乎家里事情,我测试看看

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

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

                    @terry 说:

                    这个你去验证了

                    周末忙乎家里事情,我测试看看

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

                    @懒人烘培 搓出来苏妈给你发OFFER😊

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

                    1 条回复 最后回复
                    0

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

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

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

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


                    • 登录

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