Skip to content

[None][infra] Select UCX env for perf sanity by cluster name - #16725

Open
chuangz0 wants to merge 5 commits into
NVIDIA:mainfrom
chuangz0:ci_cluster_specific_env
Open

[None][infra] Select UCX env for perf sanity by cluster name#16725
chuangz0 wants to merge 5 commits into
NVIDIA:mainfrom
chuangz0:ci_cluster_specific_env

Conversation

@chuangz0

@chuangz0 chuangz0 commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

UCX transport settings depend on the cluster's network fabric, not just the GPU model, and the same CI stage can land on different clusters (frontend auto:* platforms are load-balanced in bloom's SlurmConfig).

Add jenkins/scripts/perf/cluster_env.py with a (cluster, GPU) -> UCX env rule table shared by the CI and local submit scripts:

  • all clusters: unset UCX_CUDA_IPC_ENABLE_MNNVL UCX_TLS UCX_NET_DEVICES
  • nsc-svg: pin UCX_NET_DEVICES to the usable mlx5 ports
  • aws-cmh: pin UCX_TLS=cuda_ipc,cuda_copy,sm,self,tcp
  • aws-dfw: exclude gdr_copy

Cluster patterns are prefix wildcards so both the bloom clusterName (CI) and the cluster's slurm.conf ClusterName (e.g. oci-nrt -> oci-nrt-cs-001) match. L0_Test.groovy passes the resolved partition.clusterName via --cluster-name; the local path takes it from the run_disagg.sh cluster conf or --cluster-name, falling back to detection via SLURM_CLUSTER_NAME / scontrol.

Dev Engineer Review

  • Added cluster- and GPU-aware UCX environment selection for PerfSanity disaggregated jobs:
    • New module jenkins/scripts/perf/cluster_env.py:
      • BASE_UCX_UNSET clears UCX_CUDA_IPC_ENABLE_MNNVL, UCX_TLS, and UCX_NET_DEVICES to prevent UCX leakage from the parent environment.
      • UCX_ENV_RULES ordered first-match, case-insensitive wildcard rules keyed by (cluster_name, gpu_type) using prefix wildcards for cluster patterns to match both bloom cluster names and Slurm ClusterName variants.
      • Concrete rules include:
        • gcp-nrt*: pins UCX_NET_DEVICES to rocep* ports and sets IB/RoCE tuning vars.
        • nsc-svg*: pins UCX_NET_DEVICES to the correct mlx5 ports (mlx5_* set).
        • aws-cmh*: pins UCX_TLS=cuda_ipc,cuda_copy,sm,self,tcp.
        • aws-dfw*: excludes gdr_copy via UCX_TLS=^gdr_copy.
        • Default rule: base unset only.
      • GPU type extraction is constrained to KNOWN_GPU_TYPES via:
        • gpu_type_from_stage_name(stage_name) (substring scan, ordered to avoid collisions like GB200 vs B200)
        • gpu_type_from_supported_gpus(supported_gpus) (membership against metadata.supported_gpus)
  • Propagated --cluster-name through CI and submit flows so UCX selection can use the resolved cluster name:
    • jenkins/L0_Test.groovy: passes --cluster-name ${partition.clusterName} into the generated multi-node srun/SLURM launch.
    • jenkins/scripts/perf/submit.py: adds --cluster-name (default ""), derives gpu_type from --stage-name, and uses get_ucx_tls_cmd(cluster_name, gpu_type) when constructing the worker/gen/benchmark pytestCommand* env exports.
    • jenkins/scripts/perf/local/submit.py: adds --cluster-name, implements detect_cluster_name() (prefers SLURM_CLUSTER_NAME, otherwise parses scontrol show config’s ClusterName), derives gpu_type from config.metadata.supported_gpus, and uses get_ucx_tls_cmd(cluster_name, gpu_type).
    • jenkins/scripts/perf/local/run_disagg.sh: introduces optional cluster_name config and conditionally includes --cluster-name "$cluster_name" in the submit.py invocation only when set.
    • jenkins/scripts/perf/local/configs/example.conf: documents the new cluster_name option and how it relates to cluster_env.py rules.
  • Updated test-waiver list:
    • tests/integration/test_lists/waives.txt: removed the SKIP waiver for perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-b200_deepseek-r1-fp4_8k1k_con1536_ctx1_dep4_gen1_dep8_eplb0_mtp1_ccb-NIXL] (nvbugs/6478615), per the intended fix from cluster-specific UCX selection.

