deploy/helm/health_checks/nccl_healthcheck/a3.yaml (94 lines of code) (raw):

# Copyright 2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. job: base_name: "chs-hc" # guid: "xckd" # Can specify a GUID if desired. Otherwise, a random GUID will be generated. # check_time: "1590303600" # Will automatically be set if not given health_check: name: "nccl" image: repo: "us-docker.pkg.dev/gce-ai-infra/health-check/nccl-healthcheck" tag: "a3-highgpu-8g_4.4.0" pull_policy: "Always" env: # A3 instance type is a3-highgpu-8g INSTANCE_TYPE: "a3-highgpu-8g" ENABLE_TWO_PASS_STRATEGY: "true" HEALTH_VALIDITY_HOURS: "24" DRY_RUN: "true" START_MESSAGE_SIZE: "2G" END_MESSAGE_SIZE: "8G" TEST_ITERATIONS: "3" NHOSTS: "2" nr: "8" # Specific to A3 LD_LIBRARY_PATH: /usr/local/nvidia/lib64 BANDWIDTH_THRESHOLD: "60" USE_TCPX: "true" USE_FASTRAK: "false" UNIX_CLIENT_PREFIX: "/run/tcpx" NCCL_DEBUG: "INFO" NCCL_DEBUG_SUBSYS: "INIT,NET" # Note A3 (a3-highgpu-8g) has no NCCL_LIB_DIR # Note A3 (a3-highgpu-8g) has no NCCL_FASTRAK_USE_SNAP # Note A3 (a3-highgpu-8g) has no NCCL_FASTRAK_ENABLE_CONTROL_CHANNEL # Note A3 (a3-highgpu-8g) has no NCCL_FASTRAK_NUM_FLOWS volumeMounts: - name: nvidia-install-dir-host mountPath: /usr/local/nvidia/lib64 - name: tcpx-nccl-plugin-volume mountPath: /usr/local/tcpx - name: tcpd-socket mountPath: /run/tcpx - name: workload-terminated-volume mountPath: /usr/share/nemo - name: shared-memory mountPath: /dev/shm - name: varlog mountPath: /var/log # Configuration specific to a3plus volumes: - name: nvidia-install-dir-host hostPath: path: /home/kubernetes/bin/nvidia/lib64 - name: tcpd-socket hostPath: path: /run/tcpx - name: tcpx-nccl-plugin-volume emptyDir: {} - name: workload-terminated-volume emptyDir: {} - name: shared-memory emptyDir: medium: "Memory" sizeLimit: 200Gi - name: varlog emptyDir: {} - name: fluentbit-key secret: secretName: fluentbit-key optional: true initContainers: nccl_plugin_installer: name: "nccl-plugin-installer" image: "us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx-dev:v3.1.7" imagePullPolicy: "Always" volumeMounts: name: "tcpx-nccl-plugin-volume" mountPath: "/usr/local/tcpx" tcpd_daemon: image: "us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpgpudmarxd-dev:v2.0.12" imagePullPolicy: "Always" command: - "bash" args: - "-c" - | /tcpgpudmarxd/build/app/tcpgpudmarxd --gpu_nic_preset a3vm --gpu_shmem_type fd --setup_param "--verbose 128 2 0" --uds_path /run/tcpx & cleanup() { echo "Received SIGTERM or workload terminated, starting cleanup..." pkill -e "^"tcpgpudmarxd || true exit 0 } trap cleanup SIGTERM while [ ! -e "/usr/share/nemo/workload_terminated" ]; do sleep 1; done cleanup sleep 10 volumeMounts: - name: nvidia-install-dir-host mountPath: /usr/local/nvidia/lib64 - name: tcpx-nccl-plugin-volume mountPath: /usr/local/tcpx - name: tcpd-socket mountPath: /run/tcpx - name: workload-terminated-volume mountPath: /usr/share/nemo