A4X Max를 사용하는 맞춤 AI 최적화 GKE 클러스터 만들기

이 문서에서는 A4X Max Compute Engine 인스턴스를 사용하여 AI 및 ML 워크로드를 지원하는 AI 최적화 Google Kubernetes Engine (GKE) 클러스터를 만드는 방법을 보여줍니다.

A4X Max 및 A4X 시리즈를 사용하면 GPU 성능과 성능을 향상하는 랙 규모 솔루션인 NVIDIA Multi-Node NVLink (MNNVL) 시스템을 사용하여 대규모 AI/ML 클러스터를 실행할 수 있습니다. 이러한 머신은 타겟 워크로드 배치, 토폴로지 인식 스케줄링, 고급 클러스터 유지보수 제어와 같은 기능을 제공합니다. 자세한 내용은 클러스터 관리 기능을 참고하세요. A4X Max를 사용하면 GKE에서 클러스터 구성을 간소화하는 자동 네트워킹 설정도 제공합니다.

분산 학습과 같은 AI 및 ML 워크로드에는 작업 완료 시간을 단축하여 성능을 최적화하기 위한 강력한 가속이 필요합니다. GKE는 조직의 다양한 워크로드를 실행할 수 있는 단일 플랫폼을 제공하여 여러 플랫폼을 관리하는 운영 부담을 줄입니다. 고성능 분산 사전 학습, 모델 미세 조정, 모델 추론, 애플리케이션 제공, 지원 서비스와 같은 워크로드를 실행할 수 있습니다. 고성능, 높은 처리량, 짧은 지연 시간이 필요한 워크로드의 경우 GPUDirect RDMA는 GPU 간에 페이로드를 전송하는 데 필요한 네트워크 홉을 줄입니다. 이 접근 방식은 사용 가능한 네트워크 대역폭을 더 효율적으로 사용합니다. 자세한 내용은 GPU 네트워킹 스택을 참고하세요.

이 문서에서는 워크로드의 요구사항에 따라 클러스터를 최대한 유연하게 구성할 수 있도록 Google Cloud CLI를 사용하여 GKE 클러스터를 만드는 방법을 알아봅니다. gcloud CLI를 사용하여 다른 머신 유형으로 클러스터를 만들려면 다음을 참고하세요.

또는 클러스터 툴킷을 사용하여 다양한 사용 사례의 권장사항을 반영하는 기본 설정으로 클러스터를 빠르게 배포할 수 있습니다. 자세한 내용은 기본 구성으로 AI에 최적화된 GKE 클러스터 만들기를 참고하세요.

시작하기 전에

시작하기 전에 다음 태스크를 수행했는지 확인합니다.

  • Google Kubernetes Engine API를 사용 설정합니다.
  • Google Kubernetes Engine API 사용 설정
  • 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치했으면 gcloud components update 명령어를 실행하여 최신 버전을 가져옵니다. 이전 gcloud CLI 버전에서는 이 문서의 명령어를 실행하지 못할 수 있습니다.

용량 확보

미래용 예약을 만들어 A4X Max 컴퓨팅 인스턴스의 용량을 확보할 수 있습니다. 미래용 예약에 대한 자세한 내용은 소비 옵션 선택 표의 AI 하이퍼컴퓨터의 미래용 예약 열을 참고하세요.

미래용 예약으로 용량을 확보하려면 용량 확보 방법 표에서 AI 하이퍼컴퓨터의 미래용 예약 행을 참고하세요.

요구사항

