TPU 구성

v5p TPU 구성

TPU v5p 포드는 재구성이 가능한 고속 링크로 상호 연결된 8,960개의 칩으로 구성되어 있습니다. TPU v5p의 유연한 네트워킹을 사용하면 다양한 방식으로 칩을 동일한 크기의 슬라이스로 연결할 수 있습니다. gcloud compute tpus tpu-vm create 명령어를 사용하여 TPU 슬라이스를 만들 때 AcceleratorType 또는 AcceleratorConfig 매개변수를 사용하여 유형과 형태를 지정합니다.

다음 표는 v5p에서 지원되는 가장 일반적인 단일 슬라이스 모양과 큐브 1개보다 큰 대부분의 큐브 형태를 보여줍니다. 최대 v5p 형태는 16x16x24(칩 6,144개, 큐브 96개)입니다.

슬라이스 모양 VM 크기 코어 수 칩 수 머신 수 큐브 수 왜곡 지원 여부
2x2x1 전체 호스트 8 4 1 해당 사항 없음 해당 사항 없음
2x2x2 전체 호스트 16 8 2 해당 사항 없음 해당 사항 없음
2x4x4 전체 호스트 64 32 8 해당 사항 없음 해당 사항 없음
4x4x4 전체 호스트 128 64 16 1 해당 사항 없음
4x4x8 전체 호스트 256 128 32 2
4x8x8 전체 호스트 512 256 64 4
8x8x8 전체 호스트 1024 512 128 8 해당 사항 없음
8x8x16 전체 호스트 2048 1024 256 16
8x16x16 전체 호스트 4096 2048 512 32
16x16x16 전체 호스트 8192 4096 1024 64 해당 사항 없음
16x16x24 전체 호스트 12288 6144 1536 96 해당 사항 없음

단일 슬라이스 학습은 최대 6,144개의 칩에 지원됩니다. 멀티슬라이스를 사용하여 18,432개 칩으로 확장할 수 있습니다. 멀티슬라이스 세부정보는 Cloud TPU 멀티슬라이스 개요를 참조하세요.

AcceleratorType 매개변수 사용

TPU 리소스를 할당할 때는 --accelerator-type 인수를 사용하여 슬라이스의 TensorCore 수를 지정합니다. --accelerator-type은 형식이 지정된 문자열 'v$VERSION_NUMBERp-$CORES_COUNT'입니다. 예를 들어 v5p-32는 32개의 TensorCore(칩 16개)가 있는 v5p TPU 슬라이스를 지정합니다.

v5p 학습 작업용으로 TPU를 프로비저닝하려면 CLI 또는 TPU API 만들기 요청에 다음 가속기 유형 중 하나를 사용합니다.

  • v5p-8
  • v5p-16
  • v5p-32
  • v5p-64
  • v5p-128(전체 큐브/랙)
  • v5p-256(큐브 2개)
  • v5p-512
  • v5p-1024 ... v5p-12288

AcceleratorConfig 매개변수 사용

v5p 이상 Cloud TPU 버전의 경우 AcceleratorConfig가 Cloud TPU v4와 거의 동일한 방식으로 사용됩니다. 차이점은 TPU 유형을 --type=v4로 지정하는 대신 사용 중인 TPU 버전으로 지정한다는 것입니다(예: v5p 출시 버전의 경우 --type=v5p).

Cloud TPU ICI 복원력

ICI 복원력은 큐브 간에 TPU를 연결하는 광 연결 및 광학 회로 스위치(OCS)의 내결함성을 개선하는 데 도움이 됩니다. (큐브 내의 ICI 연결은 영향을 받지 않는 구리 연결을 사용합니다.) ICI 복원력은 OCS 및 광 ICI 결함에 대해 ICI 연결을 라우팅할 수 있게 해줍니다. 그 결과 ICI 성능에 일시적인 성능 저하가 발생하는 대신 TPU 슬라이스의 예약 가용성이 향상됩니다.

Cloud TPU v4와 마찬가지로 ICI 복원력은 큐브가 1개 이상인 v5p 슬라이스에 기본적으로 사용 설정됩니다.

  • 가속기 유형 지정 시 v5p-128
  • 가속기 구성 지정 시 4x4x4

VM, 호스트, 슬라이스 속성

속성 TPU 값
v5p 칩 수 4
vCPU 개수 208개(NUMA 간 성능 저하를 방지하기 위해 NUMA 바인딩을 사용하는 경우 절반만 사용 가능)
RAM(GB) 448개(NUMA 간 성능 저하를 방지하기 위해 NUMA 바인딩을 사용하는 경우 절반만 사용 가능)
NUMA 노드 수 2
NIC 처리량(Gbps) 200

포드의 TensorCore, 칩, 호스트/VM, 큐브 수 간의 관계:

코어 호스트/VM 큐브
호스트 8 4 1
큐브(랙) 128 64 16 1
지원되는 최대 슬라이스 12288 6144 1536 96
v5p 전체 포드 17920 8960 2240 140

TPU v5e 구성

Cloud TPU v5e는 학습 및 추론(제공) 제품 조합입니다. 학습 환경과 추론 환경을 구분하려면 TPU API에 AcceleratorType 또는 AcceleratorConfig 플래그를 사용하거나 GKE 노드 풀을 만들 때 --machine-type 플래그를 사용하세요.

학습 작업은 처리량과 가용성에 최적화되어 있고 서빙 작업은 지연 시간에 최적화되어 있습니다. 따라서 서빙용으로 프로비저닝된 TPU에서는 학습 작업의 가용성이 낮을 수 있고, 학습용으로 프로비저닝된 TPU에서 서빙 작업을 실행하면 지연 시간이 길어질 수 있습니다.

AcceleratorType을 사용하여 사용할 TensorCore 수를 지정합니다. gcloud CLI 또는 Google Cloud 콘솔을 사용하여 TPU를 만들 때 AcceleratorType을 지정합니다. AcceleratorType에 지정하는 값은 v$VERSION_NUMBER-$CHIP_COUNT 형식의 문자열입니다.

AcceleratorConfig를 사용하여 사용할 TensorCore 수를 지정할 수도 있습니다. 그러나 TPU v5e에 대한 커스텀 2D 토폴로지 변형이 없으므로 AcceleratorConfigAcceleratorType을 사용하는 데 차이가 없습니다.

AcceleratorConfig를 사용하여 TPU v5e를 구성하려면 --version--topology 플래그를 사용합니다. --version을 사용할 TPU 버전으로 설정하고 --topology를 Pod 슬라이스에 있는 TPU 칩의 물리적 배열로 설정합니다. AcceleratorConfig에 지정하는 값은 AxB 형식의 문자열이며, 여기서 AB는 각 방향의 칩 수입니다.

v5e에는 다음 2D 슬라이스 형태가 지원됩니다.

토폴로지 TPU 칩 수 호스트 수
1x1 1 1/8
2x2 4 1/2
2x4 8 1
4x4 16 2
4x8 32 4
8x8 64 8
8x16 128 16
16x16 256 32

v5e TPU 슬라이스의 각 TPU VM에는 1개, 4개 또는 8개의 칩이 포함되어 있습니다. 칩이 4개인 작은 슬라이스에서는 모든 TPU 칩이 동일한 비균일 메모리 액세스(NUMA) 노드를 공유합니다.

칩이 8개인 v5e TPU VM의 경우 NUMA 파티션 내에서 CPU-TPU 통신이 더 효율적입니다. 예를 들어 다음 그림에서 CPU0-Chip0 통신은 CPU0-Chip4 통신보다 빠릅니다.

NUMA 노드 통신

서빙을 위한 Cloud TPU v5e 유형

단일 호스트 서빙은 최대 8개의 v5e 칩에 지원됩니다. 1x1, 2x2, 2x4 슬라이스 구성이 지원됩니다. 각 슬라이스에는 칩이 1개, 4개, 8개 있습니다.

서빙을 지원하는 TPU v5e 구성: 1x1, 2x2, 2x4

서빙 작업용으로 TPU를 프로비저닝하려면 CLI 또는 API TPU 만들기 요청에 다음 가속기 유형 중 하나를 사용합니다.

AcceleratorType(TPU API) 머신 유형(GKE API)
v5litepod-1 ct5lp-hightpu-1t
v5litepod-4 ct5lp-hightpu-4t
v5litepod-8 ct5lp-hightpu-8t

8개를 초과하는 v5e 칩에 대한 서빙(멀티 호스트 서빙이라고도 함)은 Sax를 사용하여 지원됩니다. 자세한 내용은 대규모 언어 모델 서빙을 참조하세요.

학습용 Cloud TPU v5e 유형

학습은 최대 256개의 칩에 대해 지원됩니다.

v5e 학습 작업용으로 TPU를 프로비저닝하려면 CLI 또는 API TPU 만들기 요청에 다음 가속기 유형 중 하나를 사용합니다.

AcceleratorType(TPU API) 머신 유형(GKE API) 토폴로지
v5litepod-16 ct5lp-hightpu-4t 4x4
v5litepod-32 ct5lp-hightpu-4t 4x8
v5litepod-64 ct5lp-hightpu-4t 8x8
v5litepod-128 ct5lp-hightpu-4t 8x16
v5litepod-256 ct5lp-hightpu-4t 16x16

v5e TPU VM 유형 비교:

VM 유형 n2d-48-24-v5lite-tpu n2d-192-112-v5lite-tpu n2d-384-224-v5lite-tpu
v5e 칩 수 1 4 8
vCPU 개수 24 112 224
RAM(GB) 48 192 384
NUMA 노드 수 1 1 2
적용 대상 v5litepod-1 v5litepod-4 v5litepod-8
중단 높음 보통 성과자 적음

칩이 더 많이 필요한 워크로드를 위한 공간을 확보하기 위해 스케줄러는 칩이 더 적은 VM을 선점할 수 있습니다. 따라서 칩이 8개인 VM에서 칩 1개 및 칩 4개로 구성된 VM을 선점할 가능성이 높습니다.

TPU v4 구성

TPU v4 Pod는 재구성이 가능한 고속 링크로 상호 연결된 4,096개의 칩으로 구성되어 있습니다. TPU v4의 유연한 네트워킹을 사용하면 다양한 방식으로 칩을 동일한 크기의 Pod 슬라이스로 연결할 수 있습니다. TPU Pod 슬라이스를 만들 때 TPU 버전과 필요한 TPU 리소스 수를 지정합니다. TPU v4 Pod 슬라이스를 만들 때 AcceleratorTypeAcceleratorConfig 두 가지 방법 중 하나로 유형과 크기를 지정할 수 있습니다.

AcceleratorType 사용

토폴로지를 지정하지 않는 경우 AcceleratorType을 사용합니다. AcceleratorType을 사용하여 v4 TPU를 구성하려면 TPU Pod 슬라이스를 만들 때 --accelerator-type 플래그를 사용합니다. --accelerator-type을 TPU 버전과 사용하려는 TensorCore 수를 포함하는 문자열로 설정합니다. 예를 들어 TensorCore 32개가 있는 v4 Pod 슬라이스를 만들려면 --accelerator-type=v4-32를 사용합니다.

다음 명령어는 --accelerator-type 플래그를 사용하여 512개의 TensorCore로 v4 TPU Pod 슬라이스를 만듭니다.

  $ gcloud compute tpus tpu-vm create tpu-name
    --zone=zone
    --accelerator-type=v4-512
    --version=tpu-vm-tf-2.16.1-pod-pjrt

TPU 버전 다음의 번호(v4)는 TensorCore 수를 지정합니다. v4 TPU에는 2개의 TensorCore가 있으므로 TPU 칩 수는 512/2 = 256이 됩니다.

AcceleratorConfig 사용

TPU 슬라이스의 물리적 토폴로지를 맞춤설정하려면 AcceleratorConfig를 사용합니다. 이는 일반적으로 256개 칩을 초과하는 Pod 슬라이스를 사용하여 성능을 조정하는 데 필요합니다.

AcceleratorConfig를 사용하여 v4 TPU를 구성하려면 --version--topology 플래그를 사용합니다. --version을 사용할 TPU 버전으로 설정하고 --topology를 Pod 슬라이스에 있는 TPU 칩의 물리적 배열로 설정합니다.

3튜플인 AxBxC를 사용하여 TPU 토폴로지를 지정합니다. 여기서 A<=B<=C이고 A, B, C는 모두 <=4이거나 4의 모든 정수 배수입니다. A, B, C 값은 3개 차원 각각의 칩 수입니다. 예를 들어 칩이 16개 있는 v4 Pod 슬라이스를 만들려면 --version=v4--topology=2x2x4를 설정합니다.

다음 명령어는 8x8x8 배열로 정렬된 512개의 TPU 칩이 포함된 v4 TPU Pod 슬라이스를 만듭니다.

  $ gcloud compute tpus tpu-vm create tpu-name
    --zone=zone
    --type=v4
    --topology=4x4x8
    --version=tpu-vm-tf-2.16.1-pod-pjrt

2A=B=C 또는 2A=2B=C인 토폴로지에는 전체 통신에 최적화된 토폴로지 변이(예: 4×4×8, 8×8×16, 12×12×24)도 있습니다. 이러한 토폴로지를 왜곡 토러스라고 합니다.

다음 이미지는 몇 가지 일반적인 TPU v4 토폴로지를 보여줍니다.

이미지

큰 Pod 슬라이스는 하나 이상의 4x4x4 '큐브'의 칩에서 빌드할 수 있습니다.

왜곡 토러스 토폴로지

일부 v4 3D 토러스 슬라이스 형태에서는 왜곡 토러스 토폴로지라고 하는 구성을 사용할 수 있는 옵션이 있습니다. 예를 들어 v4 큐브 두 개를 4x4x8 슬라이스 또는 4x4x8_twisted로 정렬할 수 있습니다. 왜곡 토폴로지는 훨씬 높은 바이섹션 대역폭을 제공합니다. 증가된 바이섹션 대역폭은 전역 통신 패턴을 사용하는 워크로드에 유용합니다. 왜곡 토폴로지는 대부분의 모델에서 성능을 개선하며 대규모 TPU 임베딩 워크로드가 가장 큰 이점을 누립니다.

유일한 동시 로드 전략으로 데이터 동시 로드를 사용하는 워크로드의 경우 왜곡 토폴로지의 성능이 약간 더 높을 수 있습니다. LLM의 경우 왜곡 토폴로지를 사용하는 성능은 동시 로드 유형(DP, MP 등)에 따라 다를 수 있습니다. 가장 좋은 방법은 LLM을 왜곡 토폴로지에 관계없이 학습시켜 모델에 가장 적합한 성능을 제공하는 것입니다. FSDP MaxText 모델의 일부 실험에서는 왜곡 토폴로지를 사용하여 1~2MFU를 개선했습니다.

왜곡 토폴로지의 주요 이점은 비대칭 토러스 토폴로지(예: 4×4×8)를 밀접하게 관련된 대칭 토폴로지로 변환한다는 점입니다. 대칭 토폴로지에는 다음과 같은 많은 이점이 있습니다.

  • 부하 분산 개선
  • 더 높은 바이섹션 대역폭
  • 더 짧은 패킷 경로

이러한 이점은 결국 다양한 전역 통신 패턴에서 성능 향상에 기여합니다.

TPU 소프트웨어는 각 차원의 크기가 가장 작은 차원 크기와 같거나 두 배인 슬라이스(예: 4x4x8, 4×8×8 또는 12x12x24)에서 왜곡 토러스를 지원합니다.

예를 들어 TPU에 슬라이스의 (X,Y) 좌표로 라벨이 지정된 다음과 같은 4×2 토러스 토폴로지를 살펴보세요.

이 토폴로지 그래프의 변은 명확성을 위해 방향이 없는 변으로 표시됩니다. 실제로는 각 변은 TPU 간의 양방향 연결입니다. 다이어그램에 표시된 것처럼 이 그리드의 한 쪽과 반대쪽을 잇는 변을 순환 변이라고 합니다.

그림

이 토폴로지를 비틀면 완전히 대칭적인 4×2 왜곡 토폴로지가 형성됩니다.

그림

이 다이어그램과 이전 다이어그램의 차이점은 Y 순환 변입니다. X 좌표가 동일한 다른 TPU에 연결하는 대신 좌표가 X+2 mod 4인 TPU에 연결하도록 변경되었습니다.

이 아이디어는 다른 차원 크기 및 다른 차원 수에도 일반화됩니다. 각 차원이 가장 작은 차원 크기와 같거나 두 배이면 대칭적인 네트워크가 형성됩니다.

다음 표에서는 지원되는 왜곡 토폴로지 및 비왜곡 토폴로지와 비교한 이론적인 바이섹션 대역폭 증가를 보여줍니다.

왜곡 토폴로지 비왜곡 토러스와 비교한 이론적인
바이섹션 대역폭 증가
4×4×8_twisted ~70%
8x8x16_twisted
12×12×24_twisted
4×8×8_twisted ~40%
8×16×16_twisted

TPU v4 토폴로지 변이

동일한 수의 칩을 포함하는 일부 토폴로지는 다양한 방식으로 정렬할 수 있습니다. 예를 들어 512개 칩이 포함된 TPU Pod 슬라이스(TensorCore 1,024개)는 4x4x32, 4x8x16, 8x8x8 토폴로지를 사용하여 구성할 수 있습니다. 2,048개의 칩이 포함된 TPU Pod 슬라이스(TensorCore 4,096개)는 4x4x128, 4x8x64, 4x16x32, 8x16x16 등 더 많은 토폴로지 옵션을 제공합니다. 2,048개의 칩이 포함된 TPU Pod 슬라이스(TensorCore 4,096개)는 4x4x128, 4x8x64, 4x16x32, 8x16x16 등 더 많은 토폴로지 옵션을 제공합니다.

