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