QA Engineer Review

  • Test-list-only change:
    • Modified tests/integration/test_lists/waives.txt
      • Removed 1 SKIP entry for:
        • perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-b200_deepseek-r1-fp4_8k1k_con1536_ctx1_dep4_gen1_dep8_eplb0_mtp1_ccb-NIXL] (nvbugs/6478615)
  • Verdict: needs follow-up — CBTS coverage data is unavailable.

Description

Test Coverage

PR Checklist

Please review the following before submitting your PR:

  • PR description clearly explains what and why. If using CodeRabbit's summary, please make sure it makes sense.

  • PR Follows TRT-LLM CODING GUIDELINES to the best of your knowledge.

  • Test cases are provided for new code paths (see test instructions)

  • If PR introduces API changes, an appropriate PR label is added - either api-compatible or api-breaking. For api-breaking, include BREAKING in the PR title.

  • Any new dependencies have been scanned for license and vulnerabilities

  • CODEOWNERS updated if ownership changes

  • Documentation updated as needed

  • Update tava architecture diagram if there is a significant design change in PR.

  • The reviewers assigned automatically/manually are appropriate for the PR.

  • Please check this after reviewing the above items as appropriate for this PR.

GitHub Bot Help

To see a list of available CI bot commands, please comment /bot help.

@chuangz0
chuangz0 requested a review from a team as a code owner July 22, 2026 10:28
@chuangz0
chuangz0 requested review from EmmaQiaoCh and mlefeb01 July 22, 2026 10:28
@chuangz0
chuangz0 force-pushed the ci_cluster_specific_env branch from 014bcd8 to 8f91714 Compare July 22, 2026 10:29
@chuangz0
chuangz0 requested a review from chenfeiz0326 July 22, 2026 10:32
@chuangz0
chuangz0 requested review from a team as code owners July 22, 2026 10:32
@coderabbitai

coderabbitai Bot commented Jul 22, 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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 79dd2367-dffa-49ca-9390-f4fc4ae6241e

📥 Commits

Reviewing files that changed from the base of the PR and between 27827f0 and 0137d47.

📒 Files selected for processing (7)
  • jenkins/L0_Test.groovy
  • jenkins/scripts/perf/cluster_env.py
  • jenkins/scripts/perf/local/configs/example.conf
  • jenkins/scripts/perf/local/run_disagg.sh
  • jenkins/scripts/perf/local/submit.py
  • jenkins/scripts/perf/submit.py
  • tests/integration/test_lists/waives.txt
🚧 Files skipped from review as they are similar to previous changes (6)
  • jenkins/scripts/perf/local/run_disagg.sh
  • jenkins/scripts/perf/local/configs/example.conf
  • jenkins/L0_Test.groovy
  • jenkins/scripts/perf/submit.py
  • tests/integration/test_lists/waives.txt
  • jenkins/scripts/perf/cluster_env.py

Walkthrough

The PR adds cluster-aware UCX environment selection for local and Jenkins PerfSanity Slurm submissions. It introduces shared cluster/GPU matching helpers, propagates optional cluster names through launchers, detects Slurm cluster names locally, and removes one integration test waiver.

Changes

Cluster-aware UCX configuration

Layer / File(s) Summary
UCX rule selection
jenkins/scripts/perf/cluster_env.py
Adds ordered cluster/GPU matching rules, GPU token extraction helpers, and UCX command construction.
Local cluster detection and submission
jenkins/scripts/perf/local/configs/example.conf, jenkins/scripts/perf/local/run_disagg.sh, jenkins/scripts/perf/local/submit.py
Adds optional cluster configuration, Slurm cluster detection, supported-GPU selection, and shared UCX environment generation for local submissions.
Jenkins orchestration wiring
jenkins/L0_Test.groovy, jenkins/scripts/perf/submit.py, tests/integration/test_lists/waives.txt
Passes cluster names through Jenkins and performance submission flows, derives GPU types from stage names, and removes one integration waiver.

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

Sequence Diagram(s)

