feat(cuda.core): add cluster scheduling policy to LaunchConfig - #2703
Conversation
Expose CU_LAUNCH_ATTRIBUTE_CLUSTER_SCHEDULING_POLICY_PREFERENCE on LaunchConfig via ClusterSchedulingPolicyType, with validation, CC >= 9.0 gating, and tests mapping to the native launch attribute. Closes NVIDIA#2629 Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Omar Atie <atiaomar1978@gmail.com>
Assert LaunchConfig emits both CU_LAUNCH_ATTRIBUTE_CLUSTER_DIMENSION and CU_LAUNCH_ATTRIBUTE_CLUSTER_SCHEDULING_POLICY_PREFERENCE when set. Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Omar Atie <atiaomar1978@gmail.com>
Use init_cuda with an inline noop kernel so test_launcher.py does not depend on the get_saxpy_kernel_cubin fixture from test_module.py. Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Omar Atie <atiaomar1978@gmail.com>
…rough Align NVIDIA#2629 tests with reviewer guidance: round-trip each policy on LaunchConfig and exercise launch() for DEFAULT/SPREAD/LOAD_BALANCING. Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Omar Atie <atiaomar1978@gmail.com>
b00cd6f to
c6c283b
Compare
|
Hi @lijinf2 — when you have a moment, could you please review this PR? This is the signed re-issue of #2702 (GitHub would not reopen #2668). It implements the plan we aligned on in #2629: Tests follow your guidance (getter/setter plus a I do not have permission to set assignee or milestone on this account; Sorry for the force-push on this branch. I know rewriting published history is against the project rules. I did it only so the commits would be SSH-signed and show as Verified on GitHub. I will not force-push again. |
|
/ok to test c6c283b |
|
CI test_subpackage_exports_are_documented[typing] failed because the new typing export was missing from docs/source/*.rst. Signed-off-by: Omar Atie <atiaomar1978@gmail.com>
|
Posted a docs fix for the CI failure on
RunPod (RTX 2000 Ada, CC 8.9 — L4 community was out of stock; same compute capability as the failing L4 jobs):
PR metadata is now set ( |
|
Hi @lijinf2 — could you please trigger CI again on The previous Why CI failedEvery GPU job died on the same assertion — not on
Why it works again
That name is now present in RunPod replay (pod
|
|
/ok to test 39c9fc0 |
|
@atiaomar1978-hub Hey, there are 7 test cases, and it looks like some are redundant. Could we remove redundancy and merge them into at most 3 cases to reduce code maintenance overhead going forward? |
|
I will do now @lijinf2 |
Merge seven overlapping LaunchConfig cluster-scheduling tests into mapping, rejection, and Hopper launch smoke to cut maintenance. Signed-off-by: Omar Atie <atiaomar1978@gmail.com>
|
@lijinf2 folded the seven cluster-policy tests into three in
Could you |
|
/ok to test 1a78ad5 |
CUDA 13.0.2's CUlaunchAttributeValue setter reads .value, so a raw int breaks native LaunchConfig conversion in CI. Signed-off-by: Omar Atie <atiaomar1978@gmail.com>
|
@lijinf2 CUDA 13.0.2 jobs failed on RunPod replay (RTX 2000 Ada, bindings 13.0.3): mapping + reject PASSED; smoke SKIPPED on CC 8.9 (already passed on CI H100). Could you please |
…-2629-signed Signed-off-by: Omar Atie <atiaomar1978@gmail.com>
Description
closes #2629
Add
cluster_scheduling_policy_preferencetoLaunchConfig, mapping toCU_LAUNCH_ATTRIBUTE_CLUSTER_SCHEDULING_POLICY_PREFERENCEviaClusterSchedulingPolicyType(DEFAULT,SPREAD,LOAD_BALANCING).Unlike stream synchronization policy (#2628), cluster scheduling policy is
documented as valid for graph nodes and kernel launches, so
LaunchConfigisthe correct surface.
This is a signed re-issue of #2702 (same change, linear history on current
main). Commits are SSH-signed. GitHub would not reopen #2668.Checklist
Test plan
cluster+ policy attributeslaunch()smoke for all three policies