TPU 이해

Tensor Processing Unit (TPU)은 Google에서 맞춤 개발한 ASIC (Application-Specific Integrated Circuit)로, 머신러닝 (ML) 및 인공지능 (AI) 워크로드를 빠르게 처리하도록 설계되었습니다. 몇 주 동안 복잡한 파운데이션 모델을 학습하든 대규모 추론을 실행하든 TPU는 고급 AI 프레임워크에 최적화된 확장 가능한 특수 컴퓨팅 리소스를 제공합니다.

이 문서에서는 Google Cloud에서의 TPU 역할, 사용 가능한 각 TPU 버전의 기술 사양, 성능 특성, 가격 책정 고려사항, Compute Engine 머신 시리즈에 매핑되는 방식을 설명합니다.

TPU란 무엇인가요?

TPU는 ML 알고리즘의 핵심인 대규모 행렬 연산의 요구사항을 처리하도록 설계된 맞춤 설계 ASIC입니다.

TPU 시스템의 주요 아키텍처 구성요소는 다음과 같습니다.

  • TensorCore: TPU 칩의 처리 단위입니다. 각 TensorCore는 시스톨릭 배열 아키텍처를 사용하여 행렬 곱셈을 매우 효율적으로 실행하는 하나 이상의 행렬 곱셈 단위 (MXU)와 제어 흐름 및 일반 계산을 위한 스칼라 및 벡터 단위로 구성됩니다.

  • SparseCore: 희소 작업을 가속화하도록 설계된 특수 데이터 흐름 프로세서입니다. SparseCore는 TensorCore와 함께 작동하여 대규모 임베딩 테이블을 효율적으로 처리하므로 추천 모델과 대규모 임베딩을 가속화하는 데 이상적입니다.

  • 고대역폭 메모리 (HBM): TPU 칩에 연결된 대규모 물리적 메모리로, 대규모 메모리 대역폭을 제공합니다. HBM을 사용하면 더 큰 배치 크기로 더 큰 모델을 학습하고 제공할 수 있습니다.

  • TPU 인스턴스: TPU 호스트에서 실행되고 기본 TPU 하드웨어에 직접 액세스할 수 있는 Linux 컴퓨팅 인스턴스로, 고성능 라이브러리, SSH 연결, 런타임 디버그 로그에 대한 액세스를 제공합니다.

  • TPU 슬라이스 및 Pod: TPU Pod는 물리적으로 연결된 TPU 칩의 대규모 연속 클러스터입니다. TPU 슬라이스는 단일 워크로드를 실행하기 위해 할당된 Pod(고속 상호 연결을 사용하여 연결된 하나 이상의 호스트로 구성됨)의 논리적 파티션입니다.

  • XLA 컴파일러: 가속화된 선형 대수 (XLA) 컴파일러는 머신러닝 그래프를 TPU TensorCore에서 실행되는 최적화된 머신 명령어로 컴파일합니다.

TPU 버전 및 머신 시리즈

Compute Engine은 여러 세대와 버전의 TPU를 지원합니다. 다음 표에는 지원되는 각 TPU 버전의 주요 사양이 나와 있습니다.

TPU 버전 머신 시리즈 칩당 최고 컴퓨팅 (TFLOPS) TPU 메모리 및 대역폭 칩당 코어 수 칩당 상호 연결 (ICI) 대역폭 칩당 네트워크 대역폭 (DCN) 포드당 칩 수
TPU7x(Ironwood) tpu7x-standard

BF16: 2,307

FP8: 4,614

192GiB (7,380GBps)

2개의 TensorCore

SparseCore 4개

1,200GBps 100Gbps 9,216
TPU v6e (Trillium) ct6e-standard

BF16: 918

FP8: 918

32GiB (1,638GBps)

1 TensorCore

SparseCore 2개

800GBps 100Gbps 256
TPU v5p ct5p-hightpu

BF16: 459

FP8: 459

95GiB (2,765GBps)

2개의 TensorCore

SparseCore 4개

1,200GBps 50Gbps 8,960

TPU 성능 특성

TPU는 최대 효율성으로 밀도 높은 행렬 대수 연산을 실행하도록 최적화되어 있습니다. ML 워크로드에 TPU가 가장 적합한 시기를 선택하려면 다음 가이드라인을 고려하세요.

이상적인 사용 사례 및 워크로드 요구사항

적절한 TPU 모델은 워크로드의 컴퓨팅 특성, 메모리 요구사항, 확장성 요구사항에 따라 달라집니다. 다음 탭 중 하나를 선택하여 추천을 확인하세요.

AI/ML 학습

  • 대규모 모델 사전 학습: 대규모 모델을 처음부터 학습시킵니다. 이러한 워크로드는 컴퓨팅 및 통신에 바인딩됩니다.

    • 필요한 TPU 기능: 높은 최대 FLOPS, 낮은 정밀도 지원, 높은 상호 연결 대역폭
    • 권장 TPU 버전:
      • TPU7x 이 버전은 높은 FP8 성능을 제공합니다.
      • TPU v5p 이 버전은 대규모 클러스터 구성을 지원합니다.
  • 모델 미세 조정 및 증류: 파라미터 효율적인 방법을 사용하여 기존 모델을 적응시키거나 더 작은 모델 변형을 학습시킵니다.

    • 필요한 TPU 기능: 적당한 컴퓨팅 및 충분한 메모리 용량
    • 권장 TPU 버전:
      • TPU v6e 이 버전은 표준 학습 작업에 비용 효율적입니다.
      • TPU7x 이 버전은 대규모 미세 조정에 고성능을 제공합니다.

