Skip to content

[None][feat] Qwen Image Ulysses perf enhancement - #17147

Open
yibinl-nvidia wants to merge 17 commits into
NVIDIA:mainfrom
yibinl-nvidia:dev-yibinl-qwen-image-edit-ulysses
Open

[None][feat] Qwen Image Ulysses perf enhancement#17147
yibinl-nvidia wants to merge 17 commits into
NVIDIA:mainfrom
yibinl-nvidia:dev-yibinl-qwen-image-edit-ulysses

Conversation

@yibinl-nvidia

@yibinl-nvidia yibinl-nvidia commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

This PR improves Qwen Image Ulysses execution and documents Qwen-Image-Edit-2511 Ulysses support.

  • Adds a BF16 fused post-Ulysses post-unscatter custom op for Q/K/V layout conversion after all-to-all.
  • Uses the fused op only for multi-rank Ulysses (U > 1); U = 1 stays on the original local path.
  • Adds a 2-GPU Qwen-Image-Edit-2511 FP8 Ulysses example config with VANILLA attention, because padded text/image streams require key-padding-mask support.
  • Keeps masked prompt handling in the transformer path: the sharder pads/gathers a joint key-padding mask, VANILLA Ulysses consumes it, and non-mask-capable sequence-parallel backends raise from the transformer layer.
  • Restores the Qwen-Image-Edit-2511 trtllm-serve support matrix entries from [TRTLLM-14730][feat] Add image edit serving endpoint for visual generation models #16987 while enabling Ulysses support.
  • Adds direct packed-op tests, safer distributed-test setup, and Qwen Image Edit multi-GPU attention coverage.

Implementation Notes

Qwen Image Ulysses gathers sequence shards and shards heads before attention. The previous path converted post-all-to-all tensors back to backend layout through eager PyTorch layout operations for Q, K, and V. The new native op fuses that post-unscatter layout conversion and removes launch/layout overhead on the multi-rank Ulysses path.

Runtime behavior:

  • U > 1: BF16 Ulysses attention uses the fused post-unscatter op when Q/K/V are same-shaped BF16 CUDA tensors and the kernel shape constraints are satisfied.
  • U = 1: the fused op is not used, because there is no multi-rank all-to-all/post-unscatter work.
  • Unsupported packed-op shapes/devices fall back to the existing unfused Ulysses path.

Validation

Tests/coverage added or updated:

  • tests/unittest/_torch/thop/parallel_hw_agnostic/test_ulysses_post_unscatter.py
    • exact HND/NHD tests for ulysses_packed_qkv_post_unscatter
    • invalid layout, invalid packed QKV dim, D % 8, and oversized-block rejection tests
  • tests/unittest/_torch/visual_gen/multi_gpu/test_qwen_image_edit_ulysses.py
    • 2-GPU Ulysses attention parity against a single-rank reference
    • masked prompt/key-padding-mask coverage
    • clean GPU skip, gpu2 mark, distributed barrier, and MPI-env restoration
  • tests/integration/test_lists/test-db/l0_dgx_b200.yml
    • registers the Qwen Image Edit multi-GPU VisualGen unit test

Manual image-quality check:

BF16 Qwen Image U=2

Prompt:

A serene mountain lake at sunrise, watercolor style, highly detailed

LPIPS score: 0

new op baseline
with_op_seed42.png without_op_seed42.png

Performance Notes

Manual B200 runs with the Python VisualGen scripts showed the fused post-unscatter op helps the multi-rank Ulysses path. The final branch gates the op to U > 1; U = 1 is intentionally baseline-only.

BF16

Ulysses baseline ms/step new op ms/step perf speedup baseline denoise (s) new op denoise (s)
2 231.26 229.90 0.59% reduction 11.56 11.49
4 163.88 161.38 1.53% reduction 8.19 8.06
8 124.06 118.18 4.74% reduction 6.20 5.90

PR Checklist

  • PR description clearly explains what and why.
  • Test cases are provided for new code paths.
  • Documentation updated as needed.
  • No public API change is introduced.