sequenceDiagram
  participant Jenkins
  participant Submit as perf/submit.py
  participant ClusterEnv as cluster_env.py
  participant Slurm
  Jenkins->>Submit: pass stage name and cluster name
  Submit->>ClusterEnv: derive GPU type and select UCX settings
  ClusterEnv-->>Submit: return UCX environment prefix
  Submit->>Slurm: launch workers with UCX settings
Loading

Suggested reviewers: mlefeb01, emmaqiaoch, brnguyen2, larryxfly, chenfeiz0326

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR includes a useful summary, but the required Description and Test Coverage sections are left empty. Add concise Description and Test Coverage sections that explain the problem, solution, and relevant tests or validation.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title matches the main change and follows the required [ticket][type] summary format.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@chuangz0

Copy link
Copy Markdown
Collaborator Author

/bot run --stage-list "DGX_B200-16_GPUs-2_Nodes-PyTorch-Disagg-PerfSanity-FUNCTIONAL-ONLY-CTX1-NODE1-GPU4-GEN1-NODE1-GPU8"

@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 (1)
jenkins/scripts/perf/cluster_env.py (1)

58-91: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Document the public helper contracts in Google style.

These imported helpers omit Args/Returns documentation, including empty-result and wildcard-matching behavior.

🤖 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 `@jenkins/scripts/perf/cluster_env.py` around lines 58 - 91, Update the public
helper docstrings for gpu_type_from_stage_name, gpu_type_from_supported_gpus,
and get_ucx_tls_cmd to use Google-style Args and Returns sections. Document
accepted inputs, the empty-string fallback behavior, and for get_ucx_tls_cmd
explain wildcard matching against cluster and GPU patterns and the returned
shell-prefix format.

Source: Coding guidelines

🤖 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 `@jenkins/scripts/perf/local/run_disagg.sh`:
- Line 70: Add the standard NVIDIA copyright header with the current year at the
top of the modified script, before the existing shell content; leave the
cluster_name initialization unchanged.

---

Nitpick comments:
In `@jenkins/scripts/perf/cluster_env.py`:
- Around line 58-91: Update the public helper docstrings for
gpu_type_from_stage_name, gpu_type_from_supported_gpus, and get_ucx_tls_cmd to
use Google-style Args and Returns sections. Document accepted inputs, the
empty-string fallback behavior, and for get_ucx_tls_cmd explain wildcard
matching against cluster and GPU patterns and the returned shell-prefix format.
🪄 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: b568251b-1320-47a1-a913-b4e12a6e6213

📥 Commits

Reviewing files that changed from the base of the PR and between 9cd6a49 and b9d5992.

📒 Files selected for processing (7)
  • jenkins/L0_Test.groovy
  • jenkins/scripts/perf/cluster_env.py
  • jenkins/scripts/perf/local/configs/example.conf
  • jenkins/scripts/perf/local/run_disagg.sh
  • jenkins/scripts/perf/local/submit.py
  • jenkins/scripts/perf/submit.py
  • tests/integration/test_lists/waives.txt
💤 Files with no reviewable changes (1)
  • tests/integration/test_lists/waives.txt

Comment thread jenkins/scripts/perf/local/run_disagg.sh
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #60966 [ run ] triggered by Bot. Commit: b9d5992 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #60966 [ run ] completed with state FAILURE. Commit: b9d5992
/LLM/main/L0_MergeRequest_PR pipeline #49228 (Partly Tested) 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

