Compute Engine을 사용하여 Cloud TPU VM 인스턴스 만들기
이 문서에서는 Compute Engine gcloud compute instances create 명령어를 사용하여 단일 TPU VM을 만드는 방법을 보여줍니다. 인스턴스 템플릿을 지정하여 TPU VM 인스턴스를 만들 수도 있습니다. 자세한 내용은 인스턴스 템플릿에서 VM 만들기를 참고하세요.
기본 요건
다음 기본 요건을 완료합니다.
TPU용 Google Cloud 프로젝트 설정에 설명된 대로 TPU용 Google Cloud 프로젝트를 만듭니다.
Cloud TPU 리소스 계획에 설명된 대로 TPU 요구사항을 확인합니다.
TPU VM 인스턴스 만들기
TPU VM 인스턴스를 만드는 데 사용하는 매개변수는 사용 중인 소비 옵션(주문형, 스팟, 예약에 따름, 플렉스 시작)에 따라 다릅니다. 자세한 내용은 TPU 리소스 계획을 참고하세요.
온디맨드 TPU VM 인스턴스 만들기
온디맨드 TPU VM 인스턴스를 만들려면 gcloud compute instances create 명령어를 사용합니다.
gcloud
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--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"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"
다음 자리표시자를 바꿉니다.
- PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
- 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)
TPU 스팟 VM 인스턴스 만들기
TPU 스팟 VM 인스턴스를 만들려면 --provisioning-model=SPOT 플래그와 함께 gcloud compute instances create 명령어를 사용합니다.
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: Google Cloud 프로젝트의 ID입니다.
- 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)
예약을 사용하여 TPU VM 인스턴스 만들기
예약에 바인딩된 소비 옵션을 사용하여 TPU VM 인스턴스를 만들려면 --reservation-affinity=specific 및 --reservation 플래그와 함께 gcloud compute instances create 명령어를 사용합니다.
gcloud
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--provisioning-model=reservation-bound \
--reservation-affinity=specific \
--reservation=RESERVATION_NAME \
--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": "RESERVATION_BOUND",
"instanceTerminationAction": "DELETE"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"reservationAffinity": {
"consumeReservationType": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_NAME"
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"
다음 자리표시자를 바꿉니다.
- PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
- 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) - RESERVATION_NAME: 예약의 이름입니다.
TPU Flex-start VM 만들기
TPU Flex-start VM 인스턴스를 만들려면 --provisioning-model=FLEX_START 플래그와 함께 gcloud compute instances create 명령어를 사용합니다.
gcloud
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--provisioning-model=FLEX_START \
--max-run-duration=MAX_RUN_DURATION \
--request-valid-for-duration=VALID_DURATION \
--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"
}
}
],
"params": {
"requestValidForDuration": {
"seconds": VALID_DURATION
}
},
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "FLEX_START",
"instanceTerminationAction": "DELETE",
"maxRunDuration": {
"seconds": MAX_RUN_DURATION
}
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"
다음 자리표시자를 바꿉니다.
- PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
- 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) - MAX_RUN_DURATION: TPU VM의 최대 실행 기간입니다 (예:
6h). REST의 경우 이를 초 수로 지정합니다 (예: 6시간의 경우21600). - VALID_DURATION: 요청이 유효한 최대 기간입니다. REST의 경우 초 단위로 지정합니다 (예: 1시간의 경우
3600).
Compute Engine 인스턴스 만들기에 관한 자세한 내용은 Compute Engine 인스턴스 만들기 및 시작을 참고하세요.
다음 단계
- 단일 호스트 Cloud TPU 슬라이스로 MIG를 만드는 방법을 알아보세요.
- 멀티 호스트 Cloud TPU 슬라이스로 MIG를 만드는 방법을 알아보세요.
- TPU VM을 관리하는 방법 알아보기
- GKE의 TPU에 대해 알아봅니다.
- TPU에서 vLLM으로 Qwen2-72B-Instruct 서빙과 같이 TPU에서 ML 워크로드를 실행하는 방법을 알아봅니다.