TPU 스팟 VM 요청
스팟 VM은 미사용 용량을 대폭 할인된 가격으로 제공합니다. 스팟 VM은 언제든지 선점할 수 있지만 최대 런타임 기간이 없습니다. 선점형 TPU와는 다릅니다. 스팟 VM 인스턴스 또는 MIG를 다시 시작하려면 삭제한 후 다시 만들어야 합니다.
스팟 VM에 대한 자세한 내용은 스팟 VM에 대한 Compute Engine 문서를 참조하세요.
TPU 스팟 VM 만들기
TPU 스팟 VM을 개별 인스턴스로 만들거나 관리형 인스턴스 그룹 (MIG)의 일부로 만들 수 있습니다.
다중 호스트 슬라이스에 MIG 사용 (권장)
MIG로 TPU 스팟 VM을 만들려면 인스턴스 템플릿에서 스팟 프로비저닝 모델을 지정합니다.
인스턴스 템플릿 만들기:
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_PROJECTREST
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입니다.
워크로드 정책 만들기
다음 명령어는 워크로드 정책을 만듭니다. 단일 호스트 슬라이스의 경우 선택사항입니다.
gcloud
gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \ --type=high-throughput \ --accelerator-topology=TOPOLOGY \ --region=REGIONREST
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 CloudWORKLOAD_POLICY_NAME: 워크로드 정책의 이름입니다.TOPOLOGY: TPU VM의 토폴로지입니다(예:4x4x8). 각 TPU 버전의 토폴로지에 대한 자세한 내용은 TPU 버전을 참조하세요.REGION: 워크로드 정책의 리전입니다.
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_URLREST
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 CloudMIG_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을 사용하려면 선점형 할당량이 필요합니다. 자세한 내용은 할당량을 참조하세요.
다음 단계
- TPU 관리 방법 알아보기