mirror of
https://github.com/Comfy-Org/comfy-aimdo.git
synced 2026-11-04 23:37:21 +00:00
[GH-ISSUE #124] [ROCm/Linux][gfx1200 RDNA4] DynamicVRAM hangs forever inside lib.vbar_fault() when materializing int8_convrot text-encoder weights (one core at 100%, VRAM never grows) #48
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/comfy-aimdo#48
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ChenFeng-ai on GitHub (Oct 15, 2026).
Original GitHub issue: https://github.com/Comfy-Org/comfy-aimdo/issues/124
Summary
With DynamicVRAM enabled (the default on ROCm >= 7.14), the first forward pass of a quantized text encoder hangs forever inside the native
vbar_fault()call. One CPU core spins at 100%, VRAM never grows, and no further log output is produced. The process stays alive indefinitely (observed 8+ minutes, then killed).--disable-dynamic-vramavoids it entirely.Environment
Steps to reproduce
qwen-image-2.1-UC-fp8.safetensors(6.6 GB, per-layerfloat8_e4m3fn)qwen3vl_8b_int8_convrot.safetensors(8.9 GB,{"format":"int8_tensorwise","convrot":true,"convrot_groupsize":256})qwen_image_2.1_vae_bf16.safetensorsObserved
The log stops here and never advances:
Measured over the following 8 minutes (15 s samples):
/sys/class/drm/card0/device/mem_info_vram_usedfrozen at ~2.0 GiBgpu_busy_percent12-14% (desktop compositor only), i.e. no GPU work happening/proc/<pid>/io:read_bytes0, no repeated model readsVmRSS1.5 GB, no RAM thrashing,/dev/shmempty--debug-hang+ SIGINT dumps:model_vbar.py:88is:There are no Python frames below it — the thread is blocked inside the compiled
aimdo.so. Note it does not returnVBAR_FAULT_OOM (1)or raiseFault failed: 2; the call simply never returns.Ruled out
AMD Radeon Graphics, gfx11). Hiding it withHIP_VISIBLE_DEVICES=0 ROCR_VISIBLE_DEVICES=0(only oneaimdo ... inited for GPUline, onlycuda:0present) still reproduces identically.torch.ops.comfy_kitchen.dequantize_int8_convrot_weight_dtypedirectly on this machine measures 15,561 M params/s on GPU and 262 M params/s on CPU, so materializing the whole ~4.5 G-parameter encoder should take <20 s even on CPU. The hang is not slow dequant.Workaround that works
With those two flags the identical workflow completes successfully: 25 sampling steps at 1.25 s/it, 140 s end-to-end, peak VRAM 9.9 GB, correct output image.
--lowvramis additionally needed because with DynamicVRAM disabled the 8.9 GB text encoder and 6.8 GB DiT are both resident and VAE decode then OOMs on a 16 GB card.Related issues
kfd_wait_on_events), and we are already on 0.5.6Questions
vbar_fault()block instead of returningVBAR_FAULT_SUCCESS / OOM / ERROR? Even a timeout that degrades toVBAR_FAULT_ERRORwould turn this permanent hang into a recoverable error.--disable-dynamic-vramis documented as temporary ("this argument will be removed soon"), what is the recommended path for RDNA4 + ROCm 7.14 users who hit this?Happy to run any instrumented build,
strace/perfcapture, or provide more logs.