Describe the bug
A multi-node NVCF deployment using kai-scheduler can partially schedule into an NVLink partition that cannot satisfy the full worker group. One pod schedules, while the follower pod remains Pending because kai-scheduler reports no nodes satisfy the affinity constraints.
This makes multi-node NVLink-optimized deployments unreliable. Redeploy often works only because placement lands on a different partition, so the current workaround is nondeterministic.
Steps or code to reproduce bug
- Partially saturate a GPU clique on an NVLink-optimized cluster with kai-scheduler enabled, with another clique being empty
- Deploy multi-node function onto the cluster with
dra.nvcf.nvidia.io/required-nvlink-domain-index: "0" annotations on all Pod metadata that should be in a single clique
- Pods are scheduled via bin-packing into most saturated clique, then are stuck in Pending
Expected behavior
NVCF/NVCA should perform gang-aware placement at the NVLink partition/clique level. It should either atomically place all required nodes onto a partition with enough free nodes, or queue/fail cleanly before partially binding pods.
Additional context
By submitting this issue, you agree to follow our code of conduct and our contributing guidelines.
Describe the bug
A multi-node NVCF deployment using kai-scheduler can partially schedule into an NVLink partition that cannot satisfy the full worker group. One pod schedules, while the follower pod remains Pending because kai-scheduler reports no nodes satisfy the affinity constraints.
This makes multi-node NVLink-optimized deployments unreliable. Redeploy often works only because placement lands on a different partition, so the current workaround is nondeterministic.
Steps or code to reproduce bug
dra.nvcf.nvidia.io/required-nvlink-domain-index: "0"annotations on all Pod metadata that should be in a single cliqueExpected behavior
NVCF/NVCA should perform gang-aware placement at the NVLink partition/clique level. It should either atomically place all required nodes onto a partition with enough free nodes, or queue/fail cleanly before partially binding pods.
Additional context
By submitting this issue, you agree to follow our code of conduct and our contributing guidelines.