TL/CUDA: fix NVLS on fabric cluster UUID#1308
Conversation
|
/build |
|
| Filename | Overview |
|---|---|
| src/utils/ucc_proc_info.h | Adds UCC_GPU_FABRIC_CLUSTER_UUID_LEN, fabric_cluster_uuid[16] field to ucc_gpu_info_t, and ucc_gpu_fabric_cluster_uuid_is_valid() inline helper; also fixes the stray space before ucc_nic_info. |
| src/components/topo/cuda/ucc_sysinfo_cuda.c | Zero-initialises fabric_cluster_uuid, adds a compile-time size assertion against NVML's clusterUuid, and copies it on a successful fabric-state query; extends the debug log to print the UUID in standard UUID format. |
| src/components/topo/ucc_topo.c | Adds cluster-UUID validity and cross-rank equality checks before the existing clique_id/partition_id comparisons, correctly blocking NVLS activation when UUIDs are all-zero or mismatched. |
| src/components/topo/ucc_topo.h | Doc-comment update for ucc_topo_is_single_nvlink_domain to reflect the new cluster-UUID requirement alongside the existing clique_id/partition_id checks. |
Reviews (3): Last reviewed commit: "TL/CUDA: apply review fixes for NVLS UUI..." | Re-trigger Greptile
|
👀 Investigating |
|
🤖 CI Triage Agent — The logs are clear and the root cause is immediately evident. No further investigation is needed. Summary: Codestyle/lint check failed because one commit in PR #1308 has a non-conforming title: Root cause: The The other commit in the PR ( Implicated commit: File: Suggested fix: Amend (or interactively rebase) the offending commit to give it a conforming title. Since the substantive change is a CUDA NVLS topology fix, an appropriate title would be something like: Then force-push the branch: git rebase -i HEAD~2 # mark the 'Apply suggestions...' commit as 'reword'
# Change the title to e.g. "TL/CUDA: apply review suggestions for NVLS cluster UUID topo check"
git push --force-with-lease origin fix/nvls-cluster-uuid-topo-checkThe new title must start with one of the allowed prefixes ( Related: PR #1308 (
|
NVML cliqueId/partitionId are unique only within a fabric cluster, so unrelated standalone DGX nodes can report the same cliqueId/partitionId with different fabrics and silently pass ucc_topo_is_single_nvlink_domain. Multinode NVLS init then crashes late at cuMulticastAddDevice and wedges team creation. Read clusterUuid (nvmlGpuFabricInfo_v2_t, the globally-unique fabric identifier) into ucc_gpu_info_t.fabric_cluster_uuid and require it to be non-all-zero and identical across ranks before approving a single NVLink domain. Verified on gaia DGX H100 where NVML reports all-zero clusterUuid with state=COMPLETED: the topo guard now correctly disables multinode NVLS instead of failing late. Signed-off-by: Ilya Kryukov <ikryukov@nvidia.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
a71bf3c to
25f6351
Compare
|
/build |
What
Fix silent multinode NVLS crash on standalone DGX nodes.
Why
NVML
cliqueId/partitionIdare unique only within a fabric cluster, so unrelated DGX nodes can collide on these values, falsely passucc_topo_is_single_nvlink_domain, and crash later incuMulticastAddDevice.How
Read
clusterUuid(globally unique) fromnvmlGpuFabricInfo_v2_tintoucc_gpu_info_t.fabric_cluster_uuidand require it to be non-all-zero and matching across ranks.