Repository navigation
[DO NOT MERGE][debug] Diffusion CI perf: controlled A/B experiments on CI H100 - #42546
Closed
niehen6174 wants to merge 9 commits into
Closed
niehen6174 wants to merge 9 commits into
niehen6174 wants to merge 9 commits into
Conversation
…offload slow mode on CI H100
niehen6174
requested review from
Fridge003,
HaiShaw,
Kangyan-Zhou,
bingxche,
ispobock and
merrymercy
as code owners
October 5, 2026 05:07
Collaborator
Author
|
Debug run finished (run 37266351867); artifacts downloaded. Closing. |
… binding, resident) with a host sampler
Collaborator
Author
|
Round 2 cancelled while still queued behind a large batch of re-runs; closing for now. Round 1 results are summarized in the description. |
…orch 2.14, LTX baselines and ltx_2_5 input size
# Conflicts: # .github/workflows/pr-test-multimodal-gen.yml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Do not merge or review. Temporary debug PR; I will close it as soon as the run finishes.
Why
Two diffusion perf guards on H100 CI behave in ways we cannot explain from logs alone, and we have no Hopper machine outside CI.
qwen_image_t2i_cache_dit_enabled, steps 10/49. Since [Diffusion] Optimize Qwen-Image-Edit attention on Hopper #38584 (fused QK-norm/RoPE epilogue on Hopper), the first cached step after each full step measures ~64 ms instead of ~56 ms, while full steps dropped from ~188 to ~175 ms and total denoise time did not get worse. Step times are host wall times with no device sync (unlessSGLANG_DIFFUSION_SYNC_STAGE_PROFILING=1), and the cache-dit residual check is the first blocking point after a full step. Hypothesis: the "slow" cached step is the previous full step's queued GPU work, and the fused epilogue only made the host enqueue faster.ltx_2_5_diffusion_decoder_2gpus. With the DiT oncomponent-offload, each server launch randomly runs denoise 1.4-1.9x slower. Clocks, load-time memory and logs are identical between fast and slow launches.What this PR does
It changes only
.github/workflows/pr-test-multimodal-gen.yml, so only NVIDIA diffusion CI runs. All diffusion jobs are disabled except two debug jobs. Each job applies a small env-gated instrumentation patch (below) to its own checkout, then launches one case repeatedly with plain pytest (no harness retries):SGLANG_ENABLE_FUSED_QKNORM_ROPE) x synchronized step timing on/off, 3 interleaved launches each, plus onetorch.profilerlaunch per fused setting covering steps 8-12.num_alloc_retries,num_device_alloc/free). A backgroundnvidia-smi dmonrecords clocks, power, PCIe and utilization. Everything is uploaded asqwen-debug-*/ltx25-debug-*artifacts.Expected footprint: one
1-gpu-h100runner for ~45 min and two2-gpu-h100runners for ~75 min.Instrumentation patch (applied in the job checkout only)
Round 3: controlled A/B experiments
Rounds 1–2 left several conclusions resting on correlations in CI history. This round tests each one by changing a single factor on a single runner, interleaved and repeated. It only measures and changes no thresholds. A small env-gated patch to
perf_logger.pyrecords per-rank step wall time, thread CPU time, the CPU core and involuntary context switches, and optionally profiles named stages or steps. A host sampler andnvidia-smi dmonrun throughout.1-gpu-h100longlive2_i2v, and is that real time or only time moved between stages?--disable-conditioning-cache, each with unsynced (CI) and synced stage timing, ×3 interleaved, plus one stage profile of VAE encoding and decoding per arm. (2) Parent of #40470 vs #40470, A-B-A, reinstalling at each commit.1-gpu-h1009631f6f(torch 2.13) vs0bdd0cc(#38641) A-B-A;wan2_2_ti2v_5bandfastwan2_2_ti2v_5b, synced and unsynced, plus a decoding-stage profile per block.2-gpu-h100ltx_2_two_stage_t2vandltx_2_3_two_stage_ti2v_2gpus×2 per block, plus a steps 3–4 profile per block.2-gpu-h1001456eb6(#28123, which set these baselines on 06-14) vs current main, A-B-A, ×2 per case per block.2-gpu-h100ltx_2_5denoise stop being host-bound, and does it still fit with component-offload?Expected footprint: two
1-gpu-h100runners for about 1 h, and three2-gpu-h100runners for about 1–1.5 h. Artifacts are uploaded asdbg3-<exp>.🤖 Generated with Claude Code
CI States
Latest PR Test (Base): ✅ Run #37482923115
Latest PR Test (Extra): ❌ Run #37482922394
Latest PR Test (AMD ROCm 10): ➖ No AMD PR run found for this commit.