@BowenFu BowenFu left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CI perf-sanity infra only (cluster-aware UCX env selection + waiver removal); no tensorrt_llm/** or cpp/** paths. LGTM.

@chuangz0 chuangz0 changed the title [None][infra] Select UCX env for perf sanity by cluster name instead … [None][infra] Select UCX env for perf sanity by cluster name Jul 23, 2026
@chuangz0

Copy link
Copy Markdown
Collaborator Author

/bot run --stage-list "DGX_B200-16_GPUs-2_Nodes-PyTorch-Disagg-PerfSanity-FUNCTIONAL-ONLY-CTX1-NODE1-GPU4-GEN1-NODE1-GPU8" --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #61243 [ run ] triggered by Bot. Commit: b9d5992 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #61243 [ run ] completed with state FAILURE. Commit: b9d5992
/LLM/main/L0_MergeRequest_PR pipeline #49480 (Partly Tested) 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

@chuangz0
chuangz0 force-pushed the ci_cluster_specific_env branch from b9d5992 to 83d14fa Compare July 23, 2026 09:32
@chuangz0

Copy link
Copy Markdown
Collaborator Author

/bot run --stage-list "DGX_B200-16_GPUs-2_Nodes-PyTorch-Disagg-PerfSanity-FUNCTIONAL-ONLY-CTX1-NODE1-GPU4-GEN1-NODE1-GPU8" --disable-fail-fast

@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 `@jenkins/scripts/perf/local/submit.py`:
- Around line 354-359: Update the subprocess call in the configuration lookup
try block to invoke scontrol through a deployment-trusted absolute executable
path, or validate the resolved executable path before use. Keep the existing
arguments and timeout behavior unchanged, and do not suppress Ruff S607.
🪄 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: 5b447329-5f5f-4081-be7c-2f698e346788

📥 Commits

Reviewing files that changed from the base of the PR and between b9d5992 and 83d14fa.

📒 Files selected for processing (7)
  • jenkins/L0_Test.groovy
  • jenkins/scripts/perf/cluster_env.py
  • jenkins/scripts/perf/local/configs/example.conf
  • jenkins/scripts/perf/local/run_disagg.sh
  • jenkins/scripts/perf/local/submit.py
  • jenkins/scripts/perf/submit.py
  • tests/integration/test_lists/waives.txt
💤 Files with no reviewable changes (1)
  • tests/integration/test_lists/waives.txt
🚧 Files skipped from review as they are similar to previous changes (5)
  • jenkins/scripts/perf/local/run_disagg.sh
  • jenkins/L0_Test.groovy
  • jenkins/scripts/perf/cluster_env.py
  • jenkins/scripts/perf/local/configs/example.conf
  • jenkins/scripts/perf/submit.py

Comment thread jenkins/scripts/perf/local/submit.py
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #61266 [ run ] triggered by Bot. Commit: 83d14fa Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #61266 [ run ] completed with state FAILURE. Commit: 83d14fa
/LLM/main/L0_MergeRequest_PR pipeline #49502 (Partly Tested) 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

@chuangz0
chuangz0 force-pushed the ci_cluster_specific_env branch from 83d14fa to 191be00 Compare July 23, 2026 10:56
@chuangz0

Copy link
Copy Markdown
Collaborator Author

/bot run --stage-list "DGX_B200-16_GPUs-2_Nodes-PyTorch-Disagg-PerfSanity-FUNCTIONAL-ONLY-CTX1-NODE1-GPU4-GEN1-NODE1-GPU8*" --disable-fail-fast

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

🧹 Nitpick comments (1)
jenkins/scripts/perf/local/submit.py (1)

349-350: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add the return annotation to the new helper.

Declare this function as def detect_cluster_name() -> str:. As per coding guidelines, annotate every function. Based on learnings, missing annotations in CI/infra Python may be deferred rather than block this functional PR.

🤖 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 `@jenkins/scripts/perf/local/submit.py` around lines 349 - 350, Update the
detect_cluster_name function signature to include the str return annotation,
preserving its existing behavior and implementation.

Sources: Coding guidelines, Learnings

🤖 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 `@jenkins/scripts/perf/local/submit.py`:
- Around line 687-690: Guard the GPU and cluster detection in the submission
flow so it runs only when runtime_mode equals "disaggregated". Move
supported_gpus/gpu_type derivation and cluster_name assignment under that
condition, preserving their existing sources and leaving aggregated submissions
without Slurm detection.
- Around line 361-363: Update the Slurm config parsing loop to match the exact
ClusterName key and only split and return when the line contains an "="
separator; otherwise skip malformed lines so the existing best-effort fallback
remains reachable.

---

Nitpick comments:
In `@jenkins/scripts/perf/local/submit.py`:
- Around line 349-350: Update the detect_cluster_name function signature to
include the str return annotation, preserving its existing behavior and
implementation.
🪄 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: b2088bed-120a-4696-aab3-b4ad985b791f

📥 Commits

Reviewing files that changed from the base of the PR and between 83d14fa and 191be00.

📒 Files selected for processing (7)
  • jenkins/L0_Test.groovy
  • jenkins/scripts/perf/cluster_env.py
  • jenkins/scripts/perf/local/configs/example.conf
  • jenkins/scripts/perf/local/run_disagg.sh
  • jenkins/scripts/perf/local/submit.py
  • jenkins/scripts/perf/submit.py
  • tests/integration/test_lists/waives.txt
💤 Files with no reviewable changes (1)
  • tests/integration/test_lists/waives.txt
🚧 Files skipped from review as they are similar to previous changes (5)
  • jenkins/L0_Test.groovy
  • jenkins/scripts/perf/local/configs/example.conf
  • jenkins/scripts/perf/local/run_disagg.sh
  • jenkins/scripts/perf/cluster_env.py
  • jenkins/scripts/perf/submit.py

Comment thread jenkins/scripts/perf/local/submit.py Outdated
Comment thread jenkins/scripts/perf/local/submit.py Outdated
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #61279 [ run ] triggered by Bot. Commit: 191be00 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #61279 [ run ] completed with state FAILURE. Commit: 191be00
/LLM/main/L0_MergeRequest_PR pipeline #49513 (Partly Tested) 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

@chuangz0
chuangz0 force-pushed the ci_cluster_specific_env branch from 7912d80 to 27827f0 Compare July 28, 2026 03:25
@chuangz0

Copy link
Copy Markdown
Collaborator Author

/bot run --stage-list "DGX_B200-16_GPUs-2_Nodes-PyTorch-Disagg-PerfSanity-FUNCTIONAL-ONLY-CTX1-NODE1-GPU4-GEN1-NODE1-GPU8*" --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62082 [ run ] triggered by Bot. Commit: 27827f0 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62082 [ run ] completed with state SUCCESS. Commit: 27827f0
/LLM/main/L0_MergeRequest_PR pipeline #50265 (Partly Tested) completed with status: 'SUCCESS'

CI Report

Link to invocation

chuangz0 added 5 commits July 28, 2026 14:28
…of GPU type

UCX transport settings depend on the cluster's network fabric, not just
the GPU model, and the same CI stage can land on different clusters
(frontend auto:* platforms are load-balanced in bloom's SlurmConfig).

Add jenkins/scripts/perf/cluster_env.py with a (cluster, GPU) -> UCX env
rule table shared by the CI and local submit scripts:
- all clusters: unset UCX_CUDA_IPC_ENABLE_MNNVL UCX_TLS UCX_NET_DEVICES
- nsc-svg: pin UCX_NET_DEVICES to the usable mlx5 ports
- aws-cmh: pin UCX_TLS=cuda_ipc,cuda_copy,sm,self,tcp
- aws-dfw: exclude gdr_copy

Cluster patterns are prefix wildcards so both the bloom clusterName (CI)
and the cluster's slurm.conf ClusterName (e.g. oci-nrt -> oci-nrt-cs-001)
match. L0_Test.groovy passes the resolved partition.clusterName via
--cluster-name; the local path takes it from the run_disagg.sh cluster
conf or --cluster-name, falling back to detection via SLURM_CLUSTER_NAME
/ scontrol.

Signed-off-by: Chuang Zhu <111838961+chuangz0@users.noreply.github.com>
Remove the waive for
disagg_upload-gen_only-b200_deepseek-r1-fp4_8k1k_con1536_ctx1_dep4_gen1_dep8_eplb0_mtp1_ccb-NIXL
(https://nvbugs/6478615): the failure is addressed by the
cluster-specific UCX env selection introduced in the previous commit.

Signed-off-by: Chuang Zhu <111838961+chuangz0@users.noreply.github.com>
- Add NVIDIA copyright header to run_disagg.sh
- Use absolute path /usr/bin/scontrol to avoid PATH-dependent lookup
- Harden ClusterName parsing with partition() to tolerate malformed lines
- Guard GPU/cluster detection to run only for disaggregated mode
- Expand cluster_env.py public function docstrings to Google style

Signed-off-by: Chuang Zhu <111838961+chuangz0@users.noreply.github.com>
Signed-off-by: Chuang Zhu <111838961+chuangz0@users.noreply.github.com>
Signed-off-by: Chuang Zhu <111838961+chuangz0@users.noreply.github.com>
@chuangz0
chuangz0 force-pushed the ci_cluster_specific_env branch from 99f0625 to 0137d47 Compare July 28, 2026 06:28
@chuangz0

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62136 [ run ] triggered by Bot. Commit: 0137d47 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62136 [ run ] completed with state FAILURE. Commit: 0137d47
/LLM/main/L0_MergeRequest_PR pipeline #50314 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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants