이 문서에서는 TPU 가상 머신 (VM) 인스턴스를 만드는 방법을 설명합니다. TPU VM은 단일 호스트 TPU 슬라이스라고도 합니다.
단일 호스트 슬라이스 그룹을 만들려면 단일 호스트 TPU 슬라이스로 MIG 만들기를 참조하세요.
시작하기 전에
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 서비스 및 API에 액세스하기 위해 ID를 확인합니다. Google Cloud 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.
이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.
gcloud
-
Google Cloud CLI를 설치한 후 제휴 ID로 gcloud CLI에 로그인합니다. 로그인한 후 Google Cloud CLI를 초기화하려면 다음 명령어를 실행합니다.
gcloud init
-
- 기본 리전 및 영역을 설정합니다.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.
자세한 내용은 인증 문서의 REST 사용을 위한 인증 을 참조하세요. Google Cloud
기본 요건
TPU 인스턴스를 만들기 전에 다음 작업을 실행해야 합니다.
TPU 버전 선택: 워크로드에 적합한 TPU 버전을 선택합니다. 워크로드 유형별 TPU 버전 목록은 워크로드 유형별 권장 TPU 버전을 참조하세요.
선호하는 위치에서 TPU 가용성 확인: TPU는 특정 리전에서 사용할 수 있습니다. Google Cloud TPU 버전을 사용하려면 선호하는 리전에서 사용할 수 있는지 확인하세요. TPU 위치 목록은 TPU 가용성을 참조하세요.
프로젝트에 충분한 TPU 할당량이 있는지 확인: 주문형 또는 스팟 VM으로 TPU 인스턴스를 만드는 경우 사용하려는 리전에서 사용 가능한 TPU 할당량이 충분해야 합니다. TPU 예약을 사용하는 TPU 인스턴스를 만들 때는 예약이 생성될 때 할당량이 사용되므로 TPU 할당량이 필요하지 않습니다. TPU 할당량 이름 목록은 TPU 할당량을 참조하고 할당량을 보는 방법에 대한 안내는 할당량 보기 및 관리를 참조하세요.
TPU 소비 옵션 선택: 워크로드, 기간, 비용 요구사항에 가장 적합한 소비 옵션을 선택합니다. TPU 버전별 소비 옵션 가용성 목록은 TPU 소비 옵션을 참조하세요.
TPU VM 인스턴스 만들기
TPU VM 인스턴스를 만드는 데 사용하는 매개변수는 사용 중인 소비 옵션(주문형, 스팟, 예약에 따름, Flex-start)에 따라 다릅니다. 자세한 내용은 VM 프로비저닝 모델 정보 를 참조하세요.
주문형 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: 프로젝트의 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).
TPU 스팟 VM 인스턴스 만들기
TPU 스팟 VM 인스턴스를 만들려면
gcloud compute instances create 명령어
와 함께 --provisioning-model=SPOT 플래그를 사용하세요.
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).
예약을 사용하여 TPU VM 인스턴스 만들기
예약에 따름 소비 옵션을 사용하여 TPU VM 인스턴스를 만들려면
gcloud compute instances create 명령어
와 함께 --reservation-affinity=specific 및 --reservation 플래그를 사용하세요.
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: 프로젝트의 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). - RESERVATION_NAME: 예약의 이름입니다.
TPU Flex-start VM 만들기
TPU Flex-start VM 인스턴스를 만들려면
gcloud compute instances create 명령어
와 함께 --provisioning-model=FLEX_START 플래그를 사용하세요.
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: 프로젝트의 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). - MAX_RUN_DURATION: TPU VM의 최대 실행 시간입니다 (예:
6h). REST의 경우 초 단위로 지정합니다 (예: 6시간의 경우21600). - VALID_DURATION: 요청이 유효한 최대 기간입니다. REST의 경우 초 단위로 지정합니다 (예: 1시간의 경우
3600). 요청이 유효합니다.
Compute Engine 인스턴스 만들기에 대한 자세한 내용은 Compute Engine 인스턴스 만들기 및 시작을 참조하세요.
제한사항
수명 주기 작업: TPU 인스턴스를 중지, 시작, 재개 또는 일시중지할 수 없습니다. 다시 시작해야 하는 구성을 변경하거나 요금 발생을 중지하려면 인스턴스를 삭제해야 합니다.
VM 세부정보 업데이트: 새로고침 (
REFRESH) 작업만 필요한 속성을 업데이트 할 수 있습니다. 구성에 다시 시작 (RESTART)이 필요한 경우 인스턴스를 다시 만들어야 합니다.