feat(recipes): OKE RDMA fabric wiring (L40S RoCE + GB200 IB) - #2356
feat(recipes): OKE RDMA fabric wiring (L40S RoCE + GB200 IB)#2356atif1996 wants to merge 1 commit into
Conversation
Upstream the OKE network fabric, closing gb200-oke-training's 'NET/RDMA intentionally left out until OCI-specific pod RDMA exposure is verified on the testbed' carve-out — the exposure below is validated on a production BM.GPU.GB200.4 NVL72 rack and a BM.GPU.L40S.4 RoCE cluster. - network-operator on both OKE training chains, NicClusterPolicy supplied by manifest (chart deployCR off). L40S (RoCE): SR-IOV VF device plugin advertising nvidia.com/mlnxnics (ConnectX VF device IDs 101a/101e) plus nv-ipam and multus. GB200 (IB): rdmaSharedDevicePlugin over the NVL72 east-west rdma0-3 netdevs, same nvidia.com/mlnxnics resource name; no SR-IOV/nv-ipam. Neither deploys ofedDriver: OCI nodes carry host MOFED in every image. Present in every gpuStack value (fabric is orthogonal to driver/plugin ownership); incompatible with Oracle's opt-in NvidiaNetworkOperator add-on. - GB200 kernel-module-params wiring (NVreg_GrdmaPciTopoCheckOverride=1): dma-buf attach over the IB fabric — GPUDirect RDMA without nvidia-peermem, whose chroot modprobe fails against the -64k Grace kernel. - nccl-all-reduce-bw-net (>= 40, matching gb200-eks-training) added to the gb200-oke training chain; supportedNCCLCombinations[variantNET] gains oke/gb200 with the ported testdata/gb200/oke/runtime-net.yaml TrainingRuntime (IB via the shared HCAs; NVLS/MNNVL forced off). - NicClusterPolicy image digest exemptions (repository/image/version triplet CRD schema, same as the AKS entries). Stock-render golden and BOM regenerated. Signed-off-by: Atif Mahmood <atif1996@users.noreply.github.com>
|
🌿 Preview your docs: https://nvidia-preview-feat-oke-fabric-wiring.docs.buildwithfern.com/aicr |
Recipe evidence checkOther affected recipes without evidence yet: 4These recipes are affected by this PR but carry no committed evidence pointer, so there is
This gate is warning-only and never blocks merge. See ADR-007 for the trust model. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Enterprise Run ID: 📒 Files selected for processing (14)
Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review. 📝 WalkthroughWalkthroughThe OKE GB200 and L40S training recipes now configure Network Operator networking for InfiniBand or RoCE RDMA devices. GB200 GPU Operator settings enable the required kernel-module configuration. GB200 OKE validation now runs NCCL NET and NVLS checks. A GB200 OKE NET runtime and benchmark mapping were added. Image inventories, digest exemptions, and generated recipe digests were updated. Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: ⚪ Minimal · up to This PR adds OKE RDMA fabric configuration and related performance validation; no actionable merge-blocking risk remains beyond normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 3 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (3 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Summary
Upstreams the OKE RDMA fabric: network-operator with manifest-supplied NicClusterPolicies on both OKE training chains (L40S SR-IOV/RoCE, GB200 IB), the GB200 kernel-module-params wiring, and the
nccl-all-reduce-bw-netperformance gate with its embedded TrainingRuntime — closing thegb200-oke-training"NET/RDMA intentionally left out until OCI-specific pod RDMA exposure is verified" carve-out.Motivation / Context
The exposure the carve-out was waiting for exists and is production-validated: a BM.GPU.GB200.4 NVL72 rack (IB east-west over rdma0-3,
rdmaSharedDevicePlugin, both NCCL variants passing) and a BM.GPU.L40S.4 RoCE cluster (SR-IOV VFs via device IDs 101a/101e, nv-ipam + multus). This PR ports that configuration from the downstream data repo, de-specialized: hardcoded scheduling taxonomy replaced by the bundler's system-node scheduling injection, downstream-only tolerations and resource aliases dropped.Stacked on the OKE gpuStack profile PR — the fabric is deliberately present in every profile value (orthogonal to driver/plugin ownership); retargets when the base merges.
Fixes: #2345
Related: #2344, #1716
Type of Change
Component(s) Affected
pkg/recipe)pkg/validator)docs/,examples/)Implementation Notes
ofedDriveranywhere, in any configuration: OCI nodes carry host MOFED in every image (Oracle and BYO alike). The device-plugin corollary (MOFED_ENABLED=false) landed in the profile PR.nvidia.com/mlnxnics, so workloads request RDMA uniformly on OKE.deployCR: false+ manifest CR: the manifest is the only place the OCI VF selectors / IB ifNames can be expressed; the CR carries the standard post-install Helm hook annotations (deployment-ordering test enforces them).-64kGrace kernel. GB200 needsNVreg_GrdmaPciTopoCheckOverride=1(kernel-module-params ConfigMap, already embedded — this PR adds the wiring).supportedNCCLCombinations[variantNET]gains oke/gb200 withtestdata/gb200/oke/runtime-net.yaml(NVLS/MNNVL forced off; transport confirmed from the NCCL banner). Constraint>= 40matches gb200-eks-training.NvidiaNetworkOperatoradd-on documented on the componentRefs (two lifecycle managers, one release).Testing
make qualify # green-postNicClusterPolicy wrapper;ofedDriverabsent from both rendered CRs; GB200 bundle carries the kernel-module-params ConfigMap.TestOKEPerformanceGoalsFollowTrainingInferencePatternupdated for the NET check on all three gb200 training leaves;TestNCCLCombinationSupportedOKE NET row flipped to covered; parity goldens + BOM regenerated (four NicClusterPolicy image digest exemptions — triplet CRD schema, same as AKS).Risk Assessment
Rollout notes: Additive for existing OKE users without RDMA-capable pools (the NicClusterPolicy DaemonSets simply schedule nowhere without matching NICs). Clusters running Oracle's NvidiaNetworkOperator add-on must disable it before deploying these bundles.
Checklist
make testwith-race)make lint)git commit -S)