이 문서에서는 TPU 가상 머신 (VM) 인스턴스를 만드는 방법을 설명합니다. TPU VM은 단일 호스트 TPU 슬라이스라고도 합니다.
단일 호스트 슬라이스 그룹을 만들려면 단일 호스트 TPU 슬라이스로 MIG 만들기를 참조하세요.
시작하기 전에
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 서비스 및 API에 액세스하기 위해 ID를 확인합니다. Google Cloud 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.
이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.
gcloud
-
Google Cloud CLI를 설치합니다. 설치 후 Google Cloud CLI를 초기화하려면 다음 명령어를 실행합니다.
gcloud init외부 ID 공급업체 (IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
- 기본 리전 및 영역을 설정합니다.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.
Google Cloud CLI를 설치합니다.
외부 ID 공급업체 (IdP)를 사용하는 경우 먼저 제휴 ID로 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)이 필요한 경우 인스턴스를 다시 만들어야 합니다.