A4X Max 컴퓨팅 인스턴스가 있는 AI 최적화 GKE 클러스터에는 다음 요구사항이 적용됩니다.

  • A4X Max의 경우 다음 버전 중 하나를 사용해야 합니다.

    • 1.35 이상의 경우 GKE 버전 1.35.0-gke.2745000 이상을 사용합니다.
    • 1.34의 경우 GKE 버전 1.34.3-gke.1318000 이상을 사용합니다.

    이러한 버전을 사용하면 A4X Max에서 다음을 사용할 수 있습니다.

    • R580.95.05: A4X Max의 최소 GPU 드라이버 버전으로, 기본적으로 사용 설정됩니다.
    • 일관된 드라이버 기반 메모리 관리(CDMM)(기본적으로 사용 설정됨) NVIDIA는 메모리 과다 보고 문제를 해결하기 위해 Kubernetes 클러스터에서 이 모드를 사용 설정할 것을 권장합니다. CDMM을 사용하면 운영체제 (OS) 대신 드라이버를 통해 GPU 메모리를 관리할 수 있습니다. 이 접근 방식을 사용하면 OS에서 GPU 메모리를 온라인으로 전환하는 것을 방지하고 GPU 메모리를 OS에 비균일 메모리 액세스 (NUMA) 노드로 노출할 수 있습니다. CDMM이 사용 설정된 경우 멀티 인스턴스 GPU는 지원되지 않습니다. CDMM에 관한 자세한 내용은 하드웨어 및 소프트웨어 지원을 참고하세요.
    • A4X Max 노드 풀이 A4X Max의 네트워킹 기능을 사용하도록 설정하는 데 권장되는 GPUDirect RDMA 및 MNNVL
  • GKE 노드는 Container-Optimized OS 노드 이미지를 사용해야 합니다. Ubuntu 및 Windows 노드 이미지는 지원되지 않습니다.

  • GKE 워크로드는 사용 가능한 모든 GPU를 사용해야 하고 포드는 단일 GKE 노드에서 사용 가능한 모든 보조 NIC를 사용해야 합니다. 여러 포드가 단일 GKE 노드에서 RDMA를 공유할 수 없습니다.

  • 예약에 따름 프로비저닝 모델을 사용하여 A4X Max로 클러스터를 만들어야 합니다. 다른 프로비저닝 모델은 지원되지 않습니다.

  • 이 안내에서는 DRANET을 사용하여 A4X Max로 AI 최적화 GKE 클러스터를 구성합니다. a4x-maxgpu-4g-metal 머신 유형에는 다중 네트워킹이 지원되지 않습니다.

클러스터 생성 시 고려사항

클러스터를 만들 때 다음 정보를 고려하세요.

  • 클러스터 위치 선택:
    • 선택한 머신 유형을 사용할 수 있는 위치를 사용하는지 확인합니다. 자세한 내용은 액셀러레이터 사용 가능 여부를 참고하세요.
    • 리전별 클러스터(프로덕션 워크로드에 권장됨)에서 노드 풀을 만들 때 --node-locations 플래그를 사용하여 GKE 노드의 영역을 지정할 수 있습니다.
  • 드라이버 버전 선택:
    • 드라이버 버전은 다음 값 중 하나일 수 있습니다.
      • default: GKE 노드 버전의 기본 드라이버 버전을 설치합니다. 기본 드라이버 버전 요구사항에 관한 자세한 내용은 요구사항 섹션을 참고하세요.
      • latest: GKE 버전에 사용 가능한 최신 드라이버 버전을 설치합니다. 이 옵션은 Container-Optimized OS를 사용하는 노드에서만 사용할 수 있습니다.
      • disabled: 자동 드라이버 설치를 건너뜁니다. 노드 풀을 만든 후 수동으로 드라이버를 설치해야 합니다.
    • GKE 노드 버전의 기본 및 최신 GPU 드라이버 버전에 관한 자세한 내용은 NVIDIA GPU 드라이버 수동 설치 섹션의 표를 참고하세요.
  • 예약 어피니티 선택:

    • 예약 이름 또는 예약 내의 특정 블록 이름과 같은 예약 정보를 확인할 수 있습니다. 이 값을 확인하려면 미래용 예약 요청 보기를 참고하세요.
    • --reservation-affinity 플래그는 specific 또는 any 값을 사용할 수 있습니다. 하지만 고성능 분산 AI 워크로드의 경우 특정 예약을 사용하는 것이 좋습니다.
    • 공유 예약을 비롯한 특정 예약을 사용하는 경우 다음 형식으로 --reservation 플래그의 값을 지정합니다.

      projects/PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/BLOCK_NAME
      

      다음 값을 바꿉니다.

      • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
      • RESERVATION_NAME: 예약 이름입니다.
      • BLOCK_NAME: 예약 내의 특정 블록 이름입니다.

      또한 컴퓨팅 인스턴스가 BLOCK_NAME 내의 단일 하위 블록에 배치되도록 하위 블록 타겟 예약도 사용하는 것이 좋습니다. 경로 끝에 다음을 추가합니다.

      /reservationSubBlocks/SUB_BLOCK_NAME
      

      SUB_BLOCK_NAME을 하위 블록 이름으로 바꿉니다.

