建立含有 GPU VM 的 MIG


本文件說明如何使用已連接 GPU 的虛擬機器 (VM) 執行個體,建立代管執行個體群組 (MIG)。說明如何使用大小調整要求,一次在群組中新增多個 GPU VM。如要在 MIG 中建立可使用叢集管理員提供的功能和服務的調整大小要求,請參閱 AI Hypercomputer 說明文件中的「建立 MIG 和調整大小要求」。

使用調整大小要求可提高 MIG 中 GPU VM 的可取得性。在要求中,請指定 GPU VM 數量和要執行這些 VM 的時間長度。動態工作負載排程器 (DWS)是基礎排程器機制,會根據要求的時間長度和資源可用性,排定在 Compute Engine 中建立的調整大小要求。資源可用時,MIG 會自動建立 VM。

如果在這些 VM 上執行的工作比要求的時間提早結束,您可以刪除這些 VM。否則,MIG 會在期限結束時自動刪除 VM。

您也可以參閱其他建立 MIG 的基本情境

事前準備

  • 如要確保您有足夠的 GPU 配額可用於要求的資源,請查看 GPU 配額
  • 如要瞭解配額消耗量,請參閱「GPU VM 和可先占分配配額」。
  • 如果尚未設定,請先設定驗證機制。驗證是指驗證身分,以便存取 Google Cloud 服務和 API 的程序。如要在本機開發環境中執行程式碼或範例,您可以選取下列任一選項,向 Compute Engine 進行驗證:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.

    REST

    To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    For more information, see Authenticate for using REST in the Google Cloud authentication documentation.

限制

請詳閱在 MIG 中建立調整大小要求的限制

建立 MIG 並一次新增多個 GPU VM

如要建立 MIG 並在群組中一次新增多個 GPU VM,請按照下列步驟操作:

  1. 建立執行個體範本,以便建立 MIG。MIG 會根據執行個體範本建立群組中的每個 VM。在範本中指定 GPU VM 的設定,以及使用調整大小要求所需的其他設定。

    如要進一步瞭解執行個體範本,請參閱「關於執行個體範本」。

  2. 建立 MIG 和大小調整要求,一次新增多個 GPU VM。

建立執行個體範本

按照本節所述建立執行個體範本,然後使用範本建立 MIG

主控台

  1. 前往「Instance templates」(執行個體範本) 頁面。

    前往「Instance templates」(執行個體範本) 頁面

  2. 點選「建立執行個體範本」

  3. 在「Name」欄位中,輸入執行個體範本的名稱。

  4. 在「機器設定」專區中,執行下列操作:

    1. 按一下「GPU」分頁標籤。
    2. 在「GPU type」清單中選取 GPU 類型。
    3. 在「Number of GPUs」(GPU 數量) 清單中,選取 GPU 數量。
    4. 在「Machine type」(機器類型) 清單中選取機器類型。
  5. 選用步驟:如要變更預設值開機磁碟類型或映像檔,請在「Boot disk」(開機磁碟) 部分中按一下「Change」(變更)。然後按照提示變更開機磁碟。

  6. 展開「進階選項」部分,然後執行下列操作:

    1. 展開「管理」部分。
    2. 在「Reservations」清單中,選取「Don't use」
  7. 按一下 [建立]。

gcloud

使用 instance-templates create 指令建立執行個體範本。

下列指令會根據深度學習 VM 映像檔建立全球執行個體範本。

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-project=deeplearning-platform-release \
    --image-family=common-cu121 \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=none

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE支援 GPU 的機器類型。如果您指定 N1 機器類型,請加入 --accelerator 標記,指定要附加至 VM 的 GPU 數量和類型。

REST

instanceTemplates.insert 方法發出 POST 要求,建立執行個體範本。

以下要求會根據深度學習 VM 映像檔建立全球執行個體範本。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "mode": "READ_WRITE",
        "type": "PERSISTENT",
        "initializeParams": {
          "sourceImage": "projects/deeplearning-platform-release/global/images/family/common-cu121"
        }
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-IP",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "NO_RESERVATION"
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE"
    }
  }
}

更改下列內容:

  • PROJECT_ID:您要在其中建立 MIG 的專案 ID。
  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE支援 GPU 的機器類型。如果您指定 N1 機器類型,請加入 guestAccelerators 欄位,指定要附加至 VM 的 GPU 數量和類型。

建立 MIG 並一次新增多個 GPU VM

請按照本節說明建立 MIG。如要在 MIG 中使用大小調整要求,請勿設定自動調度資源,並且必須關閉修復

