선점형 TPU

선점형 TPU 비용은 비선점형 TPU보다 훨씬 저렴합니다. Cloud TPU 서비스는 TPU 리소스가 추가로 필요할 때 언제든지 이러한 TPU를 선점(종료)할 수 있습니다.

선점형 TPU VM을 만드는 경우 gcloud 명령어를 사용하세요. 선점형 TPU 노드를 만드는 경우 gcloud 명령어 또는 콘솔을 사용할 수 있습니다. TPU VM과 TPU 노드의 차이점에 대한 자세한 내용은 시스템 아키텍처를 참조하세요.

선점형 TPU VM 만들기

gcloud

$ gcloud compute tpus tpu-vm create demo-tpu \
  --zone=europe-west4-a \
  --accelerator-type=v3-8 \
  --version=tpu-vm-tf-2.16.1-pjrt \
  --preemptible
  

각 매개변수는 다음과 같습니다.

  • demo-tpu는 TPU의 이름입니다.
  • --accelerator-type은 TPU의 유형을 지정합니다.
  • --version은 설치할 TPU VM 소프트웨어의 버전을 지정합니다.
  • --preemptible은 Cloud TPU에서 TPU를 선점하도록 허용합니다.

선점형 TPU 노드 만들기

콘솔

  1. 기본 페이지의 Compute Engine 아래에서 TPU 페이지로 이동합니다.
  2. TPU 노드 만들기를 클릭하여 TPU 노드 만들기 페이지를 엽니다.
  3. TPU 노드 이름을 입력합니다.
  4. TPU 노드를 만들 영역을 선택합니다.
  5. TPU 노드의 TPU 유형을 선택합니다.
  6. 이 노드에 선점 사용 설정을 클릭하여 TPU 노드를 선점형으로 만듭니다.
  7. VM에 설치할 TensorFlow 또는 PyTorch 버전을 선택합니다.

gcloud

$ gcloud compute tpus execution-groups create \
  --name=demo-tpu \
  --zone=europe-west4-a \
  --accelerator-type=v3-8 \
  --tf-version=2.12.0 \
  --preemptible
  

각 매개변수는 다음과 같습니다.

  • demo-tpu는 TPU의 이름입니다.
  • `--accelerator-type은 TPU의 유형을 지정합니다.
  • --tf-version은 VM에 설치할 TensorFlow 또는 PyTorch 버전을 지정합니다.
  • --preemptible은 Cloud TPU에서 TPU를 선점하도록 허용합니다.

TPU 노드를 사용하면 TPU의 선점형 상태는 VM 인스턴스의 선점형 상태와 무관합니다.

선점형 TPU 가격 및 할당량

선점형 TPU 가격은 일반 TPU에 비해 훨씬 저렴합니다. 자세한 내용은 가격 책정 페이지를 참조하세요. 만든 후 1분 내에 선점된 TPU에 대해서는 요금이 청구되지 않습니다.

선점형 TPU의 할당량은 일반적으로 높은 편이며 일반 TPU의 할당량과는 분리되어 있습니다. 자세한 내용은 할당량 페이지를 참조하세요.

TPU의 선점 여부 감지

다음 gcloud 명령어를 사용하여 Cloud TPU 서비스가 TPU를 선점했는지 확인합니다.

사용 가능한 TPU를 나열합니다.

TPU VM

gcloud compute tpus tpu-vm list --zone=us-central1-b

TPU 노드

(vm)$ gcloud compute tpus list --zone=us-central1-b

이 명령어의 출력에는 프로젝트에서 만든 TPU의 세부정보가 표시됩니다. TPU가 선점된 경우 상태가 READY에서 PREEMPTED로 변경됩니다.

예를 들면 다음과 같습니다.

NAME       ZONE           ACCELERATOR_TYPE  NETWORK_ENDPOINT   NETWORK  RANGE          STATUS
demo-tpu   us-central1-b  v2-8              10.240.1.2:8470    default  10.240.1.0/29  PREEMPTED

선점형 VM 및 TPU(TPU 노드만 해당)

프레임워크 빠른 시작 가이드에서 설명한 바와 같이, TPU에 연결하려면 Compute Engine 가상 머신(VM)이 필요합니다. TPU의 선점형 상태는 VM의 선점형 상태와 별개입니다. TPU를 선점형으로 정의하고 VM을 비선점형으로 정의하거나, 반대로 정의할 수도 있습니다. 또한 둘 다 선점형으로 정의할 수도 있습니다.

선점형 TPU비선점형 VM으로 조합하는 경우가 가장 많습니다. 다음과 같은 사실에 유의하세요.

  • VM 요금이 TPU 요금에 비해 저렴할 가능성이 높습니다. VM 요금은 사용하는 머신 유형에 따라 다릅니다. 가격 책정 페이지에서 관련 요금의 예시를 참조하세요.
  • Cloud TPU가 VM 및 TPU의 선점을 조정하지는 않습니다. 둘 다 선점형으로 정의하면 VM 및 TPU가 서로 다른 시기에 선점될 수 있습니다.
  • Compute Engine이 내 VM을 선점해도 TPU 요금이 청구됩니다(TPU가 자체 선점된 경우 제외). VM이 선점된 상태에서 TPU는 유휴 상태입니다.
  • 선점형 인스턴스인 Compute Engine VM 및 Cloud TPU 인스턴스 둘 다 언제나 24시간 동안 실행된 후에 선점됩니다. 특정 작업은 이 24시간 카운터를 재설정합니다.

VM 인스턴스가 선점되었는지 감지(TPU 노드만 해당)

VM 인스턴스가 선점되었는지 확인하려면 gcloud compute operations list 명령어를 사용하여 최근 시스템 작업의 목록을 가져옵니다. 실행 중인 인스턴스만 표시하려면 name 필터를 추가하고 선점된 리소스만 표시하려면 operationType 필터를 추가합니다. 예를 들어, 다음 명령어를 사용하여 지정된 인스턴스 이름이 있는 인스턴스만 표시합니다.

$ gcloud compute operations list--filter="name=( 'NAME' my-vm)"

다음 예시에서는 선점된 리소스만 표시합니다.

$ gcloud compute operations list --filter="operationType=compute.instances.preempted"

자세한 내용은 Compute Engine 가이드를 참조하세요.

선점형 TPU에서 실행되도록 머신러닝 애플리케이션 설계

재시작 시 모델 체크포인트를 정기적으로 저장하고 가장 최근 체크포인트를 복원하도록 애플리케이션을 구성하여 애플리케이션이 VM 및 TPU의 재시작에 탄력적으로 반응하는지 확인합니다.