Skip to content

[None][chore] Add set_segment arg to slurm scripts - #9731

Merged
fredricz-20070104 merged 21 commits into
NVIDIA:mainfrom
fredricz-20070104:feature/fz_gb300
Dec 11, 2025
Merged

[None][chore] Add set_segment arg to slurm scripts#9731
fredricz-20070104 merged 21 commits into
NVIDIA:mainfrom
fredricz-20070104:feature/fz_gb300

Conversation

@fredricz-20070104

@fredricz-20070104 fredricz-20070104 commented Dec 5, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Added GB200 GPU type support across benchmark configurations
    • Introduced dataset directory management for test configurations
    • Added new benchmark configurations for Qwen3, DeepSeek, and Kimi models with various optimization settings
  • Bug Fixes

    • Fixed context sequence length validation logic
  • Tests

    • Added new benchmark and accuracy test cases to test lists
    • Expanded test coverage with GB200 GPU configurations
  • Chores

    • Updated pytest markers and configuration options
    • Standardized model directory naming conventions

✏️ Tip: You can customize this high-level summary in your review settings.

Add GB300 dlcluster support since it doesn't support segment

@coderabbitai

coderabbitai Bot commented Dec 5, 2025

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

This pull request introduces GB200 GPU support and configuration updates for disaggregated benchmark testing. Changes include conditional Slurm segment parameter handling in job submission, new test configurations for Qwen3, DeepSeek, and Kimi models with GPU type specifications and environment variables, dataset path updates, utility enhancements for environment and configuration management, and expanded test coverage with new benchmark entries.

Changes

Cohort / File(s) Summary
Core submission logic
examples/disaggregated/slurm/benchmark/config.yaml, examples/disaggregated/slurm/benchmark/submit.py
Added gpu_type: "GB200" to hardware config. Modified submit.py to conditionally append Slurm --segment parameter only when GPU type is GB200, replacing unconditional behavior.
Utilities & integration helpers
tests/integration/defs/perf/disagg/utils/common.py, tests/integration/defs/perf/disagg/utils/config_loader.py, tests/integration/defs/perf/disagg/utils/config_validator.py, tests/integration/defs/perf/disagg/execution/executor.py, tests/integration/defs/perf/disagg/execution/subprocess_utils.py, tests/integration/defs/perf/disagg/compare_backends.py
Added get_dataset_dir() method and updated get_container_mount() signature in EnvManager; added date-based prefix in log path generation. Updated _apply_env_overrides() in ConfigLoader to accept model_name parameter and populate gpu_type from environment. Modified dataset path resolution to use dataset directory instead of model directory. Relaxed ctx_max_seq_len validation. Added import statements for logger and os; added file existence guard in compare_backends. Commented out temp config file cleanup on error in executor. Added stderr logging in subprocess_utils.
Test configurations — Qwen3 FP4/FP8 models
tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_*, tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP8_*, tests/integration/defs/perf/disagg/test_configs/wideep/perf/Qwen3-235B-A22B-FP4_*
Added slurm.extra_args: "--gres=gpu:4", hardware.gpu_type: "GB200", environment.worker_env_var, and environment.server_env_var across all Qwen3 configurations. Removed GB200/GB300 from supported_gpus lists where present. Updated dataset paths from datasets/ to disagg_datasets/.
Test configurations — DeepSeek FP4 models
tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_*, tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_*, tests/integration/defs/perf/disagg/test_configs/wideep/accuracy/deepseek-r1-fp4_*
Updated model_dir_name from DeepSeek-R1-0528-FP4-V2 to DeepSeek-R1-0528-FP4-v2 (case change). Added slurm.extra_args, hardware.gpu_type: "GB200", environment.worker_env_var, and environment.server_env_var across all DeepSeek configurations. Updated dataset file paths to use disagg_datasets/ directory.
Test configurations — Kimi K2 models (new)
tests/integration/defs/perf/disagg/test_configs/wideep/perf/kimi-k2-thinking-fp4_1k1k_ctx3_gen1_dep32_bs1024_eplb384_mtp0_ccb-UCX.yaml, tests/integration/defs/perf/disagg/test_configs/wideep/perf/kimi-k2-thinking-fp4_8k1k_ctx8_gen1_dep32_bs256_eplb416_mtp0_ccb-UCX.yaml, tests/integration/defs/perf/disagg/test_configs/wideep/accuracy/kimi-k2-thinking-fp4_1k1k_ctx3_gen1_dep32_bs1024_eplb384_mtp0_ccb-UCX.yaml
Added new benchmark configurations for Kimi-K2 thinking FP4 models with complete metadata, Slurm, benchmark, hardware, environment, profiling, accuracy, and worker configuration sections. Defines tensor parallelism, MoE parallelism, CUDA graph, KV cache, and cache transceiver settings.
Test configuration templates
tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_1k1k_ctx2_gen1_dep48_bs16_eplb288_mtp3_ccb-DEFAULT.yaml, tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_8k1k_ctx2_gen1_dep32_bs128_eplb288_mtp3_ccb-DEFAULT.yaml
Added new DEFAULT backend template configurations with comprehensive benchmark settings, placeholders for runtime values, and environment specifications.
Test metadata & lists
tests/integration/defs/perf/disagg/envs/ENV.md, tests/integration/defs/perf/disagg/testlist/disagg.txt, tests/integration/defs/perf/disagg/testlist/disagg_gb300.txt, tests/integration/defs/perf/disagg/testlist/wideep.txt, tests/integration/defs/pytest.ini
Added DATASET_DIR environment variable documentation and separated dataset specification from MODEL_DIR. Added new test entries for Qwen3 FP8, DeepSeek, and Kimi benchmark configurations. Updated pytest.ini to mark ./perf/disagg as non-recursive and added new markers: skip_less_device_memory, skip_less_host_memory, support_fp8, skip_device_not_contain, and timeout.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • High repetition factor: Approximately 60+ YAML test configuration files exhibit nearly identical change patterns (adding gpu_type, extra_args, environment variables; updating dataset paths), substantially reducing per-file review complexity
  • Moderate Python logic changes: Conditional Slurm parameter handling in submit.py, environment override parameter propagation in config_loader.py, and relaxed validation threshold are straightforward but require semantic verification
  • Areas requiring extra attention:
    • examples/disaggregated/slurm/benchmark/submit.py: Verify conditional logic correctly targets GB200 GPU type and preserves command assembly for non-GB200 cases
    • tests/integration/defs/perf/disagg/utils/config_loader.py: Confirm model_name propagation and dataset path resolution changes integrate properly with existing configuration flows
    • tests/integration/defs/perf/disagg/utils/config_validator.py: Validate that relaxed ctx_max_seq_len constraint (from > (isl + osl) to > isl) does not inadvertently permit invalid configurations
    • New Kimi K2 configuration files: Verify completeness of new benchmark definitions against existing patterns and expected parallelism parameters