主控台

  1. 前往「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組)

  2. 點選「建立執行個體群組」

  3. 輸入下列欄位:

    1. 名稱:輸入群組名稱。
    2. Instance template:選取您在上一節中設定的執行個體範本。
    3. 在「地區」部分中:
      1. 選取「單一可用區」
      2. 在「Region」和「Zone」清單中,選取要建立群組的位置。

    刪除自動調度資源設定並在後續步驟中關閉修復功能後,系統會啟用「執行個體數量」欄位,供您進行編輯。

  4. 刪除自動調度資源設定的方式如下:

    1. 在「Autoscaling」部分,按一下「Autoscaling mode」清單,然後點選「Delete autoscaling configuration」
    2. 在「Delete autoscaling configuration?」對話方塊中,按一下「Delete」
  5. 按照下列步驟在 MIG 中關閉修復功能:

    在「VM 執行個體生命週期」部分,將「失敗時的預設動作」欄位設為「沒有動作」

  6. 指定建立調整大小要求的 GPU VM 數量和執行時間:

    1. 在「Number of instances」(執行個體數量) 欄位中,輸入要一次建立的 GPU VM 數量。

      「Create instance group」(建立執行個體群組) 頁面上的「instances number」(執行個體數量) 欄位。

    2. 勾選「透過大小調整要求一次建立多個 VM」核取方塊。系統會顯示輸入放送時間長度的欄位。

    3. 在「Requested run duration」欄位和「Unit」清單中,指定 GPU VM 的執行時間長度。時長必須介於 1 小時至 7 天之間。

  7. 按一下 [建立]。

gcloud

  1. 使用 instance-groups managed create 指令建立可用區 MIG。

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
       --template=INSTANCE_TEMPLATE_NAME \
       --size=0 \
       --zone=ZONE \
       --default-action-on-vm-failure=do_nothing
    
  2. 在 MIG 中,使用 instance-groups managed resize-requests create 指令建立調整大小要求。指定所需的 GPU VM 數量,以及要執行這些 VM 的時間長度。

    gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
       --resize-request=RESIZE_REQUEST_NAME \
       --resize-by=COUNT \
       --requested-run-duration=RUN_DURATION\
       --zone=ZONE
    

更改下列內容:

  • INSTANCE_GROUP_NAME:MIG 名稱。
  • INSTANCE_TEMPLATE_NAME:GPU VM 的執行個體範本名稱。
  • ZONE:可用於 Compute Engine 的其中一個區域
  • RESIZE_REQUEST_NAME:重新調整大小要求的名稱。
  • COUNT:在群組中一次新增的 VM 數量。
  • RUN_DURATION:您希望要求的 VM 執行多久。值的格式必須是天數、小時、分鐘或秒數,後面分別接上 dhms。例如,指定 30m 為 30 分鐘,或 1d2h3m4s 為 1 天、2 小時、3 分鐘和 4 秒。這個值必須介於 10 分鐘至 7 天之間。

REST

  1. instanceGroupManagers.insert 方法發出 POST 要求,建立區域 MIG。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    
    {
     "versions": [
       {
         "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
       }
     ],
     "name": "INSTANCE_GROUP_NAME",
     "targetSize": 0,
     "instanceLifecyclePolicy": {
       "defaultActionOnFailure": "DO_NOTHING"
     }
    }
    
  2. 在 MIG 中,對 instanceGroupManagerResizeRequests.insert 方法發出 POST 要求,即可建立大小調整要求。在要求主體中,指定要一次建立的 GPU VM 數量,以及要執行這些 VM 的時間長度。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    
    {
     "name": "RESIZE_REQUEST_NAME",
     "resizeBy": COUNT,
     "requestedRunDuration": {
       "seconds": "RUN_DURATION"
     }
    }
    

更改下列內容:

  • PROJECT_ID:您要在其中建立 MIG 的專案 ID。
  • INSTANCE_GROUP_NAME:MIG 名稱。
  • INSTANCE_TEMPLATE_NAME:GPU VM 的執行個體範本名稱。
  • ZONE:可用於 Compute Engine 的其中一個區域
  • RESIZE_REQUEST_NAME:重新調整大小要求的名稱。
  • COUNT:在群組中一次新增的 VM 數量。
  • RUN_DURATION:您希望要求的 VM 在 MIG 自動刪除前執行的時間長度 (以秒為單位)。這個值必須介於 600 (600 秒,即 10 分鐘) 和 604800 (604,800 秒,即 7 天) 之間。

您建立的大小調整要求會維持在 ACCEPTED 狀態,直到 MIG 建立所有要求的 GPU VM 為止。群組中所有 GPU VM 都建立完成後,要求的狀態就會變更為 SUCCEEDED

後續步驟