fix(inference): recognize Spark dual-controller QSFP - #8645
Conversation
📝 WalkthroughWalkthroughThe detector treats the DGX Spark dual-controller PCI rail pair as one QSFP port. Topology validation reports observed physical-port identifiers when candidate rails do not match. ChangesDGX Spark QSFP detection
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
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 `@src/lib/inference/serving/managed-cluster-topology.test.ts`:
- Around line 479-487: Update the test case around qualificationInput so the
physical-port IDs are assigned in reverse order relative to the expected
message. Keep the expected fabric-multiple message sorted lexicographically,
ensuring qualifyManagedClusterTopology must sort observed port identities for
the assertion to pass.
🪄 Autofix
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: d371fc4d-cd68-4cf2-9a1b-5402a0a7d654
📒 Files selected for processing (4)
src/lib/inference/serving/managed-cluster-discovery.test.tssrc/lib/inference/serving/managed-cluster-discovery.tssrc/lib/inference/serving/managed-cluster-topology.test.tssrc/lib/inference/serving/managed-cluster-topology.ts
PR Review Advisor — No blocking findings reportedAdvisor assessment: No blocking advisor findings reported Model lanes
2 terminology differences from the second opinionAdvisory only. These are normalized differences from the primary terminology receipt.
2 additional E2E selections from the second opinionAdvisory only. The primary lane did not select these E2E jobs or targets.
Second-opinion terminology and E2E selections are advisory. Live E2E does not run automatically for pull requests. 3 semantic terminology decisionsTerminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.
E2E guidanceAdvisory only. A maintainer can dispatch the default E2E suite against this exact revision. Recommended E2E: This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge. |
cv
left a comment
There was a problem hiding this comment.
src/lib/inference/serving/managed-cluster-topology.ts:361 reports the observed physical-port IDs but does not identify which node failed qualification. Because validateNodeRails returns the same message for the controller and every peer, users cannot determine which DGX Spark has the incorrect cable topology. This does not satisfy issue #8520's accepted requirement to name the per-node observation. Include an unambiguous node identifier in this failure and add regression tests that trigger the mismatch on the local node and a peer, asserting the correct node and sorted physical-port IDs.
|
The diagnostic now identifies the failing node, with regression coverage for both local and peer nodes and deterministic port ordering. |
94ce1fe to
1eacad8
Compare
|
Rebased on current main. The 62 focused tests and CLI typecheck still pass. @coderabbitai review |
|
|
1eacad8 to
db1baa5
Compare
Fixes NVIDIA#8520 Signed-off-by: Deepak Jain <deepujain@gmail.com>
Signed-off-by: Deepak Jain <deepujain@gmail.com>
Signed-off-by: Deepak Jain <deepujain@gmail.com>
Signed-off-by: Deepak Jain <deepujain@gmail.com>
Signed-off-by: Deepak Jain <deepujain@gmail.com>
f7f1c39 to
06caa69
Compare
|
The local and peer mismatch cases now identify the failing node and report sorted physical-port IDs. The branch is current with main, and the focused 62-test run plus CLI typecheck pass. Could you take another look at 10822e3? |
Summary
Recognize the verified DGX Spark dual-controller PCI pair as one physical QSFP connector. Before this change, managed-cluster discovery rejected the shipped two-rail stacking topology as multiple physical ports; after it, the pair qualifies while other distinct-port combinations remain rejected.
Related Issue
Fixes #8520
Changes
0000:01:00.0and0002:01:00.0ConnectX-7 functions to one DGX Spark physical-port identity during host qualification.Type of Change
Quality Gates
Documentation Writer Review
no-docs-neededDGX Station Hardware Evidence
scripts/prepare-dgx-station-host.shis unchanged.Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run validate:prpassed after refreshingorigin/mainwhen hooks were skipped or unavailablebuild:cli, the two-file run (62 passed), and pre-pushtypecheck:clipassed at contributor head06caa6982; exact head10822e338adds only the verified upstream branch update.npm run docsbuilds without warnings (doc changes only)Signed-off-by: Deepak Jain deepujain@gmail.com