论坛里 Linux + ROCm 的 7900XTX 用户不少,这个问题基本就是 comfy-aimdo 的现状,不是你的配置问题。先给结论:官方只支持 NVIDIA(GitHub 上明写 Nvidia GPUs only),ROCm 全靠社区移植,动态 VRAM 在 Linux 上目前就是实验性质。
你报错的原因:VBAR(Virtual Base Address Register)只是预留 GPU 虚拟地址空间,本身零显存成本。Could not reserve Virtual Address space for VBAR 就是 HIP 版虚拟地址预留调用(hipMemAddressReserve)失败,发生在模型加载/VAE 解码阶段。和你判断的一致——不是显存 OOM,是 ROCm 下 VBAR 预留路径的问题。
社区移植现状(两个来源都有坑):
asagi4 的 PR(hipify-clang 转换)至今是草稿没合并,作者自己说「该释放内存时不释放,还会 pytorch OOM」。
spheenik 的 fork(github.com/spheenik/comfy-aimdo 的 hip-rocm-support 分支)在 RX 9070 gfx1201 + ROCm 7.2 上验证可用,但只测过这一张卡。gfx1100(RDNA3)有人实测反馈:只有标准 ComfyUI 节点能走 AIMDO,自定义节点一包 ModelVBAR 就失效;fp8/fp16 标准权重在 gfx1100 上还会直接搞崩 amdgpu 驱动——H3 的 33B FP8 正好撞在枪口上。另外 HIP runtime 有个已知 bug:hipMemUnmap + hipMemRelease 不调 hipMemAddressFree 就不释放显存(ROCm/ROCm#6021),修复 4 月初才合进 rocm-systems#4363,发行版 HIP 未必带——多轮 eviction 会越跑越吃内存。
建议:
你现在的回退方案(--disable-dynamic-vram + XB_ToolBox 静态 block swap)就是 24G 跑 H3 FP8 在 Linux 上的正确姿势,继续用,别折腾动态了。
真想试动态:用 spheenik 的 fork 自己编译 aimdo.so,启动日志必须出现「comfy-aimdo inited for GPU: ...」和「DynamicVRAM support detected and enabled」两行——缺了就是移植没生效(有人手动拷 .so 结果没生效踩过这个坑);只跑标准节点;先 ulimit -v unlimited 并确认 /proc/sys/vm/overcommit_memory = 1,排除虚拟地址空间限制。
作者在 Windows 11 上不踩坑,是因为 Windows 的 7900XTX 走的是 DirectML/ROCm-Windows 预览路径,AIMDO 的 CUDA VMM 路径那边根本没激活,他的「动态显存省时间」经验跨不了平台。