A4X Max 및 GPUDirect RDMA를 사용하는 AI 최적화 GKE 클러스터 만들기

분산 AI 워크로드의 경우 여러 GPU 노드가 단일 컴퓨터로 작동하도록 함께 연결되는 경우가 많습니다. A4X Max는 NVIDIA GB300 NVL72 랙 확장 아키텍처를 기반으로 하는 엑사스케일 플랫폼입니다. A4X Max 컴퓨팅 인스턴스는 다양한 통신 유형의 성능을 최적화하기 위해 레일 정렬 설계가 적용된 다중 계층의 계층적 네트워킹 아키텍처를 사용합니다. 이 머신 유형은 AI 워크로드에 고성능 클라우드 환경을 제공하여 여러 GPU에서 확장 및 공동작업을 지원합니다. 네트워크 대역폭 및 NIC 구성을 비롯한 A4X Max의 네트워크 아키텍처에 대한 자세한 내용은 A4X Max 머신 유형 (베어 메탈)을 참고하세요.

GPUDirect RDMA 및 MNNVL을 사용하는 A4X Max로 GKE Standard 클러스터를 만들려면 다음 섹션에 설명된 단계를 완료하세요.

  1. GKE 클러스터 만들기
  2. 워크로드 정책 만들기
  3. A4X Max로 노드 풀 만들기
  4. asapd-lite으로 MRDMA NIC 구성
  5. NVIDIA Compute Domain CRD 및 DRA 드라이버 설치
  6. RDMA 및 IMEX 도메인용 워크로드 매니페스트 구성

이 안내에서는 액셀러레이터 네트워크 프로필을 사용하여 A4X Max 노드의 VPC 네트워크와 서브넷을 자동으로 구성합니다. 또는 VPC 네트워크와 서브넷을 명시적으로 지정할 수 있습니다.

GKE 클러스터 만들기

  1. GKE Standard 클러스터를 만듭니다.

    gcloud container clusters create CLUSTER_NAME \
      --enable-dataplane-v2 \
      --enable-ip-alias \
      --location=COMPUTE_REGION \
      --cluster-version=CLUSTER_VERSION \
      --no-enable-shielded-nodes [\
      --services-ipv4-cidr=SERVICE_CIDR \
      --cluster-ipv4-cidr=POD_CIDR \
      --addons=GcpFilestoreCsiDriver=ENABLED]
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 클러스터 이름입니다.
    • CLUSTER_VERSION: 새 클러스터의 버전입니다. GKE의 어떤 버전이 구성을 지원하는지 자세히 알아보려면 이 문서의 요구사항을 참고하세요.
    • COMPUTE_REGION: 컴퓨팅 리전의 이름입니다.
    • 선택적으로 서비스 및 포드의 보조 CIDR 범위를 명시적으로 제공할 수 있습니다. 이 선택적 플래그를 사용하는 경우 다음 변수를 바꿉니다.

      • SERVICE_CIDR: 서비스의 보조 CIDR 범위입니다.
      • POD_CIDR: 포드의 보조 CIDR 범위입니다.

      이러한 플래그를 사용하는 경우 CIDR 범위가 추가 노드 네트워크의 서브넷 범위와 겹치지 않는지 확인해야 합니다. 예를 들어 SERVICE_CIDR=10.65.0.0/19POD_CIDR=10.64.0.0/19을 생각해 보세요. 자세한 내용은 포드 IPv4 주소 범위 추가를 참고하세요.

  2. 다음 섹션에서 kubectl 명령어를 실행하려면 클러스터에 연결하세요.

    gcloud container clusters get-credentials CLUSTER_NAME --location=COMPUTE_REGION
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 클러스터 이름입니다.
    • COMPUTE_REGION: 컴퓨팅 리전의 이름입니다.

    자세한 내용은 kubectl 설치 및 클러스터 액세스 구성을 참고하세요.

워크로드 정책 만들기

파티션을 만들려면 워크로드 정책이 필요합니다. 자세한 내용은 MIG의 워크로드 정책을 참고하세요.

accelerator_topology 필드가 1x72로 설정된 HIGH_THROUGHPUT 워크로드 정책을 만듭니다.

gcloud beta compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
    --type HIGH_THROUGHPUT \
    --accelerator-topology 1x72 \
    --project PROJECT \
    --region COMPUTE_REGION

다음을 바꿉니다.

  • WORKLOAD_POLICY_NAME: 워크로드 정책의 이름입니다.
  • PROJECT: 프로젝트의 이름
  • COMPUTE_REGION: 컴퓨팅 리전의 이름입니다.

A4X Max로 노드 풀 만들기

  1. 노드 풀을 사용하여 대용량 페이지를 사전 할당하려면 다음 구성 파일을 만드세요.

    cat > node_custom.yaml <<EOF
    linuxConfig:
      hugepageConfig:
        hugepage_size2m: 4096
    EOF
    
    export NODE_CUSTOM=node_custom.yaml
    
  2. A4X Max 노드 풀을 만듭니다.

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --location=COMPUTE_REGION \
        --node-locations=COMPUTE_ZONE \
        --num-nodes=NODE_COUNT \
        --placement-policy=WORKLOAD_POLICY_NAME \
        --machine-type=a4x-maxgpu-4g-metal \
        --accelerator=type=nvidia-gb300,count=4,gpu-driver-version=latest \
        --system-config-from-file=${NODE_CUSTOM} \
        --accelerator-network-profile=auto \
        --node-labels=cloud.google.com/gke-networking-dra-driver=true,cloud.google.com/gke-dpv2-unified-cni=cni-migration \
        --reservation-affinity=specific \
        --reservation=RESERVATION_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUB_BLOCK_NAME
    

    다음을 바꿉니다.

    • NODE_POOL_NAME: 노드 풀의 이름
    • CLUSTER_NAME: 클러스터 이름입니다.
    • COMPUTE_REGION: 클러스터의 컴퓨팅 리전입니다.
    • COMPUTE_ZONE: 노드 풀의 영역입니다.
    • NODE_COUNT: 노드 풀의 노드 수입니다. 18개 이하여야 합니다. NVLink 도메인을 사용하여 하나의 하위 블록에서 1x72의 GPU 토폴로지를 얻으려면 18개의 노드를 사용하는 것이 좋습니다.
    • WORKLOAD_POLICY_NAME: 이전에 만든 워크로드 정책의 이름입니다.
    • RESERVATION_NAME: 예약의 이름 이 값을 확인하려면 미래용 예약 요청 보기를 참고하세요.
    • BLOCK_NAME: 예약 내의 특정 블록 이름입니다. 이 값을 확인하려면 미래용 예약 요청 보기를 참고하세요.

    이 명령어는 auto 액셀러레이터 네트워크 프로필을 사용하여 단일 영역 내의 모든 A4X Max 노드를 연결하는 네트워크를 자동으로 만듭니다. --accelerator-network-profile=auto 플래그를 사용하여 노드 풀을 만들면 GKE가 노드에 gke.networks.io/accelerator-network-profile: auto 라벨을 자동으로 추가합니다. 이러한 노드에 워크로드를 예약하려면 워크로드의 nodeSelector 필드에 이 라벨을 포함해야 합니다.

asapd-lite로 MRDMA NIC 구성

asapd-lite DaemonSet은 MRDMA NIC를 구성합니다. 비정상적인 asapd-lite DaemonSet는 RDMA 연결이 없음을 나타낼 수 있습니다.

  1. DaemonSet를 설치합니다.

    kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/refs/heads/master/asapd-lite-installer/asapd-lite-installer-a4x-max-bm-cos.yaml
    
  2. asapd-lite DaemonSet의 복제본을 검증합니다.

    kubectl get daemonset -n kube-system asapd-lite
    

    출력은 다음과 비슷합니다.

    NAME         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    asapd-lite   18        18        18      18           18          <none>          5m
    

    READY 복제본 수는 노드 풀에서 생성되었으며 정상 상태인 노드 수와 일치해야 합니다.

NVIDIA Compute Domain CRD 및 DRA 드라이버 설치