@yibinl-nvidia
yibinl-nvidia force-pushed the dev-yibinl-qwen-image-edit-ulysses branch from d68cb4a to 7fb2c86 Compare July 31, 2026 22:53
@yibinl-nvidia
yibinl-nvidia marked this pull request as ready for review August 3, 2026 23:48
@yibinl-nvidia
yibinl-nvidia requested review from a team as code owners August 3, 2026 23:48
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Qwen-Image-Edit-2511 now has a 2-GPU Ulysses configuration, updated support declarations, revised prompt encoding, and distributed attention tests. The B200 test list includes the pipeline configuration test.

Changes

Qwen Image Edit Ulysses Support

Layer / File(s) Summary
Ulysses configuration and capability declarations
examples/visual_gen/configs/*, docs/source/models/*
Adds FP8, 2-way Ulysses configuration and marks Qwen-Image-Edit-2511 as supported.
Prompt encoding path
tensorrt_llm/_torch/visual_gen/models/qwen_image/pipeline_qwen_image.py
Removes Ulysses prompt-mask validation from the forward path.
Distributed Ulysses validation
tests/unittest/_torch/visual_gen/multi_gpu/test_qwen_image_edit_ulysses.py, tests/integration/test_lists/test-db/l0_b200.yml
Adds NCCL-based two-GPU attention validation and includes the pipeline configuration test in B200 coverage.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Pytest
  participant DistributedWorker
  participant NCCLProcessGroup
  participant QwenJointAttention
  Pytest->>DistributedWorker: run two-GPU Ulysses test
  DistributedWorker->>NCCLProcessGroup: initialize distributed workers
  DistributedWorker->>QwenJointAttention: execute Ulysses attention
  QwenJointAttention-->>DistributedWorker: return finite output tensors
  DistributedWorker-->>Pytest: validate output shapes and values
Loading

Suggested reviewers: bowenfu

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ⚠️ Warning The description includes the template but provides no issue summary, implementation details, or test coverage information. Add a concise description of the problem and solution, list the relevant tests, and complete the applicable checklist items.
✅ Passed checks (3 passed)
Check name Status Explanation
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.
Title check ✅ Passed The title follows the required format and clearly identifies Qwen Image Edit Ulysses support as the main change.
✨ 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

🧹 Nitpick comments (4)
tensorrt_llm/_torch/visual_gen/models/qwen_image/pipeline_qwen_image_edit.py (1)

14-14: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Use union syntax for prompt_masks.

Replace Optional[torch.Tensor] with torch.Tensor | None. Remove Optional from Line 14.

Proposed change
-from typing import Any, Optional
+from typing import Any
...
-        *prompt_masks: Optional[torch.Tensor],
+        *prompt_masks: torch.Tensor | None,

As per coding guidelines, use built-in generic types and |.

Also applies to: 262-266

🤖 Prompt for 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.

In `@tensorrt_llm/_torch/visual_gen/models/qwen_image/pipeline_qwen_image_edit.py`
at line 14, Update the prompt_masks type annotations in the affected definitions
to use torch.Tensor | None instead of Optional[torch.Tensor], and remove the
unused Optional import while preserving the existing annotation behavior.

Source: Coding guidelines

tests/unittest/_torch/visual_gen/multi_gpu/test_qwen_image_edit_ulysses.py (3)

39-40: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Complete the callable annotations.

Add a generator return type to _cleanup_mpi_env. Parameterize Callable as Callable[[int, int], None]. Add -> None to test_qwen_image_edit_ulysses_attention_2gpu.

As per coding guidelines, “Annotate every function” and use precise Callable types.

Also applies to: 61-72, 148-149

🤖 Prompt for 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.

In `@tests/unittest/_torch/visual_gen/multi_gpu/test_qwen_image_edit_ulysses.py`
around lines 39 - 40, Complete annotations for _cleanup_mpi_env by adding its
generator return type and annotate callback parameters with Callable[[int, int],
None]. Add -> None to test_qwen_image_edit_ulysses_attention_2gpu and the other
affected test functions, preserving their existing behavior.

Source: Coding guidelines


61-69: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Remove the broad exception handler.

The finally block already runs cleanup for success and failure. Remove except Exception and let the original worker exception propagate.

As per coding guidelines, “Catch specific exceptions instead of broad or bare exception handling such as except:.”

🤖 Prompt for 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.

In `@tests/unittest/_torch/visual_gen/multi_gpu/test_qwen_image_edit_ulysses.py`
around lines 61 - 69, Remove the broad except Exception handler from
_distributed_worker and its error print, allowing test_fn or initialization
exceptions to propagate unchanged while retaining the finally block’s
cleanup_distributed() call for both success and failure.

Source: Coding guidelines


99-149: 📐 Maintainability & Code Quality | 🔵 Trivial | 🏗️ Heavy lift

Add pipeline-level Ulysses coverage and register both tests.

test_qwen_image_edit_ulysses_attention_2gpu and test_qwen_image_edit_ulysses_rejects_masked_prompt_conditioning do not call QwenImageEditPlusPipeline.forward. Add a test that sets ulysses_size=2, returns a non-None prompt mask, and asserts forward raises before _prepare_edit_latents runs.

Test coverage summary:

  • Added: test_qwen_image_edit_ulysses_attention_2gpu.
  • Changed: test_qwen_image_edit_ulysses_rejects_masked_prompt_conditioning.
  • CI and QA membership: neither test is listed.
  • Add the multi-GPU test to tests/integration/test_lists/test-db/l0_dgx_b200.yml and the pipeline-config test to tests/integration/test_lists/test-db/l0_b200.yml.
  • Coverage verdict: insufficient.
🤖 Prompt for 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.

In `@tests/unittest/_torch/visual_gen/multi_gpu/test_qwen_image_edit_ulysses.py`
around lines 99 - 149, Add pipeline-level Ulysses coverage alongside
_test_qwen_image_edit_ulysses_attention: create or update
test_qwen_image_edit_ulysses_rejects_masked_prompt_conditioning with
ulysses_size=2, a non-None prompt mask, and an assertion that
QwenImageEditPlusPipeline.forward raises before _prepare_edit_latents executes.
Register test_qwen_image_edit_ulysses_attention_2gpu in l0_dgx_b200.yml and the
pipeline-config rejection test in l0_b200.yml.

Source: Path instructions

🤖 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/unittest/_torch/visual_gen/multi_gpu/test_qwen_image_edit_ulysses.py`:
- Line 8: Preserve the test runner’s original TLLM_DISABLE_MPI value before the
assignment near the module setup, then restore that value during teardown
instead of always removing the variable. Update the teardown logic around the
existing cleanup at lines 39-42 so an originally set value is reinstated and an
originally absent value is removed.

---

Nitpick comments:
In
`@tensorrt_llm/_torch/visual_gen/models/qwen_image/pipeline_qwen_image_edit.py`:
- Line 14: Update the prompt_masks type annotations in the affected definitions
to use torch.Tensor | None instead of Optional[torch.Tensor], and remove the
unused Optional import while preserving the existing annotation behavior.

In `@tests/unittest/_torch/visual_gen/multi_gpu/test_qwen_image_edit_ulysses.py`:
- Around line 39-40: Complete annotations for _cleanup_mpi_env by adding its
generator return type and annotate callback parameters with Callable[[int, int],
None]. Add -> None to test_qwen_image_edit_ulysses_attention_2gpu and the other
affected test functions, preserving their existing behavior.
- Around line 61-69: Remove the broad except Exception handler from
_distributed_worker and its error print, allowing test_fn or initialization
exceptions to propagate unchanged while retaining the finally block’s
cleanup_distributed() call for both success and failure.
- Around line 99-149: Add pipeline-level Ulysses coverage alongside
_test_qwen_image_edit_ulysses_attention: create or update
test_qwen_image_edit_ulysses_rejects_masked_prompt_conditioning with
ulysses_size=2, a non-None prompt mask, and an assertion that
QwenImageEditPlusPipeline.forward raises before _prepare_edit_latents executes.
Register test_qwen_image_edit_ulysses_attention_2gpu in l0_dgx_b200.yml and the
pipeline-config rejection test in l0_b200.yml.
🪄 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: f1f68866-877e-4229-8b97-ca1802cf4d54

📥 Commits

Reviewing files that changed from the base of the PR and between 0a0de1c and 7fb2c86.

📒 Files selected for processing (6)
  • docs/source/models/supported-models.md
  • docs/source/models/visual-generation.md
  • examples/visual_gen/configs/qwen-image-edit-2511-fp8-2gpu-ulysses.yaml
  • tensorrt_llm/_torch/visual_gen/models/qwen_image/pipeline_qwen_image_edit.py
  • tests/unittest/_torch/visual_gen/multi_gpu/test_qwen_image_edit_ulysses.py
  • tests/unittest/_torch/visual_gen/test_qwen_image_pipeline_config.py

Comment thread tests/unittest/_torch/visual_gen/multi_gpu/test_qwen_image_edit_ulysses.py Outdated

@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/unittest/_torch/visual_gen/multi_gpu/test_qwen_image_edit_ulysses.py`:
- Around line 149-150: Register both changed test modules in the appropriate
test lists: add
tests/unittest/_torch/visual_gen/multi_gpu/test_qwen_image_edit_ulysses.py to
l0_dgx_b200.yml and
tests/unittest/_torch/visual_gen/test_qwen_image_pipeline_config.py to
l0_b200.yml, or equivalent applicable lists, so
test_qwen_image_edit_ulysses_attention_2gpu and the configuration test coverage
are included.
🪄 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: c2c82e34-fca1-4493-8148-ab2a20a20d30

📥 Commits

Reviewing files that changed from the base of the PR and between 7fb2c86 and 617d9bb.

📒 Files selected for processing (4)
  • tensorrt_llm/_torch/visual_gen/models/qwen_image/pipeline_qwen_image.py
  • tests/integration/defs/accuracy/test_cli_flow.py
  • tests/unittest/_torch/visual_gen/multi_gpu/test_qwen_image_edit_ulysses.py
  • tests/unittest/_torch/visual_gen/test_qwen_image_pipeline_config.py

@yibinl-nvidia
yibinl-nvidia force-pushed the dev-yibinl-qwen-image-edit-ulysses branch from 617d9bb to 2b878d4 Compare August 4, 2026 03:48
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
@yibinl-nvidia
yibinl-nvidia force-pushed the dev-yibinl-qwen-image-edit-ulysses branch from a6049b8 to 40b75ea Compare September 1, 2026 00:18
Signed-off-by: Yibin Li <109242046+yibinl-nvidia@users.noreply.github.com>
@yibinl-nvidia

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #70495 [ run ] triggered by Bot. Commit: cb0b1ce Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #70495 [ run ] completed with state FAILURE. Commit: cb0b1ce
/LLM/main/L0_MergeRequest_PR pipeline #57715 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

@yibinl-nvidia

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #70537 [ run ] triggered by Bot. Commit: cb0b1ce Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #70537 [ run ] completed with state FAILURE. Commit: cb0b1ce
/LLM/main/L0_MergeRequest_PR pipeline #57750 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

@yibinl-nvidia

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #70568 [ run ] triggered by Bot. Commit: cb0b1ce Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #70568 [ run ] completed with state FAILURE. Commit: cb0b1ce
/LLM/main/L0_MergeRequest_PR pipeline #57780 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

@yibinl-nvidia

Copy link
Copy Markdown
Collaborator Author

/bot help

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

GitHub Bot Help

/bot [-h] ['run', 'kill', 'skip', 'reuse-pipeline'] ...

Provide a user friendly way for developers to interact with a Jenkins server.

Run /bot [-h|--help] to print this help message.

See details below for each supported subcommand.

Details

run [--reuse-test (optional)pipeline-id --disable-fail-fast --skip-test --stage-list "A10-PyTorch-1, xxx" --gpu-type "A30, H100_PCIe" --test-backend "pytorch, cpp" --add-multi-gpu-test --only-multi-gpu-test --disable-multi-gpu-test --post-merge --extra-stage "H100_PCIe-TensorRT-Post-Merge-1, xxx" --detailed-log --debug(experimental) --high-priority]

Launch build/test pipelines. All previously running jobs will be killed.

--reuse-test (optional)pipeline-id (OPTIONAL) : Allow the new pipeline to reuse build artifacts and skip successful test stages from a specified pipeline or the last pipeline if no pipeline-id is indicated. If the Git commit ID has changed, this option will be always ignored. The DEFAULT behavior of the bot is to reuse build artifacts and successful test results from the last pipeline.

--disable-reuse-test (OPTIONAL) : Explicitly prevent the pipeline from reusing build artifacts and skipping successful test stages from a previous pipeline. Ensure that all builds and tests are run regardless of previous successes.

--disable-fail-fast (OPTIONAL) : Disable fail fast on build/tests/infra failures.

--skip-test (OPTIONAL) : Skip all test stages, but still run build stages, package stages and sanity check stages. Note: Does NOT update GitHub check status.

--stage-list "A10-PyTorch-1, xxx" (OPTIONAL) : Only run the specified test stages. Supports wildcard * for pattern matching (e.g., "*PerfSanity*" matches all stages containing PerfSanity). Examples: "A10-PyTorch-1, xxx", "PerfSanity". The patterns "*", "*Post-Merge*", and "*PerfSanity*", including equivalent escaped or repeated-star forms and their use in comma-separated lists, require the ci: post-merge approved PR label. Note: Does NOT update GitHub check status.

--gpu-type "A30, H100_PCIe" (OPTIONAL) : Only run the test stages on the specified GPU types. Examples: "A30, H100_PCIe". Note: Does NOT update GitHub check status.

--test-backend "pytorch, cpp" (OPTIONAL) : Skip test stages which don't match the specified backends. Only support [pytorch, cpp, tensorrt, triton]. Examples: "pytorch, cpp" (does not run test stages with tensorrt or triton backend). Note: Does NOT update GitHub pipeline status.

--only-multi-gpu-test (OPTIONAL) : Only run the multi-GPU tests. Requires the ci: full pre-merge approved label on the PR (ask a member of NVIDIA/trt-llm-ci-approvers). Note: Does NOT update GitHub check status.

--disable-multi-gpu-test (OPTIONAL) : Disable the multi-GPU tests. Note: Does NOT update GitHub check status.

--add-multi-gpu-test (OPTIONAL) : Force run the multi-GPU tests in addition to running L0 pre-merge pipeline. Requires the ci: full pre-merge approved label on the PR (ask a member of NVIDIA/trt-llm-ci-approvers).

--post-merge (OPTIONAL) : Run the L0 post-merge pipeline instead of the ordinary L0 pre-merge pipeline. Requires the ci: post-merge approved PR label applied by an active member of NVIDIA/trt-llm-ci-approvers. The approval label remains in place when new commits are pushed.

--extra-stage "H100_PCIe-TensorRT-Post-Merge-1, xxx" (OPTIONAL) : Run the ordinary L0 pre-merge pipeline and specified test stages. Supports wildcard * for pattern matching. Examples: --extra-stage "H100_PCIe-TensorRT-Post-Merge-1, xxx", --extra-stage "Post-Merge". The patterns "*", "*Post-Merge*", and "*PerfSanity*", including equivalent escaped or repeated-star forms and their use in comma-separated lists, require the ci: post-merge approved PR label.

--detailed-log (OPTIONAL) : Enable flushing out all logs to the Jenkins console. This will significantly increase the log volume and may slow down the job.

--debug (OPTIONAL) : Experimental feature. Enable access to the CI container for debugging purpose. Note: Specify exactly one stage in the stage-list parameter to access the appropriate container environment. Note: Does NOT update GitHub check status.

--high-priority (OPTIONAL) : Run the pipeline with high priority. This option is restricted to authorized users only and will route the job to a high-priority queue.

kill

kill

Kill all running builds associated with pull request.

skip

skip --comment COMMENT

Skip testing for latest commit on pull request. --comment "Reason for skipping build/test" is required. IMPORTANT NOTE: This is dangerous since lack of user care and validation can cause top of tree to break.

reuse-pipeline

reuse-pipeline

Reuse a previous pipeline to validate current commit. This action will also kill all currently running builds associated with the pull request. IMPORTANT NOTE: This is dangerous since lack of user care and validation can cause top of tree to break.

@yibinl-nvidia

Copy link
Copy Markdown
Collaborator Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #70799 [ run ] triggered by Bot. Commit: cb0b1ce Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #70799 [ run ] completed with state FAILURE. Commit: cb0b1ce
/LLM/main/L0_MergeRequest_PR pipeline #57984 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

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants