部署 GPU 容器工作負載

本頁說明如何在 Google Distributed Cloud (GDC) Sandbox AI 最佳化 SKU 上部署 GPU 容器工作負載。

部署 GPU 容器工作負載

GDC Sandbox AI 最佳化 SKU 在機構基礎架構叢集中包含四個 NVIDIA H100 80GB HBM3 GPU。您可以使用資源名稱 nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3 存取這些 GPU。本節說明如何更新容器設定,以使用這些 GPU。

GDC Sandbox AI 最佳化 SKU 中的 GPU 會與預先設定的專案「sandbox-gpu-project」建立關聯。您必須使用這個專案部署容器,才能使用 GPU。

事前準備

  • 如要對機構基礎架構叢集執行指令,請確認您擁有 org-1-infra 叢集的 kubeconfig,如「使用叢集」一文所述:

    • 使用 gdcloud 指令列設定及驗證,以及
    • 產生機構基礎架構叢集的 kubeconfig 檔案,並將其路徑指派給環境變數 KUBECONFIG
  • 如要執行工作負載,您必須獲派 sandbox-gpu-admin 角色。 根據預設,系統會將角色指派給 platform-admin 使用者。您可以登入 platform-admin,然後執行下列指令,將角色指派給其他使用者:

    kubectl --kubeconfig ${KUBECONFIG} create rolebinding ${NAME} --role=sandbox-gpu-admin \
    --user=${USER} --namespace=sandbox-gpu-project
    

設定容器以使用 GPU 資源

  1. 在容器規格中加入 .containers.resources.requests.containers.resources.limits 欄位,為工作負載要求 GPU。sandbox-gpu-project 中的所有容器,在整個專案中最多可要求 4 個 GPU。下列範例會要求一個 GPU 做為容器規格的一部分。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      namespace: sandbox-gpu-project
      labels:
        app: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:latest
            resources:
            requests:
                nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1
            limits:
                nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1
    
  1. 容器也需要額外權限才能存取 GPU。針對要求 GPU 的每個容器,請在容器規格中新增下列權限:

    securityContext:
    seLinuxOptions:
      type: unconfined_t
    
  2. 套用容器資訊清單檔案:

    kubectl apply -f ${CONTAINER_MANIFEST_FILE_PATH} \
        -n sandbox-gpu-project \
        --kubeconfig ${KUBECONFIG}