Skip to content

[https://nvbugs/6272644][fix] Stabilize and unwaive multi-GPU VisualGen LPIPS tests#15730

Open
chang-l wants to merge 1 commit into
NVIDIA:mainfrom
chang-l:dev-visgen-multigpu-lpips
Open

[https://nvbugs/6272644][fix] Stabilize and unwaive multi-GPU VisualGen LPIPS tests#15730
chang-l wants to merge 1 commit into
NVIDIA:mainfrom
chang-l:dev-visgen-multigpu-lpips

Conversation

@chang-l

@chang-l chang-l commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • compare every Wan 2.2 multi-GPU LPIPS variant against a dedicated single-GPU FA4 fully-eager reference
  • disable compile drift with TorchCompileConfig(enable=False) and a scoped torch.compiler.set_stance("force_eager")
  • add deterministic golden provenance and update the Git LFS media archive
  • remove the remaining multi-GPU LPIPS waivers while keeping the existing 0.25 threshold
  • move the two eight-worker variants to B200 8-GPU pre-merge coverage
  • rebased over the 26.02 → 26.04 container bump (including [https://nvbugs/6401921][fix] Stabilize single-GPU Wan2.2/LTX2/Wan2.1 LPIPS test #15854's refreshed single-GPU goldens); the FA4 fully-eager reference is regenerated under the 26.04 stack

Motivation

PR #15564 enabled single-GPU VisualGen LPIPS protection. The multi-GPU Wan tests remained waived because their reference execution policy was not encoded independently from compile behavior, so compile drift could obscure the accuracy delta introduced by the parallel strategy itself.

This change makes the comparison single-delta: the reference and distributed candidates use the same FA4 backend and fully-eager policy. The remaining LPIPS difference therefore measures the selected parallel decomposition rather than a backend or compilation change.

Related NVBugs:

Implementation

  • add a scoped LPIPS execution context that enables deterministic algorithms and fully-eager execution, then restores the prior compiler, deterministic, warn-only, and CUBLAS_WORKSPACE_CONFIG state
  • add a dedicated one-GPU FA4 fully-eager Wan 2.2 golden
  • record the container digest and framework versions in the golden sidecar
  • share the VisualGen dependency fixture between the single- and multi-GPU test modules
  • pin diffusers==0.38.0 in requirements-dev.txt so the test environment matches the version the goldens were recorded with (the current nightly release image already ships 0.39.0)
  • strictly validate the spawn-worker tensorrt_llm site directory (must contain the installed package with compiled bindings) both before spawning and inside each worker
  • unwaive all eight multi-GPU/TP LPIPS variants
  • map the two eight-worker LPIPS cases to the existing B200 8-GPU PyTorch pre-merge stages

B200 validation

Re-validated after the rebase, on an 8×B200 node, against the FA4 fully-eager reference regenerated in the current staging main-x86_64 release image:

Variant LPIPS
ulysses4 0.000000
cfg2_ulysses2 0.000000
attn2d_2x2 0.215164
cfg2_ulysses2_attn2d_2x1 0.000000
attn2d_2x2_ulysses2 0.215164
tp2 0.198201
cfg2_tp2 0.198201
tp2_ulysses2 0.198201

All eight results are below the unchanged 0.25 threshold. Two independent reference generations produced bit-identical MP4s (matching SHA-256), and no Dynamo compile counters were populated. The single-GPU test_wan22_t2v_lpips_against_golden passes in the same environment (LPIPS 0.040069 < 0.05 against main's golden). The old (26.02-era) and new (26.04) FA4 references differ by LPIPS 0.0397 — the expected container-drift magnitude that motivated the regeneration.

The two eight-worker cases completed in 98.0 and 96.6 seconds, including distributed generation, MP4 encoding, and LPIPS evaluation.

Validation used the staging main-x86_64 release image pinned to digest sha256:0783d275ffe7efc3b6093dd6c7e823cd703eae973e462c8e1e4f7ca7dad60d64 (26.04 stack, TensorRT-LLM 1.3.0rc21 built from main a0c406ff88), with diffusers==0.38.0 installed per the requirements-dev pin.

Checks

  • all eight distributed LPIPS case flows on 8×B200, plus the single-GPU wan22 case
  • pytest collection: eight test nodes
  • Ruff lint and formatting
  • pre-commit, including waiver duplication and test-list AST validation
  • golden ZIP integrity and Git LFS pointer validation
  • git diff --check

@chang-l chang-l marked this pull request as ready for review June 29, 2026 21:51
@chang-l

chang-l commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@chang-l chang-l requested review from NVShreyas, yibinl-nvidia and zhenhuaw-me and removed request for yibinl-nvidia June 29, 2026 21:51
@chang-l

chang-l commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #56472 [ run ] triggered by Bot. Commit: db18159 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #56472 [ run ] completed with state SUCCESS. Commit: db18159
/LLM/main/L0_MergeRequest_PR pipeline #45313 completed with status: 'SUCCESS'
Pipeline passed with automatic retried tests. Check the rerun report for details.

CI Report

Link to invocation

@chang-l chang-l requested review from a team as code owners June 29, 2026 23:53
@chang-l chang-l requested review from niukuo and yuanjingx87 June 29, 2026 23:53
@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds FA4 attention backend and fully_eager torch compile mode to multi-GPU Wan 2.2 LPIPS evaluation. Dependency setup is extracted from test_visual_gen.py into a shared conftest.py fixture. A new FA4 fully-eager golden reference JSON is added, existing golden JSON gains two new fields, stale waivers are removed, and four new DGX B200 SLURM post-merge CI stages are registered.

Changes

VisualGen FA4 fully-eager LPIPS evaluation

Layer / File(s) Summary
Shared dependency fixture via conftest
tests/integration/defs/examples/visual_gen/conftest.py, tests/integration/defs/examples/visual_gen/test_visual_gen.py, tests/integration/defs/examples/visual_gen/test_visual_gen_multi_gpu.py
Moves av/diffusers/ffmpeg installation into a new session-scoped _visual_gen_deps conftest fixture; removes the inline install block from test_visual_gen.py; multi-GPU test functions add _visual_gen_deps as a parameter.
fully_eager mode in deterministic context and pipeline wiring
tests/integration/defs/examples/visual_gen/test_visual_gen.py
_lpips_deterministic_algorithms gains fully_eager kwarg that sets torch compiler stance to force_eager and saves/restores prior settings; _run_wan_lpips_pipeline and _generate_wan_lpips_video are extended to accept and forward fully_eager and attention_backend.
Multi-GPU FA4 wiring, new golden reference, waiver removal
tests/integration/defs/examples/visual_gen/test_visual_gen_multi_gpu.py, tests/integration/defs/examples/visual_gen/golden/visual_gen_lpips/*, tests/integration/test_lists/waives.txt
Adds WAN22_MULTI_GPU_LPIPS_ATTENTION_BACKEND = "FA4" and new golden video constant; distributed pipeline call uses FA4 and fully_eager=True; new wan22_t2v_fa4_fully_eager_lpips_golden_video.json added; existing golden JSON updated with attention_backend and torch_compile_stance; stale waivers removed.

DGX B200 SLURM CI stage registration

Layer / File(s) Summary
Four new B200 post-merge SLURM stages
jenkins/L0_Test.groovy
Registers DGX_B200-8_GPUs-PyTorch-Post-Merge-{1..4} in x86SlurmTestConfigs with auto:dgx-b200-flex platform, l0_dgx_b200 test list, split count 4, 8 GPUs, nodeCount=1, runWithSbatch=true.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • NVIDIA/TensorRT-LLM#15670: Modifies the same x86SlurmTestConfigs block in jenkins/L0_Test.groovy for DGX B200 PyTorch post-merge shard configuration.

Suggested reviewers

  • niukuo
  • dpitman-nvda
  • yibinl-nvidia
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately reflects the main change: stabilizing and unwaiving multi-GPU VisualGen LPIPS tests.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The PR description is detailed and covers summary, motivation, implementation, validation, and checks, even though it doesn't use the template headings exactly.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tests/integration/defs/examples/visual_gen/conftest.py`:
- Line 26: The test setup currently installs diffusers with a lower-bound
version spec, which can let future resolver changes drift from the recorded
golden. Update the installation in conftest.py to pin diffusers to the exact
version used by the golden sidecar (the recorded 0.38.0) so the LPIPS reference
stays stable; make the change in the llm_venv.run_cmd setup where the dependency
is installed.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 31d6d799-daef-4a99-a152-3b9521d36f4c

📥 Commits

Reviewing files that changed from the base of the PR and between 863bc4e and 0e2928d.

⛔ Files ignored due to path filters (1)
  • tests/integration/defs/examples/visual_gen/golden/visual_gen_lpips/visual_gen_lpips_golden_media.zip is excluded by !**/*.zip
📒 Files selected for processing (7)
  • jenkins/L0_Test.groovy
  • tests/integration/defs/examples/visual_gen/conftest.py
  • tests/integration/defs/examples/visual_gen/golden/visual_gen_lpips/wan22_t2v_fa4_fully_eager_lpips_golden_video.json
  • tests/integration/defs/examples/visual_gen/golden/visual_gen_lpips/wan22_t2v_lpips_golden_video.json
  • tests/integration/defs/examples/visual_gen/test_visual_gen.py
  • tests/integration/defs/examples/visual_gen/test_visual_gen_multi_gpu.py
  • tests/integration/test_lists/waives.txt
💤 Files with no reviewable changes (1)
  • tests/integration/test_lists/waives.txt

Comment thread tests/integration/defs/examples/visual_gen/conftest.py Outdated
@chang-l chang-l force-pushed the dev-visgen-multigpu-lpips branch from fe689ab to db18159 Compare June 30, 2026 00:07
@chang-l

chang-l commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

2 similar comments
@chang-l

chang-l commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@chang-l

chang-l commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #56532 [ run ] triggered by Bot. Commit: 56ae041 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #56532 [ run ] completed with state SUCCESS. Commit: 56ae041
/LLM/main/L0_MergeRequest_PR pipeline #45369 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@chang-l

chang-l commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #56639 [ run ] triggered by Bot. Commit: 166bafc Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #56639 [ run ] completed with state SUCCESS. Commit: 166bafc
/LLM/main/L0_MergeRequest_PR pipeline #45464 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@chang-l

chang-l commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #56692 [ run ] triggered by Bot. Commit: 7b0f8ce Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #56692 [ run ] completed with state FAILURE. Commit: 7b0f8ce
/LLM/main/L0_MergeRequest_PR pipeline #45515 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@chang-l

chang-l commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58315 [ run ] triggered by Bot. Commit: 5518466 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58315 [ run ] completed with state FAILURE. Commit: 5518466

Link to invocation

@chang-l

chang-l commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --extra-stage "DGX_B200-4_GPUs-PyTorch-Post-Merge-1, DGX_B200-4_GPUs-PyTorch-Post-Merge-2, DGX_B200-4_GPUs-PyTorch-Post-Merge-3, DGX_B200-4_GPUs-PyTorch-Post-Merge-4, DGX_B200-PyTorch-Post-Merge-1, DGX_B200-PyTorch-Post-Merge-2"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58321 [ run ] triggered by Bot. Commit: 5518466 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58321 [ run ] completed with state FAILURE. Commit: 5518466

Link to invocation

@chang-l chang-l force-pushed the dev-visgen-multigpu-lpips branch from 5518466 to 3c570f1 Compare July 8, 2026 23:32
@chang-l

chang-l commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator Author

Note for reviewers: squashed the branch to a single commit (tree is byte-identical to the previous head 5518466, verified with an empty diff). Reason: the branch history carried three obsolete revisions of the LFS golden zip that exist only in fork LFS storage; the CI GitHubSync mirror push cannot stage them (GitLab: LFS objects are missing, pre-receive declined — runs #58315/#58321 both died there before any test). With the squash, the only LFS object in the PR history is the current golden, which CI fetches at checkout. Previous head is preserved at 5518466481f37af2ce7650f171ddca2516830232 if anyone needs the old history.

@chang-l

chang-l commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --extra-stage "DGX_B200-4_GPUs-PyTorch-Post-Merge-1, DGX_B200-4_GPUs-PyTorch-Post-Merge-2, DGX_B200-4_GPUs-PyTorch-Post-Merge-3, DGX_B200-4_GPUs-PyTorch-Post-Merge-4, DGX_B200-PyTorch-Post-Merge-1, DGX_B200-PyTorch-Post-Merge-2"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58324 [ run ] triggered by Bot. Commit: 3c570f1 Link to invocation

Comment on lines 100 to 107

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is required? I don't get it why we need to "hack the path" for multi-gpu tests, does LLM test do the same?

@chang-l chang-l force-pushed the dev-visgen-multigpu-lpips branch from 3c570f1 to 8c2f5d9 Compare July 9, 2026 07:36
@chang-l

chang-l commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58416 [ run ] triggered by Bot. Commit: 8c2f5d9 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58324 [ run ] completed with state ABORTED. Commit: 3c570f1
/LLM/main/L0_MergeRequest_PR pipeline #46954 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58416 [ run ] completed with state FAILURE. Commit: 8c2f5d9
/LLM/main/L0_MergeRequest_PR pipeline #47036 completed with status: 'ABORTED'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

Link to invocation

@chang-l

chang-l commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58423 [ run ] triggered by Bot. Commit: 8c2f5d9 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58423 [ run ] completed with state SUCCESS. Commit: 8c2f5d9
/LLM/main/L0_MergeRequest_PR pipeline #47040 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@chang-l

chang-l commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58532 [ run ] triggered by Bot. Commit: a9774ce Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58532 [ run ] completed with state SUCCESS. Commit: a9774ce
/LLM/main/L0_MergeRequest_PR pipeline #47135 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@chang-l

chang-l commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58600 [ run ] triggered by Bot. Commit: a9774ce Link to invocation

…en LPIPS tests

Compare every Wan 2.2 multi-GPU LPIPS variant against a dedicated
single-GPU FA4 fully-eager reference so the comparison isolates the
parallel decomposition: disable compile via TorchCompileConfig and a
scoped torch.compiler.set_stance("force_eager"), enable deterministic
algorithms, and restore all prior state afterwards.

- add the one-GPU FA4 fully-eager Wan 2.2 golden, regenerated under the
  26.04 staging release image (bit-identical double generation; sidecar
  records image digest, versions, and source commit)
- pin diffusers==0.38.0 in requirements-dev.txt so the test environment
  matches the version the goldens were recorded with
- strictly validate the spawn-worker tensorrt_llm site directory both
  before spawning and inside each worker
- share the VisualGen dependency fixture between single- and multi-GPU
  test modules; defer defs imports so spawn workers survive re-import
- unwaive all eight multi-GPU/TP LPIPS variants and move the two
  eight-worker variants to B200 8-GPU pre-merge coverage

Branch squashed to a single commit: earlier revisions of the golden
media zip existed only in fork LFS storage and broke the CI GitHubSync
mirror push (pre-receive: LFS objects missing).

Signed-off-by: Chang Liu <9713593+chang-l@users.noreply.github.com>
@chang-l chang-l force-pushed the dev-visgen-multigpu-lpips branch from a9774ce to fc9b55f Compare July 10, 2026 12:13
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58600 [ run ] completed with state SUCCESS. Commit: a9774ce
/LLM/main/L0_MergeRequest_PR pipeline #47191 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@chang-l

chang-l commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #58683 [ run ] triggered by Bot. Commit: fc9b55f Link to invocation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants