feat(recipe): add OKE GB200 perf check#1233
Conversation
|
Note Reviews pausedIt 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 Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThis PR adds performance validation support for OKE GB200 environments. It introduces performance constraint definitions to two OKE recipe overlays (training and inference), extends the NCCL validator to recognize OKE with NVLS transport, adds a TrainingRuntime YAML template for GB200 OKE NCCL testing with MPI/OpenMPI and GPU resource claims via imex-channel, and adds comprehensive tests validating template paths, IMEX claim references, supported variant combinations, and resolved recipe performance goals. Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
98f8ff8 to
c65049a
Compare
6c0a4aa to
38c610f
Compare
38c610f to
1aeed5c
Compare
1aeed5c to
6b5b17b
Compare
6b5b17b to
892bae6
Compare
Cross-ReviewReviewers: Claude Code + Code Review Agent + Integration Analysis Agent Confirmed Issues
Open Questions
Cross-review by Claude Code |
ReviewWhat it does: Adds NVLS training goals + Dynamo inference goals to the OKE GB200 leaves, wires Assessment: well-built, good test coverage — one substantive inconsistency to confirm. Strengths
Main concern — the
|
892bae6 to
c2dbf96
Compare
Adds GB200 OKE performance phases following the existing training/inference split: NCCL NVLS goals for training overlays and inference-perf throughput/TTFT goals for the Dynamo inference overlay. OKE training advertises NVLS only for now; OKE NET/RDMA stays out until the OCI testbed proves a non-Socket NCCL transport end to end. - Register CriteriaServiceOKE + CriteriaAcceleratorGB200 for the NCCL NVLS variant and ship the OKE NVLS runtime template (IMEX/ComputeDomain claim path via resourceClaimTemplateName: nccl-all-reduce-imex). - Add nccl-all-reduce-bw-nvls >= 500 at gb200-oke-training so the Ubuntu and Kubeflow training leaves inherit the training performance goal. - Add inference-perf to gb200-oke-ubuntu-inference-dynamo, mirroring the GB200 EKS Dynamo model/concurrency/throughput/TTFT goals. Worker scheduling: platformWorkerScheduling now handles OKE — a tolerate-all toleration so workers schedule on tainted GB200 pools (previously only the launcher tolerated the taint, leaving workers Pending), plus a nvidia.com/gpu.product nodeSelector derived from the same accelerator-narrowed node set used for counting so worker placement cannot diverge from the sizing on mixed-GPU cohorts. Degrades to no selector on non-GFD installs, matching the counting fallback. DRA API floor: the GB200 NVLS IMEX path waits on the GA resource.k8s.io/v1 ResourceClaimTemplate (Kubernetes 1.34+), so floor the three OKE training overlays at >= 1.34 instead of >= 1.32.4 — a DRA-incapable cluster is now rejected at recipe resolution rather than failing the performance phase at runtime. (The EKS GB200 training chain shares this floor; tracked in NVIDIA#1255.) Docs: document OKE NVLS selection in docs/user/validation.md (NVLS-only, no NET/RDMA) and the OKE default validator worker selector (nvidia.com/gpu.product, GFD-gated) in docs/user/cli-reference.md. Regression coverage: resolved OKE performance goals, OKE NVLS support/template parsing, IMEX claim wiring, OKE worker scheduling (gpu.product selector + taint toleration, non-GFD fallback), commonGPUProduct, the EKS-only GB200 NET NVreg preflight, and runtime-template parse coverage for every supported NCCL combination. Fixes: NVIDIA#1007
c2dbf96 to
10b2108
Compare
Summary
Adds GB200 OKE performance phases following the existing training/inference split: NCCL goals for training overlays and
inference-perfthroughput/TTFT goals for the Dynamo inference overlay. OKE training advertises NVLS only for now; OKE NET/RDMA stays out until the OCI testbed proves a non-Socket NCCL transport end to end.Motivation / Context
The OKE GB200 leaves were missing the recommended performance phase. This adds conservative smoke goals by mirroring the established EKS/GKE overlay pattern while avoiding an unverified OKE NET contract.
Fixes: #1007
Related: N/A
Type of Change
Component(s) Affected
cmd/aicr,pkg/cli)cmd/aicrd,pkg/server)pkg/recipe)pkg/bundler,pkg/component/*)pkg/collector,pkg/snapshotter)pkg/validator)pkg/errors,pkg/k8s)docs/,examples/)Implementation Notes
nccl-all-reduce-bw-nvls >= 500atgb200-oke-trainingsogb200-oke-ubuntu-trainingandgb200-oke-ubuntu-training-kubeflowinherit the training performance goal.CriteriaServiceOKE + CriteriaAcceleratorGB200for the NCCL NVLS variant and ships the OKE NVLS runtime template.resourceClaimTemplateName: nccl-all-reduce-imex.inference-perftogb200-oke-ubuntu-inference-dynamo, mirroring the GB200 EKS Dynamo model/concurrency/throughput/TTFT goals.platformWorkerScheduling: a tolerate-all toleration (so workers schedule on tainted GB200 pools, not just the launcher) plus anvidia.com/gpu.productnode selector derived from the same accelerator-narrowed node set used for sizing — degrading to no selector on non-GFD installs. An explicit-but-empty--node-selectorno longer clears that default asymmetrically (gated onlen(), matching the counting path).K8s.server.version >= 1.34, since the NVLS IMEX path waits on the GAresource.k8s.io/v1ResourceClaimTemplate (Kubernetes 1.34+); a DRA-incapable cluster is now rejected at recipe resolution rather than failing the performance phase at runtime. The EKS GB200 training chain shares this floor and is tracked in EKS GB200 training recipe floor (>= 1.32.4) is below DRA resource.k8s.io/v1 requirement (1.34+) #1255.docs/user/validation.mdand the OKE default validator worker selector indocs/user/cli-reference.md.gpu.productselector + taint toleration, non-GFD fallback),commonGPUProduct, the EKS-only GB200 NET NVreg preflight, and the limited scope of runtime-template parse tests.Performance-gate assumption: the bandwidth/throughput thresholds are conservative smoke gates that assume a full 8-GPU node. The
inference-perfgoal is mirrored from the EKS H100 8×GPU Dynamo measurement (Qwen/Qwen3-8B, 256 concurrency/GPU,>= 50000tok/s, TTFT-p99<= 2000 ms) and thenccl-all-reduce-bw-nvls >= 500 GB/sfigure is sized for a full-node 2-node pair — neither is yet calibrated against OKE GB200 silicon. They should be re-baselined once OCI testbed data is available; until then a partially-populated node (fewer than 8 GPUs) is expected to under-shoot these gates.Testing
All checks passed locally on the rebased branch.
make qualifycompleted the full gate; the vulnerability scan reported the existingk8s.io/kubernetesadvisories and did not fail the gate.Risk Assessment
Rollout notes: OKE NET/RDMA is intentionally excluded until an OCI-specific runtime template and passing non-Socket NCCL logs are available from the testbed.
Checklist
make testwith-race)make lint)git commit -S) — GPG signing info