Pre-merge checks and finishing touches

❌ Failed checks (3 warnings)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Description check ⚠️ Warning The PR description is incomplete. It lacks required sections from the template: no Description explaining the issue/solution, no Test Coverage section, and no PR Checklist verification. Complete the PR description by adding: (1) A detailed explanation of why GB300 needs special handling and how the changes address it, (2) List of relevant tests that validate the GB300 support, and (3) Verification of PR checklist items.
Title check ⚠️ Warning The PR title '[None][chore] Add set_segment arg to slurm scripts' focuses on adding a segment argument but does not capture the main objective of adding GB300 dlcluster support, which is the core purpose mentioned in the PR description. Update the title to reflect the main change: '[feat] Add GB300 dlcluster support with conditional segment parameter' or similar, to clearly convey the primary objective of the changeset.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@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: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
tests/integration/defs/perf/disagg/utils/config_validator.py (1)

82-87: Fix ctx_max_seq_len assertion message to reflect the failure condition

The error message "config error: ctx_max_seq_len > isl" describes the success condition and is inconsistent with the gen assertion message, which correctly describes the failure condition. Error messages should clarify what went wrong:

-        assert ctx_max_seq_len > isl, "config error: ctx_max_seq_len > isl"
+        assert ctx_max_seq_len > isl, "config error: ctx_max_seq_len <= isl"
♻️ Duplicate comments (12)
tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen4_tep8_bs32_eplb0_mtp0_ccb-UCX.yaml (1)

5-7: Duplicate issue: supported_gpus includes GB300 but gpu_type is hardcoded to GB200.

Same inconsistency as the NIXL variant: metadata lists GB200 and GB300 as supported (lines 5-7), but gpu_type is hardcoded to GB200 (line 33). See the review comment from the NIXL file for context.

Also applies to: 33-33

tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx2_gen1_dep16_bs128_eplb0_mtp3_ccb-UCX.yaml (1)

4-4: Same GPU type/supported_gpus mismatch and environment variable concerns as preceding config files.

This file has identical changes to the previous DeepSeek config (case-normalized model_dir_name, slurm gres, hardcoded GB200 gpu_type, and environment variables). The same concerns apply: verify the supported_gpus metadata is intentional, and confirm that GB300 handling (if needed) is implemented elsewhere.

Also applies to: 17-17, 33-33, 41-42

tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx1_gen4_tep8_bs32_eplb0_mtp0_ccb-UCX.yaml (1)

4-4: Same concerns apply: GPU type configuration mismatch and environment variables.

Also applies to: 17-17, 33-33, 41-42

tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx8_gen1_dep32_bs16_eplb0_mtp3_ccb-UCX.yaml (1)

4-4: Same GPU type configuration concerns.

Also applies to: 17-17, 33-33, 41-42

tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx2_gen1_dep16_bs128_eplb0_mtp3_ccb-NIXL.yaml (1)

4-4: Same GPU type configuration concerns.

Also applies to: 17-17, 33-33, 41-42

tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx1_gen4_tep8_bs32_eplb0_mtp3_ccb-UCX.yaml (1)

4-4: Same GPU type configuration concerns.

Also applies to: 17-17, 33-33, 41-42

tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_8k1k_ctx8_gen1_dep32_bs16_eplb288_mtp3_ccb-NIXL.yaml (1)

18-18: Same GB300 compatibility concern as other configs.

This config has the same hardcoded --gres=gpu:4 issue that may conflict with GB300 support. See the comment in deepseek-r1-fp4_8k1k_ctx6_gen1_dep16_bs64_eplb0_mtp0_ccb-NIXL.yaml for details.

tests/integration/defs/perf/disagg/test_configs/wideep/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen1_dep16_bs64_eplb288_mtp3_ccb-UCX.yaml (1)

18-18: Same GB300 compatibility concern.

This Qwen3 config exhibits the same hardcoded --gres=gpu:4 issue. The pattern is repeated across all modified configs in this PR.

tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx8_gen1_dep32_bs16_eplb0_mtp3_ccb-NIXL.yaml (1)

17-17: Same GB300 compatibility concern.

This config has the same hardcoded --gres=gpu:4 issue as noted in other configs.

tests/integration/defs/perf/disagg/test_configs/wideep/perf/kimi-k2-thinking-fp4_8k1k_ctx8_gen1_dep32_bs256_eplb416_mtp0_ccb-UCX.yaml (1)

18-18: Same GB300 compatibility concern.

This new Kimi-K2 config has the same hardcoded --gres=gpu:4 issue noted in other configs.

tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_8k1k_ctx6_gen1_dep16_bs64_eplb288_mtp0_ccb-NIXL.yaml (1)

18-18: Same GB300 compatibility concern.

This wideep config has the same hardcoded --gres=gpu:4 issue as noted in other configs.

tests/integration/defs/perf/disagg/test_configs/wideep/accuracy/kimi-k2-thinking-fp4_1k1k_ctx3_gen1_dep32_bs1024_eplb384_mtp0_ccb-UCX.yaml (1)

24-24: Same GB300 compatibility concern.

This accuracy config has the same hardcoded --gres=gpu:4 issue noted in other configs.

🧹 Nitpick comments (6)
tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen1_dep32_bs16_eplb0_mtp3_ccb-UCX.yaml (1)

6-7: Verify GPU type consistency across metadata and configuration.

The metadata declares both GB200 and GB300 as supported_gpus, but hardware.gpu_type is hardcoded to GB200. Per the PR title stating GB300 lacks segment support, confirm whether:

  1. This config is intended for GB200 only, with separate GB300-variant configs elsewhere.
  2. The supported_gpus list should be narrowed to match the specific GPU type.
  3. The gpu_type field should be dynamic or conditionally set based on runtime selection.

Given the context that similar configurations exist across the PR, ensure this pattern is consistent across all disagg/perf configs.

Also applies to: 33-33

tests/integration/defs/perf/disagg/test_configs/wideep/accuracy/deepseek-r1-fp4_1k1k_ctx2_gen1_dep16_bs128_eplb288_mtp3_ccb-NIXL.yaml (1)

24-24: Document the purpose of --gres=gpu:4 in Slurm args.

The extra_args field now includes --gres=gpu:4, which explicitly requests 4 GPU resources in Slurm. Per the PR objectives, this may be a workaround for GB300's lack of segment support. Add an inline comment to explain the relationship between this Slurm flag and the GPU type constraints, especially if different GPU types require different handling.

tests/integration/defs/perf/disagg/execution/executor.py (1)

252-253: Consider conditional cleanup based on debug mode.

Preserving the temp config file on exception aids debugging, but this introduces a few concerns:

  1. File accumulation: Repeated failures could accumulate temp files over time without cleanup.
  2. Inconsistency: Normal submission failure (lines 240-241) still cleans up the temp file, but the exception path doesn't.
  3. Missing documentation: No comment explains why cleanup is disabled here.

Consider one of these approaches:

Option 1 (preferred): Make cleanup conditional on debug mode:

 except Exception as e:
     error_msg = str(e)
     # Extract stderr from CalledProcessError if available
     if hasattr(e, "stderr") and e.stderr:
         error_msg = e.stderr.decode() if isinstance(e.stderr, bytes) else e.stderr
     logger.error(f"Job submission exception: {error_msg}")
-    # Clean up temporary file on exception
     temp_config_path = test_config.temp_config_path
-    # if os.path.exists(temp_config_path):
-    #     os.remove(temp_config_path)
+    # Preserve temp config in debug mode for troubleshooting, otherwise clean up
+    if not EnvManager.get_debug_mode() and os.path.exists(temp_config_path):
+        os.remove(temp_config_path)
     return False, error_msg

Option 2: Add a comment explaining the intent:

     temp_config_path = test_config.temp_config_path
+    # Preserve temp config file on exception to aid debugging of submission failures
     # if os.path.exists(temp_config_path):
     #     os.remove(temp_config_path)

Based on learnings, test infrastructure should prioritize debugging capability, but a conditional approach balances this with resource management.

tests/integration/defs/perf/disagg/execution/subprocess_utils.py (2)

1-15: Add standard NVIDIA copyright header at top of file