다음 단계에서는 MNNVL을 사용할 수 있도록 NVIDIA Compute Domain CRD 및 DRA 드라이버를 설치합니다. 자세한 내용은 GPU용 NVIDIA DRA 드라이버를 참고하세요.

  1. 개발 환경에 Helm이 설치되어 있는지 확인합니다. Helm은 Cloud Shell에 사전 설치되어 있습니다.

    특정 Helm 버전 요구사항은 없지만 다음 명령어를 사용하여 Helm이 설치되어 있는지 확인할 수 있습니다.

    helm version
    

    출력이 Command helm not found와 유사한 경우 Helm CLI를 설치할 수 있습니다.

    curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 \
      && chmod 700 get_helm.sh \
      && ./get_helm.sh
    
  2. NVIDIA Helm 저장소를 추가합니다.

    helm repo add nvidia https://helm.ngc.nvidia.com/nvidia \
      && helm repo update
    
  3. DRA 드라이버의 ResourceQuota 객체를 만듭니다.

    export POD_QUOTA=POD_QUOTA
    
    kubectl create ns nvidia-dra-driver-gpu
    
    kubectl apply -n nvidia-dra-driver-gpu -f - << EOF
    apiVersion: v1
    kind: ResourceQuota
    metadata:
      name: nvidia-dra-driver-gpu-quota
    spec:
      hard:
        pods: ${POD_QUOTA}
      scopeSelector:
        matchExpressions:
        - operator: In
          scopeName: PriorityClass
          values:
            - system-node-critical
            - system-cluster-critical
    EOF
    

    POD_QUOTA을 클러스터의 A4X Max 노드 수의 2배에 1을 더한 수 이상으로 바꿉니다. 예를 들어 클러스터에 A4X Max 노드가 18개 있는 경우 변수를 37 이상으로 설정해야 합니다.

  4. ComputeDomain CRD 및 DRA 드라이버를 설치합니다.

    helm install nvidia-dra-driver-gpu nvidia/nvidia-dra-driver-gpu \
        --set controller.args.v=4 --set kubeletPlugin.args.v=4 \
        --version="25.8.0" \
        --create-namespace \
        --namespace nvidia-dra-driver-gpu \
        -f <(cat <<EOF
    nvidiaDriverRoot: /home/kubernetes/bin/nvidia
    resources:
      gpus:
        enabled: false
    
    controller:
      affinity:
          nodeAffinity:
            requiredDuringSchedulingIgnoredDuringExecution:
              nodeSelectorTerms:
              - matchExpressions:
                - key: "nvidia.com/gpu"
                  operator: "DoesNotExist"
    
    kubeletPlugin:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: cloud.google.com/gke-accelerator
                    operator: In
                    values:
                      - nvidia-gb300
                  - key: kubernetes.io/arch
                    operator: In
                    values:
                      - arm64
    
      tolerations:
        - key: nvidia.com/gpu
          operator: Equal
          value: present
          effect: NoSchedule
        - key: kubernetes.io/arch
          operator: Equal
          value: arm64
          effect: NoSchedule
    EOF
    )
    