지정된 칩 수와 연결된 기본 토폴로지는 큐브와 가장 유사한 토폴로지입니다(v4 토폴로지 참조). 이 형태는 데이터 병렬 ML 학습에 가장 적합할 수 있습니다. 다른 토폴로지는 여러 종류의 동시 로드가 있는 워크로드(예: 모델 및 데이터 동시 로드 또는 시뮬레이션의 공간 분할)에 유용할 수 있습니다. 이러한 워크로드는 토폴로지가 사용된 동시 로드와 일치할 때 최고의 성능을 발휘합니다. 예를 들어 X 차원에 4방향 모델 동시 로드를 배치하고 Y 및 Z차원에 256방향 데이터 동시 로드를 배치하면 4x16x16 토폴로지와 일치합니다.

여러 차원의 동시 로드가 있는 모델은 TPU 토폴로지 차원에 매핑된 동시 로드 차원에서 가장 잘 작동합니다. 일반적으로 데이터+모델 병렬 대규모 언어 모델(LLM)이 여기에 해당합니다. 예를 들어 토폴로지 8x16x16이 있는 TPU v4 Pod 슬라이스의 경우 토폴로지 차원은 8, 16, 16입니다. 8방향 또는 16방향 모델 동시 로드(물리적 토폴로지 차원 중 하나에 매핑)를 사용하면 성능이 더 개선됩니다. 4방향 모델 동시 로드는 TPU 토폴로지 차원에 맞게 정렬되지 않으므로 이 토폴로지의 차선입니다. 칩 수가 동일한 4x16x32 토폴로지를 사용하는 것이 최적의 방법입니다.

TPU v4 구성은 64개 칩보다 작은 토폴로지(소형 토폴로지)와 64개 칩보다 큰 토폴로지(대형 토폴로지)가 있는 그룹 두 개로 구성됩니다.

작은 v4 토폴로지

Cloud TPU는 64개 칩이 있는 4x4x4 큐브보다 작은 다음 TPU v4 Pod 슬라이스를 지원합니다. 다음과 같은 TensorCore 기반 이름(예: v4-32) 또는 토폴로지(예: 2x2x4)를 사용하여 이러한 작은 v4 토폴로지를 만들 수 있습니다.

이름(TensorCore 수 기반) 칩 수 토폴로지
v4-8 4 2x2x1
v4-16 8 2x2x2
v4-32 16 2x2x4
v4-64 32 2x4x4

대형 v4 토폴로지

TPU v4 Pod 슬라이스는 64개의 칩 단위로 제공되며, 세 차원 모두에서 4의 배수인 형태를 띱니다. 차원도 오름차순이어야 합니다. 다음 표에 몇 가지 예시가 나와 있습니다. 이러한 토폴로지 중 일부는 --type--topology 플래그를 통해서만 만들 수 있는 '커스텀' 토폴로지입니다. 칩을 정렬하는 방법이 두 개 이상 있기 때문입니다.

다음 명령어는 8x8x8 배열로 정렬된 512개의 TPU 칩이 포함된 v4 TPU Pod 슬라이스를 만듭니다.

  $ gcloud compute tpus tpu-vm create tpu-name
    --zone=zone
    --type=v4
    --topology=8x8x8
    --version=tpu-vm-tf-2.16.1-pod-pjrt

--accelerator-type을 사용하여 동일한 수의 TensorCore로 v4 TPU Pod 슬라이스를 만들 수 있습니다.

  $ gcloud compute tpus tpu-vm create tpu-name
    --zone=zone
    --accelerator-type=v4-1024
    --version=tpu-vm-tf-2.16.1-pod-pjrt
이름(TensorCore 수 기반) 칩 수 토폴로지
v4-128 64 4x4x4
v4-256 128 4x4x8
v4-512 256 4x8x8
해당 사항 없음 - --type--topology 플래그를 사용해야 함 256 4x4x16
v4-1024 512 8x8x8
v4-1536 768 8x8x12
v4-2048 1024 8x8x16
해당 사항 없음 - --type--topology 플래그를 사용해야 함 1024 4x16x16
v4-4096 2048 8x16x16

TPU v3 구성