AI/ML 추론

  • 온라인 모델 제공: 짧은 지연 시간이 중요한 실시간 상호작용을 위해 모델을 배포합니다. 이러한 워크로드는 토큰의 순차적 생성 중에 메모리 대역폭에 제한됩니다.

    • 필요한 TPU 기능: 데이터 검색 지연 시간을 최소화하기 위한 높은 HBM 대역폭과 대규모 온칩 SRAM
    • 권장 TPU 버전:
      • TPU v6e 이 버전은 대규모 비용 효율적인 제공에 최적화되어 있습니다.
      • TPU7x 이 버전은 토큰 생성을 가속화하기 위해 높은 HBM 대역폭과 대규모 SRAM을 제공합니다.
  • 일괄 추론 실행: 처리량이 높은 것이 기본 목표인 오프라인에서 대규모 데이터 세트를 처리합니다. 이러한 워크로드는 프롬프트 사전 입력 단계에서 컴퓨팅에 바인딩됩니다.

    • 필요한 TPU 기능: 비용 대비 처리량을 극대화하기 위한 높은 컴퓨팅 밀도
    • 권장 TPU 버전:
      • TPU v6e 이 버전은 처리량이 많은 일괄 처리에 비용 효율적입니다.
      • TPU7x 이 버전은 대규모 배치를 빠르게 처리할 수 있는 높은 컴퓨팅 밀도를 제공합니다.

추천자 시스템

  • 대규모 임베딩 처리: 대규모 임베딩 테이블을 사용하는 추천 모델 학습 및 제공 이러한 워크로드는 용량 및 통신에 바인딩됩니다.
    • 필요한 TPU 기능: 희소 연산을 병렬로 처리하는 특수 SparseCore 하드웨어, 대규모 HBM 용량, 호스트 메모리로 오프로드 지원
    • 권장 TPU 버전:
      • TPU7x 이 버전에는 칩당 4개의 SparseCore가 포함되어 있으며 가장 큰 HBM 용량을 제공합니다.
      • TPU v6e 이 버전에는 비용 효율적인 서빙을 위해 칩당 두 개의 SparseCore가 포함되어 있습니다.
      • TPU v5p 이 버전에는 대규모 학습을 위해 칩당 4개의 SparseCore가 포함되어 있습니다.

강화 학습

  • 강화 학습 루프 실행: 샘플 생성 및 정책 가중치 업데이트의 긴밀한 루프가 필요한 하이브리드 워크로드 관리

    • 필요한 TPU 기능: 칩 간의 빠른 가중치 및 활성화 전송을 위한 짧은 지연 시간 ICI, 고대역폭 호스트 연결
    • 권장 TPU 버전:

      이러한 TPU 버전은 고속 3D 토러스 상호 연결을 사용합니다.

워크로드 고려사항

TPU는 다음 워크로드에 최적의 선택이 아닐 수 있습니다.

  • 논리적 분기가 자주 필요하거나 요소별 대수 연산이 많이 포함된 선형 대수 프로그램
  • CPU에서 실행되는 JAX 또는 PyTorch의 맞춤 연산자에 종속된 워크로드
  • 배정밀도 부동 소수점 (FP64) 산술이 필요한 과학적 워크로드

가격 책정 고려사항

다음 요소에 따라 Google Cloud의 TPU 가격이 결정됩니다.

  • TPU 버전

  • 위치

  • 가격 모델

전체 가격 책정 세부정보는 TPU 가격 책정 페이지를 참고하세요.

소비 및 구매 모델

가용성 요구사항과 비용 허용 범위에 따라 다음 소비 옵션 중 하나를 사용하여 TPU 인스턴스를 프로비저닝할 수 있습니다.

  • 주문형: 즉시 실행을 위한 표준 사용한 만큼만 지불 (PAYG) 가격 책정입니다. 최대 수명 주기 유연성을 제공하지만 가용성은 물리적 리소스 제약에 따라 달라집니다.
  • Spot: 할인율이 높은 (최대 70%) 초과 Google Cloud 용량입니다. Google Cloud 은 30초 전에 통지하고 용량을 회수하기 위해 스팟 VM을 중지하거나 삭제할 수 있으므로 이러한 컴퓨팅 인스턴스는 내결함성 및 체크포인트 워크로드에 적합합니다.
  • Flex-start: 가용성이 더 높은 전용 풀에서 최대 7일 동안 컴퓨팅 인스턴스를 요청할 수 있습니다.
  • 미래용 예약: 용량을 보장하고 주문형 가격 책정보다 할인된 가격을 제공하는 예약입니다. 지정된 미래 날짜 및 시간에 최대 90일 (캘린더 모드) 또는 1년 이상 TPU 용량을 예약합니다.Google Cloud 에서 요청을 승인하면 예약 기간 동안 용량을 사용할 수 있습니다.

약정 사용 할인(CUD)

1년 이상의 미래용 예약을 요청하면 예약된 TPU 용량에 CUD를 적용받을 수 있습니다. 컴퓨팅 인스턴스에 CUD를 적용하면 약정 사용 기간에 대한 대가로 주문형 요금에 비해 가격이 크게 절감됩니다.

자세한 내용은 Compute Engine용 CUD를 참고하세요.

다음 단계