TPU 스팟 VM 요청

스팟 VM은 미사용 용량을 대폭 할인된 가격으로 제공합니다. 스팟 VM은 언제든지 선점할 수 있지만 최대 런타임 기간이 없습니다. 선점형 TPU와는 다릅니다. 스팟 VM 인스턴스 또는 MIG를 다시 시작하려면 삭제한 후 다시 만들어야 합니다.

스팟 VM에 대한 자세한 내용은 스팟 VM에 대한 Compute Engine 문서를 참조하세요.

TPU 스팟 VM 만들기

TPU 스팟 VM을 개별 인스턴스로 만들거나 관리형 인스턴스 그룹 (MIG)의 일부로 만들 수 있습니다.

MIG로 TPU 스팟 VM을 만들려면 인스턴스 템플릿에서 스팟 프로비저닝 모델을 지정합니다.

  1. 인스턴스 템플릿 만들기:

    gcloud

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --project=PROJECT_ID \
        --machine-type=MACHINE_TYPE \
        --maintenance-policy=TERMINATE \
        --instance-termination-action=STOP \
        --provisioning-model=SPOT \
        --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT
    

    REST

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{
        "name": "INSTANCE_TEMPLATE_NAME",
        "properties": {
        "machineType": "MACHINE_TYPE",
        "disks": [
            {
            "boot": true,
            "initializeParams": {
                "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            }
            }
        ],
        "scheduling": {
            "onHostMaintenance": "TERMINATE",
            "provisioningModel": "SPOT",
            "instanceTerminationAction": "STOP"
        },
        "networkInterfaces": [
            {
            "network": "global/networks/default"
            }
        ]
        }
    }' \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
    

    다음 자리표시자를 바꿉니다.

    • PROJECT_ID: 프로젝트의 ID입니다. Google Cloud
    • INSTANCE_TEMPLATE_NAME: 인스턴스 템플릿의 이름입니다.
    • MACHINE_TYPE: TPU VM의 머신 유형 입니다(예: ct6e-standard-8t).
    • IMAGE_FAMILY: TPU VM의 OS 이미지 계열 입니다. 특정 OS 버전을 설치하려면 --image 플래그를 사용하세요. OS 이미지에 대한 자세한 내용은 OS 이미지를 참조하세요.
    • IMAGE_PROJECT: OS 이미지가 포함된 프로젝트입니다. TPU 이미지의 경우 ubuntu-os-accelerator-images입니다.
  2. 워크로드 정책 만들기

    다음 명령어는 워크로드 정책을 만듭니다. 단일 호스트 슬라이스의 경우 선택사항입니다.

    gcloud

    gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
    --type=high-throughput \
    --accelerator-topology=TOPOLOGY \
    --region=REGION
    

    REST

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "WORKLOAD_POLICY_NAME",
        "workloadPolicy": {
          "type": "HIGH_THROUGHPUT",
          "acceleratorTopology": "TOPOLOGY"
        }
      }' \
      "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies"
    

    다음 자리표시자를 바꿉니다.

    • PROJECT_ID: 프로젝트의 ID입니다. Google Cloud
    • WORKLOAD_POLICY_NAME: 워크로드 정책의 이름입니다.
    • TOPOLOGY: TPU VM의 토폴로지입니다(예: 4x4x8). 각 TPU 버전의 토폴로지에 대한 자세한 내용은 TPU 버전을 참조하세요.
    • REGION: 워크로드 정책의 리전입니다.
  3. MIG 만들기:

    gcloud

    gcloud compute instance-groups managed create MIG_NAME \
    --size=MIG_SIZE \
    --target-size-policy-mode=bulk \
    --template=INSTANCE_TEMPLATE_URL \
    --zone=ZONE \
    --default-action-on-vm-failure=do-nothing \
    --workload-policy=WORKLOAD_POLICY_URL
    

    REST

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
            "name": "MIG_NAME",
            "targetSize": MIG_SIZE,
            "targetSizePolicy": {
              "mode": "BULK"
            },
            "instanceTemplate": "INSTANCE_TEMPLATE_URL",
            "instanceLifecyclePolicy": {
              "defaultActionOnFailure": "DO_NOTHING"
            },
            "resourcePolicies": {
              "workloadPolicy": "WORKLOAD_POLICY_URL"
            }
          }' \
        "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"
    

    다음 자리표시자를 바꿉니다.

    • PROJECT_ID: 프로젝트의 ID입니다. Google Cloud
    • MIG_NAME: MIG의 이름입니다.
    • MIG_SIZE: MIG의 크기입니다.
    • INSTANCE_TEMPLATE_URL: MIG에서 인스턴스를 만드는 데 사용할 인스턴스 템플릿의 URL입니다. URL에는 인스턴스 템플릿의 ID 또는 이름이 포함될 수 있습니다. 다음 값 중 하나를 지정합니다.
      • 리전 인스턴스 템플릿의 경우: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • 전역 인스턴스 템플릿의 경우: INSTANCE_TEMPLATE_ID
    • ZONE: MIG의 영역입니다.
    • WORKLOAD_POLICY_URL: MIG에서 인스턴스를 만드는 데 사용할 워크로드 정책의 URL입니다. 예를 들면 projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME입니다.

단일 TPU VM 사용

단일 TPU 스팟 VM을 만들 수도 있습니다.

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --provisioning-model=SPOT \
  --instance-termination-action=DELETE \
  --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TPU_NAME",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        }
      }
    ],
    "scheduling": {
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "DELETE"
    },
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ]
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"

다음 자리표시자를 바꿉니다.

  • PROJECT_ID: 프로젝트의 ID입니다. Google Cloud
  • TPU_NAME: TPU VM의 이름입니다.
  • MACHINE_TYPE: TPU VM의 머신 유형 입니다 (예: ct6e-standard-8t).
  • IMAGE_FAMILY: TPU VM의 OS 이미지 계열 입니다. 특정 OS 버전을 설치하려면 --image 플래그를 사용하세요. OS 이미지에 대한 자세한 내용은 OS 이미지를 참조하세요.
  • IMAGE_PROJECT: OS 이미지가 포함된 프로젝트입니다. TPU 이미지의 경우 ubuntu-os-accelerator-images입니다.
  • ZONE: TPU VM의 영역 입니다 (예: us-central1-b).

Compute Engine의 스팟 VM에 대한 자세한 내용은 스팟 VM을 참조하세요.

가격 책정 및 할당량

TPU 스팟 VM의 가격 책정은 주문형 및 예약 TPU에 비해 훨씬 저렴합니다. 가격 책정에 대한 자세한 내용은 Cloud TPU 가격 책정을 참조하세요.

TPU 스팟 VM을 사용하려면 선점형 할당량이 필요합니다. 자세한 내용은 할당량을 참조하세요.

다음 단계