TPU v3 Pod는 고속 링크로 상호 연결된 1,024개의 칩으로 구성되어 있습니다. TPU v3 기기 또는 Pod 슬라이스를 만들려면 gcloud compute tpus tpu-vm 명령어에 --accelerator-type 플래그를 사용합니다. TPU 버전과 TPU 코어 수를 지정하여 가속기 유형을 지정합니다. 단일 v3 TPU의 경우 --accelerator-type=v3-8을 사용합니다. TensorCore 128개가 포함된 v3 Pod 슬라이스의 경우 --accelerator-type=v3-128을 사용합니다.

다음 명령어는 TensorCore 128개가 포함된 v3 TPU Pod 슬라이스를 만드는 방법을 보여줍니다.

  $ gcloud compute tpus tpu-vm create tpu-name
    --zone=zone
    --accelerator-type=v3-128
    --version=tpu-vm-tf-2.16.1-pjrt

다음 표에는 지원되는 v3 TPU 유형이 나열되어 있습니다.

TPU 버전 지원 종료
v3-8 (종료일 미정)
v3-32 (종료일 미정)
v3-128 (종료일 미정)
v3-256 (종료일 미정)
v3-512 (종료일 미정)
v3-1024 (종료일 미정)
v3-2048 (종료일 미정)

TPU 관리에 대한 자세한 내용은 TPU 관리를 참조하세요. Cloud TPU의 다양한 버전에 대한 자세한 내용은 시스템 아키텍처를 참조하세요.

TPU v2 구성

TPU v2 Pod는 재구성이 가능한 고속 링크로 상호 연결된 512개의 칩으로 구성되어 있습니다. TPU v2 Pod 슬라이스를 만들려면 gcloud compute tpus tpu-vm 명령어에 --accelerator-type 플래그를 사용합니다. TPU 버전과 TPU 코어 수를 지정하여 가속기 유형을 지정합니다. 단일 v2 TPU의 경우 --accelerator-type=v2-8을 사용합니다. TensorCore 128개가 포함된 v2 Pod 슬라이스의 경우 --accelerator-type=v2-128을 사용합니다.

다음 명령어는 TensorCore 128개가 포함된 v2 TPU Pod 슬라이스를 만드는 방법을 보여줍니다.

  $ gcloud compute tpus tpu-vm create tpu-name
    --zone=zone
    --accelerator-type=v2-128
    --version=tpu-vm-tf-2.16.1-pjrt

TPU 관리에 대한 자세한 내용은 TPU 관리를 참조하세요. Cloud TPU의 다양한 버전에 대한 자세한 내용은 시스템 아키텍처를 참조하세요.

다음 표에는 지원되는 v2 TPU 유형이 나열되어 있습니다.

TPU 버전 지원 종료
v2-8 (종료일 미정)
v2-32 (종료일 미정)
v2-128 (종료일 미정)
v2-256 (종료일 미정)
v2-512 (종료일 미정)

TPU 유형 호환성

TPU 유형을 TensorCore 또는 칩 수가 동일한 다른 TPU 유형(예: v3-128v4-128)으로 변경하고 코드 변경 없이 학습 스크립트를 실행할 수 있습니다. 하지만 TensorCore 수가 더 많거나 적은 TPU 유형으로 변경하는 경우 상당한 조정과 최적화 수행이 필요합니다. 자세한 내용은 TPU Pod에서 학습을 참조하세요.

TPU VM 소프트웨어 버전

이 섹션에서는 TPU VM 아키텍처를 갖춘 TPU에 사용해야 하는 TPU 소프트웨어 버전을 설명합니다. TPU 노드 아키텍처의 경우 TPU 노드 소프트웨어 버전을 참조하세요.

TPU 소프트웨어 버전은 TensorFlow, PyTorch, JAX 프레임워크에서 사용할 수 있습니다.

TensorFlow

모델이 작성된 TensorFlow 버전과 일치하는 TPU 소프트웨어 버전을 사용합니다.

TensorFlow 2.15.0부터는 스트림 실행자(SE) 런타임 또는 PJRT 런타임도 지정해야 합니다. 예를 들어 PJRT 런타임과 함께 TensorFlow 2.16.1을 사용하는 경우 tpu-vm-tf-2.16.1-pjrt TPU 소프트웨어 버전을 사용합니다. TensorFlow 2.15.0 이전 버전은 스트림 실행자만 지원합니다. PJRT에 대한 자세한 내용은 TensorFlow PJRT 지원을 참조하세요.