This Python file lacks the NVIDIA copyright header required for TensorRT‑LLM OSS files. Since you’re already modifying it, please add the standard current‑year NVIDIA header block at the top to align with project guidelines.


60-63: stderr logging misses failing commands due to check=True; log in exception path as well

With check=True, subprocess.run raises CalledProcessError on non‑zero exit codes, so the new stderr logging only runs for successful commands that still write to stderr, and not for the failures where stderr is most useful. Consider logging stderr in the exception path while preserving the existing API (still raising on failure).

You can refactor exec_cmd_with_output like this:

 def exec_cmd_with_output(*popenargs, timeout: Optional[float] = None, **kwargs) -> str:
@@
-    result = subprocess.run(
-        *popenargs,
-        stdout=subprocess.PIPE,
-        stderr=subprocess.PIPE,
-        timeout=timeout,
-        check=True,
-        **kwargs,
-    )
-
-    # Log stderr if it exists
-    if result.stderr:
-        stderr_output = result.stderr.decode()
-        logger.error(f"Command stderr: {stderr_output}")
-
-    return result.stdout.decode()
+    try:
+        result = subprocess.run(
+            *popenargs,
+            stdout=subprocess.PIPE,
+            stderr=subprocess.PIPE,
+            timeout=timeout,
+            check=True,
+            **kwargs,
+        )
+    except subprocess.CalledProcessError as e:
+        # Log stderr on failure, then re-raise to preserve behavior
+        if e.stderr:
+            stderr_output = e.stderr.decode()
+            logger.error(f"Command stderr (failed): {stderr_output}")
+        raise
+
+    # For successful commands, optionally log stderr if present (e.g., warnings)
+    if result.stderr:
+        stderr_output = result.stderr.decode()
+        logger.error(f"Command stderr: {stderr_output}")
+
+    return result.stdout.decode()
tests/integration/defs/perf/disagg/utils/common.py (1)

106-134: LGTM: Model-aware container mount with Kimi-K2 special handling.

The updated signature adds model-aware mounting logic. The Kimi-K2 shared memory requirement (640G) is well-documented and addresses a specific host memory constraint. The conditional dataset_dir and repo_dir mounting logic properly handles placeholder values.

Note: Line 124 has an unnecessary f-string prefix (no placeholders present). While functionally correct, removing the f prefix would address the static analysis warning.

Apply this diff if you wish to address the static analysis hint:

-            mounts.append(f"tmpfs:/dev/shm:size=640G")
+            mounts.append("tmpfs:/dev/shm:size=640G")
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e06c582 and a431a88.