RDMA 및 IMEX 도메인용 워크로드 매니페스트 구성

  1. ARM 노드에서 워크로드를 예약하는 노드 어피니티 규칙을 추가합니다.

    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            -   matchExpressions:
              -   key: kubernetes.io/arch
                operator: In
                values:
                -   arm64
    
  2. 포드 사양에 다음 볼륨을 추가합니다.

    spec:
      volumes:
        - name: library-dir-host
          hostPath:
            path: /home/kubernetes/bin/nvidia
    
  3. GPU를 요청하는 컨테이너에 다음 볼륨 마운트, 환경 변수, 리소스를 추가합니다. 워크로드 컨테이너는 다음 네 개의 GPU를 모두 요청해야 합니다.

    containers:
      - name: my-container
        volumeMounts:
          - name: library-dir-host
            mountPath: /usr/local/nvidia
    
        env:
          - name: LD_LIBRARY_PATH
            value: /usr/local/nvidia/lib64
        resources:
          limits:
            nvidia.com/gpu: 4
    
  4. 워크로드의 ComputeDomain 리소스를 만듭니다.

    apiVersion: resource.nvidia.com/v1beta1
    kind: ComputeDomain
    metadata:
      name: a4x-max-compute-domain
    spec:
      numNodes: NUM_NODES
      channel:
        resourceClaimTemplate:
          name: a4x-max-compute-domain-channel
    

    NUM_NODES를 워크로드에 필요한 노드 수로 바꿉니다.

  5. DRANET을 사용하여 네트워크 리소스를 할당하고 포드의 RDMA 기기를 요청하는 ResourceClaimTemplate을 만듭니다.

    apiVersion: resource.k8s.io/v1
    kind: ResourceClaimTemplate
    metadata:
      name: all-mrdma
    spec:
      spec:
        devices:
          requests:
          - name: req-mrdma
            exactly:
              deviceClassName: mrdma.google.com
              allocationMode: ExactCount
              count: 8
    
  6. 포드에서 사용하는 ResourceClaimTemplate을 지정합니다.

    spec:
      ...
      volumes:
        ...
      containers:
        - name: my-container
          ...
          resources:
            limits:
              nvidia.com/gpu: 4
      claims:
              - name: compute-domain-channel
              - name: rdma
            ...
    resourceClaims:
      - name: compute-domain-channel
        resourceClaimTemplateName: a4x-max-compute-domain-channel
      - name: rdma
        resourceClaimTemplateName: all-mrdma
    
  7. 사용자 컨테이너 이미지에 사용자 공간 라이브러리와 libnccl 패키지가 설치되어 있는지 확인합니다.

    apt update -y
    apt install -y curl
    export DOCA_URL="https://linux.mellanox.com/public/repo/doca/3.1.0/ubuntu22.04/arm64-sbsa/"
    BASE_URL=$([ "${DOCA_PREPUBLISH:-false}" = "true" ] && echo https://doca-repo-prod.nvidia.com/public/repo/doca || echo https://linux.mellanox.com/public/repo/doca)
    DOCA_SUFFIX=${DOCA_URL#*public/repo/doca/}; DOCA_URL="$BASE_URL/$DOCA_SUFFIX"
    curl $BASE_URL/GPG-KEY-Mellanox.pub | gpg --dearmor > /etc/apt/trusted.gpg.d/GPG-KEY-Mellanox.pub
    echo "deb [signed-by=/etc/apt/trusted.gpg.d/GPG-KEY-Mellanox.pub] $DOCA_URL ./" > /etc/apt/sources.list.d/doca.list
    apt update
    apt -y install doca-ofed-userspace
    # The installed libnccl2 is 2.27.7, to upgrade to 2.28.9 as we recommend
    apt install --only-upgrade --allow-change-held-packages -y libnccl2 libnccl-dev
    

완성된 포드 사양은 다음과 같습니다.

apiVersion: resource.nvidia.com/v1beta1
kind: ComputeDomain
metadata:
  name: a4x-max-compute-domain
spec:
  numNodes:  NUM_NODES
  channel:
    resourceClaimTemplate:
      name: a4x-max-compute-domain-channel
---
apiVersion: apps/v1
kind: Pod
metadata:
  name: my-pod
  labels:
    k8s-app: my-pod
spec:
  ...
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/arch
            operator: In
            values:
            - arm64
  volumes:
    - name: library-dir-host
      hostPath:
        path: /home/kubernetes/bin/nvidia
  hostNetwork: true
  containers:
    - name: my-container
      volumeMounts:
        - name: library-dir-host
          mountPath: /usr/local/nvidia
      env:
        - name: LD_LIBRARY_PATH
          value: /usr/local/nvidia/lib64
      resources:
        limits:
          nvidia.com/gpu: 4
        claims:
          - name: compute-domain-channel
          - name: rdma
        ...
  resourceClaims:
    - name: compute-domain-channel
      resourceClaimTemplateName: a4x-max-compute-domain-channel
    - name: rdma
      resourceClaimTemplateName: all-mrdma

네트워크 성능 테스트

프로비저닝된 클러스터의 기능을 검증하는 것이 좋습니다. 이렇게 하려면 Google 환경에 최적화된 NVIDIA Collective Communications Library(NCCL) 테스트인 NCCL/gIB 테스트를 사용하세요.

자세한 내용은 A4X Max를 사용하는 맞춤 GKE 클러스터에서 NCCL 실행을 참고하세요.

다음 단계