Skip to content

Commit 36013bd

Browse files
authored
Add nccl rdma installer in gke a4x max (#5962)
1 parent a4f4b3e commit 36013bd

2 files changed

Lines changed: 101 additions & 0 deletions

File tree

examples/gke-a4x-max-bm/gke-a4x-max-bm.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ vars:
5454
system_node_pool_disk_size_gb: 200
5555
a4x_max_node_pool_disk_size_gb: 100
5656
k8s_service_account_name: workload-identity-k8s-sa
57+
58+
# Installs NCCL library and Google NCCL plugin
59+
# Runs an init container on all GB300 GPU nodes with the NCCL plugin image
60+
gib_installer_path: $(ghpc_stage("./nccl-installer.yaml.tftpl"))
5761
nvidia_dra_driver_path: $(ghpc_stage("./nvidia-dra-driver.yaml"))
5862
asapd_lite_installer_path: $(ghpc_stage("./asapd-lite-installer.yaml"))
5963
kueue_configuration_path: $(ghpc_stage("./kueue-configuration.yaml.tftpl"))
@@ -253,6 +257,25 @@ deployment_groups:
253257
install: true
254258
version: "v25.8.0"
255259
accelerator_type: $(vars.accelerator_type)
260+
gib:
261+
install: true # NCCL gIB plugin via DaemonSet initContainer
262+
path: $(vars.gib_installer_path)
263+
template_vars:
264+
image: "us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-arm64"
265+
version: v1.1.2
266+
accelerator_count: 4
267+
node_affinity:
268+
requiredDuringSchedulingIgnoredDuringExecution:
269+
nodeSelectorTerms:
270+
- matchExpressions:
271+
- key: cloud.google.com/gke-accelerator
272+
operator: In
273+
values:
274+
- $(vars.accelerator_type)
275+
- key: kubernetes.io/arch
276+
operator: In
277+
values:
278+
- arm64
256279
apply_manifests:
257280
- source: $(vars.nvidia_dra_driver_path)
258281

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Copyright 2026 Google Inc. All rights reserved.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
apiVersion: apps/v1
16+
kind: DaemonSet
17+
metadata:
18+
name: nccl-rdma-installer
19+
namespace: kube-system
20+
labels:
21+
k8s-app: nccl-rdma-installer
22+
spec:
23+
selector:
24+
matchLabels:
25+
k8s-app: nccl-rdma-installer
26+
updateStrategy:
27+
type: RollingUpdate
28+
rollingUpdate:
29+
maxUnavailable: ${yamlencode(max_unavailable)}
30+
template:
31+
metadata:
32+
labels:
33+
name: nccl-rdma-installer
34+
k8s-app: nccl-rdma-installer
35+
spec:
36+
priorityClassName: system-node-critical
37+
affinity:
38+
nodeAffinity:
39+
${indent(10, yamlencode(node_affinity))}
40+
tolerations:
41+
- operator: "Exists"
42+
hostNetwork: true
43+
hostPID: true
44+
volumes:
45+
- name: library-dir-host
46+
hostPath:
47+
path: /home/kubernetes/bin/nvidia/lib64
48+
type: DirectoryOrCreate
49+
- name: gib
50+
hostPath:
51+
path: /home/kubernetes/bin/gib
52+
- name: nvidia-dir
53+
hostPath:
54+
path: /home/kubernetes/bin/nvidia
55+
type: Directory
56+
initContainers:
57+
- image: ${image}:${version}
58+
name: nccl-rdma-installer
59+
resources:
60+
requests:
61+
cpu: 150m
62+
securityContext:
63+
privileged: true
64+
volumeMounts:
65+
- name: library-dir-host
66+
mountPath: /usr/local/home/kubernetes/bin/nvidia/lib64
67+
- name: gib
68+
mountPath: /usr/local/home/kubernetes/bin/gib
69+
command: ["/bin/sh", "-c"]
70+
args:
71+
- |
72+
set -ex
73+
/scripts/container_entry.sh install
74+
cp -r /var/lib/gib/. /usr/local/home/kubernetes/bin/gib
75+
echo "installation finishes"
76+
containers:
77+
- image: "gke.gcr.io/pause:3.8@sha256:880e63f94b145e46f1b1082bb71b85e21f16b99b180b9996407d61240ceb9830"
78+
name: pause

0 commit comments

Comments
 (0)