📒 Files selected for processing (59)
  • examples/disaggregated/slurm/benchmark/config.yaml (1 hunks)
  • examples/disaggregated/slurm/benchmark/submit.py (2 hunks)
  • tests/integration/defs/perf/disagg/compare_backends.py (2 hunks)
  • tests/integration/defs/perf/disagg/envs/ENV.md (2 hunks)
  • tests/integration/defs/perf/disagg/execution/executor.py (1 hunks)
  • tests/integration/defs/perf/disagg/execution/subprocess_utils.py (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen1_dep16_bs64_eplb0_mtp3_ccb-NIXL.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen1_dep16_bs64_eplb0_mtp3_ccb-UCX.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen1_dep32_bs16_eplb0_mtp3_ccb-NIXL.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen1_dep32_bs16_eplb0_mtp3_ccb-UCX.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen4_tep8_bs32_eplb0_mtp0_ccb-NIXL.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen4_tep8_bs32_eplb0_mtp0_ccb-UCX.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_1k1k_ctx2_gen1_dep16_bs128_eplb0_mtp1_ccb-NIXL.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_1k1k_ctx2_gen1_dep16_bs128_eplb0_mtp1_ccb-UCX.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP8_1k1k_ctx1_gen1_tep8_bs32_eplb0_mtp0_ccb-NIXL.yaml (1 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP8_1k1k_ctx1_gen1_tep8_bs32_eplb0_mtp0_ccb-UCX.yaml (1 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx1_gen1_dep32_bs32_eplb0_mtp0_ccb-NIXL.yaml (4 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx1_gen1_dep32_bs32_eplb0_mtp0_ccb-UCX.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx1_gen4_tep8_bs32_eplb0_mtp0_ccb-NIXL.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx1_gen4_tep8_bs32_eplb0_mtp0_ccb-UCX.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx1_gen4_tep8_bs32_eplb0_mtp3_ccb-NIXL.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx1_gen4_tep8_bs32_eplb0_mtp3_ccb-UCX.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx2_gen1_dep16_bs128_eplb0_mtp3_ccb-NIXL.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx2_gen1_dep16_bs128_eplb0_mtp3_ccb-UCX.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx1_gen3_tep8_bs16_eplb0_mtp3_ccb-NIXL.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx1_gen3_tep8_bs16_eplb0_mtp3_ccb-UCX.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx1_gen3_tep8_bs32_eplb0_mtp0_ccb-NIXL.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx1_gen3_tep8_bs32_eplb0_mtp0_ccb-UCX.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx6_gen1_dep16_bs64_eplb0_mtp0_ccb-NIXL.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx6_gen1_dep16_bs64_eplb0_mtp0_ccb-UCX.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx8_gen1_dep32_bs16_eplb0_mtp3_ccb-NIXL.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx8_gen1_dep32_bs16_eplb0_mtp3_ccb-UCX.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/accuracy/deepseek-r1-fp4_1k1k_ctx2_gen1_dep16_bs128_eplb288_mtp3_ccb-NIXL.yaml (3 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/accuracy/kimi-k2-thinking-fp4_1k1k_ctx3_gen1_dep32_bs1024_eplb384_mtp0_ccb-UCX.yaml (1 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen1_dep16_bs64_eplb288_mtp3_ccb-NIXL.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen1_dep16_bs64_eplb288_mtp3_ccb-UCX.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen1_dep32_bs16_eplb288_mtp3_ccb-NIXL.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen1_dep32_bs16_eplb288_mtp3_ccb-UCX.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/Qwen3-235B-A22B-FP4_1k1k_ctx2_gen1_dep16_bs128_eplb288_mtp1_ccb-NIXL.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/Qwen3-235B-A22B-FP4_1k1k_ctx2_gen1_dep16_bs128_eplb288_mtp1_ccb-UCX.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_1k1k_ctx1_gen1_dep32_bs32_eplb288_mtp0_ccb-NIXL.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_1k1k_ctx1_gen1_dep32_bs32_eplb288_mtp0_ccb-UCX.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_1k1k_ctx2_gen1_dep16_bs128_eplb288_mtp3_ccb-NIXL.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_1k1k_ctx2_gen1_dep16_bs128_eplb288_mtp3_ccb-UCX.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_1k1k_ctx2_gen1_dep48_bs16_eplb288_mtp3_ccb-DEFAULT.yaml (1 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_8k1k_ctx2_gen1_dep32_bs128_eplb288_mtp3_ccb-DEFAULT.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_8k1k_ctx6_gen1_dep16_bs64_eplb288_mtp0_ccb-NIXL.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_8k1k_ctx6_gen1_dep16_bs64_eplb288_mtp0_ccb-UCX.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_8k1k_ctx8_gen1_dep32_bs16_eplb288_mtp3_ccb-NIXL.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_8k1k_ctx8_gen1_dep32_bs16_eplb288_mtp3_ccb-UCX.yaml (2 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/kimi-k2-thinking-fp4_1k1k_ctx3_gen1_dep32_bs1024_eplb384_mtp0_ccb-UCX.yaml (1 hunks)
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/kimi-k2-thinking-fp4_8k1k_ctx8_gen1_dep32_bs256_eplb416_mtp0_ccb-UCX.yaml (1 hunks)
  • tests/integration/defs/perf/disagg/testlist/disagg.txt (1 hunks)
  • tests/integration/defs/perf/disagg/testlist/disagg_gb300.txt (1 hunks)
  • tests/integration/defs/perf/disagg/testlist/wideep.txt (1 hunks)
  • tests/integration/defs/perf/disagg/utils/common.py (5 hunks)
  • tests/integration/defs/perf/disagg/utils/config_loader.py (4 hunks)
  • tests/integration/defs/perf/disagg/utils/config_validator.py (1 hunks)
  • tests/integration/defs/pytest.ini (1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.py

📄 CodeRabbit inference engine (CODING_GUIDELINES.md)

**/*.py: The code developed for TensorRT-LLM should conform to Python 3.8+
Indent Python code with 4 spaces; do not use tabs
Always maintain the namespace when importing in Python, even if only one class or function from a module is used (e.g., use from package.subpackage import foo and then foo.SomeClass() instead of from package.subpackage.foo import SomeClass)
Python filenames should use snake_case (e.g., some_file.py)
Python class names should use PascalCase (e.g., class SomeClass)
Python function and method names should use snake_case (e.g., def my_awesome_function():)
Python local variable names should use snake_case, with prefix k for variable names that start with a number (e.g., k_99th_percentile = ...)
Python global variables should use upper snake_case with prefix G (e.g., G_MY_GLOBAL = ...)
Python constants should use upper snake_case (e.g., MY_CONSTANT = ...)
Avoid shadowing variables declared in an outer scope in Python
Initialize all externally visible members of a Python class in the constructor
For Python interfaces that may be used outside a file, prefer docstrings over comments
Python comments should be reserved for code within a function, or interfaces that are local to a file
Use Google style docstrings for Python classes and functions, which can be parsed by Sphinx
Python attributes and variables can be documented inline with type and description (e.g., self.x = 5 followed by """<type>: Description of 'x'""" )
Avoid using reflection in Python when functionality can be easily achieved without reflection
When using try-except blocks in Python, limit the except clause to the smallest set of specific errors possible instead of catching all exceptions
When using try-except blocks in Python to handle multiple possible variable types (duck-typing), keep the body of the try as small as possible and use the else block to implement the logic

Files:

  • tests/integration/defs/perf/disagg/execution/subprocess_utils.py
  • tests/integration/defs/perf/disagg/compare_backends.py
  • tests/integration/defs/perf/disagg/utils/config_validator.py
  • tests/integration/defs/perf/disagg/execution/executor.py
  • examples/disaggregated/slurm/benchmark/submit.py
  • tests/integration/defs/perf/disagg/utils/config_loader.py
  • tests/integration/defs/perf/disagg/utils/common.py
**/*.{cpp,h,cu,py}

📄 CodeRabbit inference engine (CODING_GUIDELINES.md)

All TensorRT-LLM Open Source Software code files should contain an NVIDIA copyright header that includes the current year at the top

Files:

  • tests/integration/defs/perf/disagg/execution/subprocess_utils.py
  • tests/integration/defs/perf/disagg/compare_backends.py
  • tests/integration/defs/perf/disagg/utils/config_validator.py
  • tests/integration/defs/perf/disagg/execution/executor.py
  • examples/disaggregated/slurm/benchmark/submit.py
  • tests/integration/defs/perf/disagg/utils/config_loader.py
  • tests/integration/defs/perf/disagg/utils/common.py
🧠 Learnings (10)
📚 Learning: 2025-08-26T09:49:04.956Z
Learnt from: pengbowang-nv
Repo: NVIDIA/TensorRT-LLM PR: 7192
File: tests/integration/test_lists/test-db/l0_dgx_b200.yml:56-72
Timestamp: 2025-08-26T09:49:04.956Z
Learning: In TensorRT-LLM test configuration files, the test scheduling system handles wildcard matching with special rules that prevent duplicate test execution even when the same tests appear in multiple yaml files with overlapping GPU wildcards (e.g., "*b200*" and "*gb200*").

Applied to files:

  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP8_1k1k_ctx1_gen1_tep8_bs32_eplb0_mtp0_ccb-NIXL.yaml
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_1k1k_ctx2_gen1_dep16_bs128_eplb288_mtp3_ccb-UCX.yaml
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_1k1k_ctx2_gen1_dep48_bs16_eplb288_mtp3_ccb-DEFAULT.yaml
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx1_gen3_tep8_bs32_eplb0_mtp0_ccb-NIXL.yaml
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx1_gen4_tep8_bs32_eplb0_mtp0_ccb-NIXL.yaml
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_8k1k_ctx6_gen1_dep16_bs64_eplb288_mtp0_ccb-UCX.yaml
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx8_gen1_dep32_bs16_eplb0_mtp3_ccb-NIXL.yaml
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx1_gen3_tep8_bs16_eplb0_mtp3_ccb-NIXL.yaml
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx2_gen1_dep16_bs128_eplb0_mtp3_ccb-NIXL.yaml
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_1k1k_ctx2_gen1_dep16_bs128_eplb0_mtp1_ccb-NIXL.yaml
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP8_1k1k_ctx1_gen1_tep8_bs32_eplb0_mtp0_ccb-UCX.yaml
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_8k1k_ctx8_gen1_dep32_bs16_eplb288_mtp3_ccb-UCX.yaml
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_1k1k_ctx1_gen1_dep32_bs16_eplb0_mtp3_ccb-UCX.yaml
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx1_gen1_dep32_bs32_eplb0_mtp0_ccb-UCX.yaml
📚 Learning: 2025-09-09T09:40:45.658Z
Learnt from: fredricz-20070104
Repo: NVIDIA/TensorRT-LLM PR: 7645
File: tests/integration/test_lists/qa/llm_function_core.txt:648-648
Timestamp: 2025-09-09T09:40:45.658Z
Learning: In TensorRT-LLM test lists, it's common and intentional for the same test to appear in multiple test list files when they serve different purposes (e.g., llm_function_core.txt for comprehensive core functionality testing and llm_function_core_sanity.txt for quick sanity checks). This duplication allows tests to be run in different testing contexts.

Applied to files:

  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP8_1k1k_ctx1_gen1_tep8_bs32_eplb0_mtp0_ccb-NIXL.yaml
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP8_1k1k_ctx1_gen1_tep8_bs32_eplb0_mtp0_ccb-UCX.yaml
📚 Learning: 2025-07-28T17:06:08.621Z
Learnt from: moraxu
Repo: NVIDIA/TensorRT-LLM PR: 6303
File: tests/integration/test_lists/qa/examples_test_list.txt:494-494
Timestamp: 2025-07-28T17:06:08.621Z
Learning: In TensorRT-LLM testing, it's common to have both CLI flow tests (test_cli_flow.py) and PyTorch API tests (test_llm_api_pytorch.py) for the same model. These serve different purposes: CLI flow tests validate the traditional command-line workflow, while PyTorch API tests validate the newer LLM API backend. Both are legitimate and should coexist.

Applied to files:

  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP8_1k1k_ctx1_gen1_tep8_bs32_eplb0_mtp0_ccb-NIXL.yaml
📚 Learning: 2025-08-20T07:43:36.447Z
Learnt from: ChristinaZ
Repo: NVIDIA/TensorRT-LLM PR: 7068
File: cpp/tensorrt_llm/kernels/moeTopKFuncs.cuh:169-172
Timestamp: 2025-08-20T07:43:36.447Z
Learning: In TensorRT-LLM MOE kernels, when processing up to 128 experts across 32 threads, each thread handles at most 4 experts (N < 5 constraint), where N represents candidates per thread rather than total system capacity.

Applied to files:

  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP8_1k1k_ctx1_gen1_tep8_bs32_eplb0_mtp0_ccb-NIXL.yaml
📚 Learning: 2025-08-18T08:42:02.640Z
Learnt from: samuellees
Repo: NVIDIA/TensorRT-LLM PR: 6974
File: tensorrt_llm/serve/scripts/benchmark_dataset.py:558-566
Timestamp: 2025-08-18T08:42:02.640Z
Learning: In TensorRT-LLM's RandomDataset (tensorrt_llm/serve/scripts/benchmark_dataset.py), when using --random-token-ids option, sequence length accuracy is prioritized over semantic correctness for benchmarking purposes. The encode/decode operations should use skip_special_tokens=True and add_special_tokens=False to ensure exact target token lengths.

Applied to files:

  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP8_1k1k_ctx1_gen1_tep8_bs32_eplb0_mtp0_ccb-NIXL.yaml
  • tests/integration/defs/perf/disagg/test_configs/wideep/perf/deepseek-r1-fp4_1k1k_ctx2_gen1_dep48_bs16_eplb288_mtp3_ccb-DEFAULT.yaml
📚 Learning: 2025-08-20T06:56:02.889Z
Learnt from: eopXD
Repo: NVIDIA/TensorRT-LLM PR: 6768
File: cpp/tensorrt_llm/batch_manager/kvCacheManager.cpp:577-579
Timestamp: 2025-08-20T06:56:02.889Z
Learning: In cpp/tensorrt_llm/batch_manager/kvCacheManager.cpp, maxSequenceLength is now enforced as a non-optional argument in the BlockManager constructor, so concerns about std::nullopt defaulting to 0 are not applicable. When windowSize > maxSequenceLength, a warning should be added instead of handling optional parameter cases.

Applied to files:

  • tests/integration/defs/perf/disagg/utils/config_validator.py
📚 Learning: 2025-11-14T11:22:03.729Z
Learnt from: nzmora-nvidia
Repo: NVIDIA/TensorRT-LLM PR: 9163
File: tensorrt_llm/_torch/auto_deploy/custom_ops/quant.py:107-113
Timestamp: 2025-11-14T11:22:03.729Z
Learning: In TensorRT-LLM AutoDeploy custom ops, when adding hardware capability checks to select between kernel implementations (e.g., cuBLAS vs. CUDA kernel), use descriptive variable names that identify the specific GPU architectures or families being targeted (e.g., `is_blackwell_geforce_or_ada`) rather than generic names like `enable_cuda_core`. This makes it clear that the code is selecting an implementation path based on hardware capabilities, not enabling/disabling hardware features.

Applied to files:

  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_1k1k_ctx1_gen4_tep8_bs32_eplb0_mtp0_ccb-NIXL.yaml
  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/Qwen3-235B-A22B-FP4_1k1k_ctx2_gen1_dep16_bs128_eplb0_mtp1_ccb-NIXL.yaml
📚 Learning: 2025-09-17T06:01:01.836Z
Learnt from: fredricz-20070104
Repo: NVIDIA/TensorRT-LLM PR: 7785
File: tests/integration/defs/perf/utils.py:321-333
Timestamp: 2025-09-17T06:01:01.836Z
Learning: In test infrastructure code for disaggregated serving tests, prefer logging errors and continuing execution rather than raising exceptions on timeout, to avoid disrupting test cleanup and causing cascading failures.

Applied to files:

  • tests/integration/defs/perf/disagg/execution/executor.py
📚 Learning: 2025-08-14T06:36:40.701Z
Learnt from: timlee0212
Repo: NVIDIA/TensorRT-LLM PR: 6886
File: tensorrt_llm/_torch/models/modeling_deepseekv3.py:0-0
Timestamp: 2025-08-14T06:36:40.701Z
Learning: In DeepSeek V3 model (tensorrt_llm/_torch/models/modeling_deepseekv3.py), the disagreement between AllReduce.__init__ guard and _compute_mlp_tp_size logic for MNNVL usage is expected by design. The AllReduce component and MLP TP-size computation intentionally use different criteria for MNNVL availability decisions.

Applied to files:

  • tests/integration/defs/perf/disagg/test_configs/disagg/perf/deepseek-r1-fp4_8k1k_ctx1_gen3_tep8_bs16_eplb0_mtp3_ccb-NIXL.yaml
📚 Learning: 2025-08-29T14:07:45.863Z
Learnt from: EmmaQiaoCh
Repo: NVIDIA/TensorRT-LLM PR: 7370
File: tests/unittest/trt/model_api/test_model_quantization.py:24-27
Timestamp: 2025-08-29T14:07:45.863Z
Learning: In TensorRT-LLM's CI infrastructure, pytest skip markers (pytest.mark.skip) are properly honored even when test files have __main__ blocks that call test functions directly. The testing system correctly skips tests without requiring modifications to the __main__ block execution pattern.

Applied to files:

  • tests/integration/defs/pytest.ini
🧬 Code graph analysis (1)
tests/integration/defs/perf/disagg/execution/subprocess_utils.py (1)
tests/integration/defs/perf/disagg/utils/logger.py (1)
  • error (89-91)
🪛 Ruff (0.14.7)
tests/integration/defs/perf/disagg/utils/common.py

124-124: f-string without any placeholders

Remove extraneous f prefix

(F541)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Pre-commit Check

Comment thread tests/integration/defs/perf/disagg/compare_backends.py
@zerollzeng

Copy link
Copy Markdown
Collaborator

LGTM

Comment thread examples/disaggregated/slurm/benchmark/submit.py Outdated
Comment thread tests/integration/defs/perf/disagg/execution/executor.py
@fredricz-20070104
fredricz-20070104 force-pushed the feature/fz_gb300 branch 2 times, most recently from 3f68bc3 to db619e5 Compare December 8, 2025 09:52
@fredricz-20070104 fredricz-20070104 changed the title [feat][chore] Add GB300 dlcluster support since it doesn't support segment [feat][chore] Add GB300 support since it does not support segment Dec 8, 2025
@fredricz-20070104 fredricz-20070104 changed the title [feat][chore] Add GB300 support since it does not support segment [None][chore] Add GB300 support since it does not support segment Dec 8, 2025
@fredricz-20070104

Copy link
Copy Markdown
Collaborator Author

/bot run --skip-test

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #27295 [ run ] triggered by Bot. Commit: e80a7a7

Comment thread examples/disaggregated/slurm/benchmark/submit.py Outdated
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #27295 [ run ] completed with state SUCCESS. Commit: e80a7a7
/LLM/main/L0_MergeRequest_PR pipeline #20846 (Partly Tested) completed with status: 'SUCCESS'

@fredricz-20070104
fredricz-20070104 force-pushed the feature/fz_gb300 branch 2 times, most recently from 5d691d9 to b937612 Compare December 9, 2025 05:05
@fredricz-20070104

Copy link
Copy Markdown
Collaborator Author

/bot reuse-pipeline

@NVIDIA NVIDIA deleted a comment from tensorrt-cicd Dec 9, 2025
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #27431 [ reuse-pipeline ] triggered by Bot. Commit: b937612

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #27422 [ run ] completed with state ABORTED. Commit: b937612
LLM/main/L0_MergeRequest_PR #20953 (Blue Ocean) completed with status: ABORTED

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #27431 [ reuse-pipeline ] completed with state SUCCESS. Commit: b937612
Can't reuse PR_Github #27422 (Partly Tested) with status: ABORTED

Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
@fredricz-20070104

Copy link
Copy Markdown
Collaborator Author

/bot reuse-pipeline -

@fredricz-20070104

Copy link
Copy Markdown
Collaborator Author

/bot --resuse-pipeline

@github-actions

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)]

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. Examples: "A10-PyTorch-1, xxx". 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. 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.

--post-merge (OPTIONAL) : Run the L0 post-merge pipeline instead of the ordinary L0 pre-merge pipeline.

--extra-stage "H100_PCIe-TensorRT-Post-Merge-1, xxx" (OPTIONAL) : Run the ordinary L0 pre-merge pipeline and specified test stages. Examples: --extra-stage "H100_PCIe-TensorRT-Post-Merge-1, xxx".

--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.

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.

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #27771 Bot args parsing error: usage: /bot [-h]
{run,kill,skip,submit,reviewers,reuse-pipeline,reuse-review} ...
/bot: error: unrecognized arguments: -

@fredricz-20070104

Copy link
Copy Markdown
Collaborator Author

/bot reuse-pipeline

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #27773 [ reuse-pipeline ] triggered by Bot. Commit: cb8ba85

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #27773 [ reuse-pipeline ] completed with state SUCCESS. Commit: cb8ba85
Reusing PR_Github #27434 (Partly Tested) for commit cb8ba85

@fredricz-20070104
fredricz-20070104 merged commit 341cb1a into NVIDIA:main Dec 11, 2025
5 checks passed
usberkeley pushed a commit to usberkeley/TensorRT-LLM that referenced this pull request Dec 11, 2025
…IDIA#9731)

Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
codego7250 pushed a commit to codego7250/TensorRT-LLM that referenced this pull request Dec 11, 2025
…IDIA#9731)

Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
@fredricz-20070104
fredricz-20070104 deleted the feature/fz_gb300 branch December 12, 2025 10:30
codego7250 pushed a commit to codego7250/TensorRT-LLM that referenced this pull request Dec 13, 2025
…IDIA#9731)

Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
sherry-1001 pushed a commit to sherry-1001/TensorRT-LLM that referenced this pull request Dec 16, 2025
…IDIA#9731)

Signed-off-by: FredricZ-2007 <226039983+fredricz-20070104@users.noreply.github.com>
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