현재 지원되는 TensorFlow TPU VM 소프트웨어 버전은 다음과 같습니다.

  • tpu-vm-tf-2.16.1-pjrt
  • tpu-vm-tf-2.16.1-se
  • tpu-vm-tf-2.15.0-pjrt
  • tpu-vm-tf-2.15.0-se
  • tpu-vm-tf-2.14.1
  • tpu-vm-tf-2.14.0
  • tpu-vm-tf-2.13.1
  • tpu-vm-tf-2.13.0
  • tpu-vm-tf-2.12.1
  • tpu-vm-tf-2.12.0
  • tpu-vm-tf-2.11.1
  • tpu-vm-tf-2.11.0
  • tpu-vm-tf-2.10.1
  • tpu-vm-tf-2.10.0
  • tpu-vm-tf-2.9.3
  • tpu-vm-tf-2.9.1
  • tpu-vm-tf-2.8.4
  • tpu-vm-tf-2.8.3
  • tpu-vm-tf-2.8.0
  • tpu-vm-tf-2.7.4
  • tpu-vm-tf-2.7.3

TensorFlow 패치 버전에 대한 자세한 내용은 지원되는 TensorFlow 패치 버전을 참조하세요.

TensorFlow PJRT 지원

TensorFlow 2.15.0부터는 TPU에서 TensorFlow에 PJRT 인터페이스를 사용할 수 있습니다. PJRT는 자동화된 기기 메모리 조각 모음을 제공하고 하드웨어와 프레임워크의 통합을 간소화합니다. PJRT에 대한 자세한 내용은 Google 오픈소스 블로그의 PJRT: ML 하드웨어와 프레임워크의 통합 간소화를 참조하세요.

TPU v2, v3, v4의 모든 기능이 PJRT 런타임으로 마이그레이션된 것은 아닙니다. 다음 표에서는 PJRT 또는 스트림 실행자에서 지원되는 기능을 설명합니다.

가속기 기능 PJRT에서 지원됨 스트림 실행자에서 지원됨
TPU v2-v4 고밀도 컴퓨팅(TPU 임베딩 API 없음)
TPU v2-v4 고밀도 컴퓨팅 API + TPU 임베딩 API 아니요
TPU v2-v4 tf.summary/tf.print(소프트 기기 배치 포함) 아니요
TPU v5e 고밀도 컴퓨팅(TPU 임베딩 API 없음) 아니요
TPU v5e TPU 임베딩 API 해당 없음 - TPU v5e는 TPU Embedding API를 지원하지 않음 해당 사항 없음
TPU v5p 고밀도 컴퓨팅(TPU 임베딩 API 없음) No
TPU v5p TPU 임베딩 API No

TensorFlow 버전 2.10.0 이하를 사용하는 TPU v4

TensorFlow를 사용하여 TPU v4에서 모델을 학습시키는 경우 TensorFlow 버전 2.10.0 이하에서는 다음 표에 표시된 v4 특정 버전을 사용하세요. 사용 중인 TensorFlow 버전이 테이블에 없는 경우 TensorFlow 섹션의 안내를 따르세요.

TensorFlow 버전 TPU 소프트웨어 버전
2.10.0 tpu-vm-tf-2.10.0-v4, tpu-vm-tf-2.10.0-pod-v4
2.9.3 tpu-vm-tf-2.9.3-v4, tpu-vm-tf-2.9.3-pod-v4
2.9.2 tpu-vm-tf-2.9.2-v4, tpu-vm-tf-2.9.2-pod-v4
2.9.1 tpu-vm-tf-2.9.1-v4, tpu-vm-tf-2.9.1-pod-v4

Libtpu 버전

TPU VM은 TensorFlow 및 해당 Libtpu 라이브러리가 사전 설치되어 생성됩니다. 자체 VM 이미지를 만드는 경우 다음 TensorFlow TPU 소프트웨어 버전과 해당 libtpu 버전을 지정합니다.

TensorFlow 버전 libtpu.so 버전
2.16.1 1.10.1
2.15.0 1.9.0
2.14.1 1.8.1
2.14.0 1.8.0
2.13.1 1.7.1
2.13.0 1.7.0
2.12.1 1.6.1
2.12.0 1.6.0
2.11.1 1.5.1
2.11.0 1.5.0
2.10.1 1.4.1
2.10.0 1.4.0
2.9.3 1.3.2
2.9.1 1.3.0
2.8.3 1.2.3
2.8.* 1.2.0
2.7.3 1.1.2

PyTorch

