2022년 5월 TPU v4 가 발표되었다.
아직 GA 전이며, 현재 preview 상태로 1개의 리전 1개의 존에서만 제공된다.
TPU v2, v3 와의 가장 큰 차이점은 칩을 코어 단위가 아닌 칩단위로 슬라이스하여서 토폴로지(배치) 지정하여 구성할 수 있다는 것이다.
이로 인해, 보다 효율적으로 사용이 가능하다는 것이 Google의 주장이다.
아직 preview 이기에 사용을 하기전에는 Google에 연락하여 권한 및 할당량을 받아야한다.
또한 아직 콘솔 UI로 제공되지 않기에 gcloud로 구성하여야 한다.
# TPUv4는 VM 형태로만 지원이 되고 Node 아키텍처는 지원되지 않음.
# TPUv4 VM은 gcloud 로만 생성이 가능하며 us-central2 에서 사용
아래의 절차가 사전에 필요
- TPU API enable 설정
- gcloud로 TPU 서비스 계정 생성 (gcloud alpha compute tpus tpu-vm service-identity create --zone=us-central2-b)
-
TPU 가 사용할 Subnet 준비 (us-central2)
service-{프로젝트Number)@gcp-sa-tpu.iam.gserviceaccount.com 권한 부여
VM ssh 접속을 위해선 private-google-access 필요 - Google 계정팀에 엑세스 권한 요청
# Subnet 대역
TPU 코어 수의 1/4 (코어/4)에 해당하는 충분한 주소를 제공하는 범위. (칩 당 2개의 코어)
예시>
v4-512 -> 512 코어 -> 128개의 IP -> /25
v4-8, v4-32 -> 8 코어, 32 코어 -> 8개의 IP -> /29
https://cloud.google.com/tpu/docs/internal-ip-blocks?hl=ko#manual_ip_address_configuration
# TPUv4 VM 을 shared-vpc에 생성하는 gcloud 명령어
gcloud alpha compute tpus tpu-vm create {tpu-vm-name} --zone us-central2-b --accelerator-type {Type} --network (shared-vpc} --subnetwork {subnetwork} --version {runtime-version} --project {project-id}
-
runtime-version:
JAX를 사용하는 경우 tpu-vm-v4-base 를 사용
PyTorch를 사용하는 경우 v2-alpha-tpuv4 를 사용
v4-8 TPU에서 TensorFlow를 사용하는 경우 tpu-vm-tf-2.9.1-v4 를 사용
더 큰 포드 슬라이스에서 TensorFlow를 사용하는 경우 tpu-vm-tf-2.9.1-pod-v4 를 사용 -
칩 단위 지정하는 사용은 TPUv4 VM 생성:"--accelerator-type v4-32" 대신 "--accelerator-config V4_POD-2x2x4" 을 설정.원하는 토폴로지(ex. 2x2x4)를 지정해서 사용.(--accelerator-type 은 코어 단위로 사용)
-
선점형 TPU를 만들기 위해서는 위의 TPUv4 VM 생성 gcloud 명령어 수행 시,"--preemptible" 옵션을 추가.
-
tag 를 추가하여 네트워크 방화벽 룰을 적용시키고 싶다면,"--tags" 옵션을 추가.
-
내부 IP 대역으로만 접근 및 사용을 하고 싶다면,"--internal-ips" 옵션을 추가.
TPU gcloud 명령어 가이드
https://cloud.google.com/sdk/gcloud/reference/alpha/compute/tpus/tpu-vm/create?hl=ko#--reserved