모델이 작성된 PyTorch 버전과 일치하는 TPU 소프트웨어 버전을 사용합니다. 예를 들어 PyTorch 1.13과 TPU v2 또는 v3을 사용하는 경우 tpu-vm-pt-1.13 TPU 소프트웨어 버전을 사용합니다. TPU v4를 사용하는 경우 tpu-vm-v4-pt-1.13 TPU 소프트웨어 버전을 사용합니다. TPU Pod에는 동일한 TPU 소프트웨어 버전이 사용됩니다(예: v2-32, v3-128, v4-32). 현재 지원되는 TPU 소프트웨어 버전은 다음과 같습니다.

TPU v2/v3:

  • tpu-vm-pt-2.0(pytorch-2.0)
  • tpu-vm-pt-1.13(pytorch-1.13)
  • tpu-vm-pt-1.12(pytorch-1.12)
  • tpu-vm-pt-1.11(pytorch-1.11)
  • tpu-vm-pt-1.10(pytorch-1.10)
  • v2-alpha(pytorch-1.8.1)

TPU v4:

  • tpu-vm-v4-pt-2.0(pytorch-2.0)
  • tpu-vm-v4-pt-1.13(pytorch-1.13)

TPU v5(v5e 및 v5p):

  • v2-alpha-tpuv5(pytorch-2.0)

TPU VM을 만들면 최신 버전의 PyTorch가 TPU VM에 사전 설치됩니다. PyTorch를 설치하면 올바른 버전의 libtpu.so가 자동으로 설치됩니다.

현재 PyTorch 소프트웨어 버전을 변경하려면 PyTorch 버전 변경을 참조하세요.

JAX

TPU VM에 JAX를 수동으로 설치해야 합니다. TPU v2 및 v3용 JAX 특정 TPU 소프트웨어(런타임) 버전은 없습니다. 이후의 TPU 버전에는 다음 소프트웨어 버전을 사용합니다.

  • TPU v4: tpu-vm-v4-base
  • TPU v5e: v2-alpha-tpuv5
  • TPU v5p: v2-alpha-tpuv5

JAX를 설치하면 올바른 버전의 libtpu.so가 자동으로 설치됩니다.

TPU 노드 소프트웨어 버전

이 섹션에서는 TPU 노드 아키텍처를 갖춘 TPU에 사용해야 하는 TPU 소프트웨어 버전을 설명합니다. TPU VM 아키텍처의 경우 TPU VM 소프트웨어 버전을 참조하세요.

TPU 소프트웨어 버전은 TensorFlow, PyTorch, JAX 프레임워크에서 사용할 수 있습니다.

TensorFlow

모델이 작성된 TensorFlow 버전과 일치하는 TPU 소프트웨어 버전을 사용합니다. 예를 들어 TensorFlow 2.12.0을 사용하는 경우 2.12.0 TPU 소프트웨어 버전을 사용합니다. TensorFlow 특정 TPU 소프트웨어 버전은 다음과 같습니다.

  • 2.12.1
  • 2.12.0
  • 2.11.1
  • 2.11.0
  • 2.10.1
  • 2.10.0
  • 2.9.3
  • 2.9.1
  • 2.8.4
  • 2.8.2
  • 2.7.3

TensorFlow 패치 버전에 대한 자세한 내용은 지원되는 TensorFlow 패치 버전을 참조하세요.

TPU 노드를 만들면 최신 버전의 TensorFlow가 TPU 노드에 사전 설치됩니다.

PyTorch

모델이 작성된 PyTorch 버전과 일치하는 TPU 소프트웨어 버전을 사용합니다. 예를 들어 PyTorch 1.9를 사용하는 경우 pytorch-1.9 소프트웨어 버전을 사용합니다.

PyTorch 특정 TPU 소프트웨어 버전은 다음과 같습니다.

  • pytorch-2.0
  • pytorch-1.13
  • pytorch-1.12
  • pytorch-1.11
  • pytorch-1.10
  • pytorch-1.9
  • pytorch-1.8
  • pytorch-1.7
  • pytorch-1.6

  • pytorch-nightly

TPU 노드를 만들면 최신 버전의 PyTorch가 TPU 노드에 사전 설치됩니다.

JAX

TPU VM에 JAX를 수동으로 설치해야 하므로 JAX 특정 TPU 소프트웨어 버전이 사전에 설치되어 있지 않습니다. TensorFlow에 나열된 소프트웨어 버전을 사용할 수 있습니다.

다음 단계