시스템 아키텍처
TPU(Tensor Processing Unit)는 Google에서 머신러닝 워크로드를 빠르게 처리하기 위해 설계한 ASIC(Application-Specific Integrated Circuit)입니다. Cloud TPU는 TPU를 확장 가능한 리소스로 제공하는 Google Cloud 서비스입니다.
TPU는 행렬 작업을 빠르게 수행하도록 설계되어 머신러닝 워크로드에 적합합니다. TensorFlow, Pytorch, JAX와 같은 프레임워크를 사용하여 TPU에서 머신러닝 워크로드를 실행할 수 있습니다.
Cloud TPU 용어
Cloud TPU를 처음 사용하는 경우 TPU 문서 홈을 확인하세요. 다음 섹션에서는 이 문서에 사용된 용어와 관련 개념을 설명합니다.
일괄 추론
일괄 또는 오프라인 추론이란 일반적으로 프로덕션 파이프라인 외부에서 대량의 입력을 대상으로 추론을 수행하는 작업입니다. 일괄 추론은 데이터 라벨링과 같은 오프라인 태스크 및 학습된 모델 평가에도 사용됩니다. 일괄 추론에서는 지연 시간 SLO가 우선시되지 않습니다.
TPU 칩
TPU 칩에는 하나 이상의 TensorCore가 포함됩니다. TensorCore 수는 TPU 칩 버전에 따라 다릅니다. 각 TensorCore는 하나 이상의 행렬 곱셈 단위(MXU), 벡터 단위, 스칼라 단위로 구성됩니다.
MXU는 시스톨릭 배열에서 256x256 (TPU v6e) 또는 128x128 (v6e 이전 TPU 버전) 곱셈/누산기로 구성됩니다. MXU는 TensorCore에서 대량의 연산 성능을 제공합니다. 각 MXU는 주기당 곱셈-누산 작업 16,000개를 수행할 수 있습니다. 모든 곱셈은 bfloat16 입력을 사용하지만 모든 누적은 FP32 숫자 형식으로 수행됩니다.
벡터 단위는 활성화 및 소프트맥스와 같은 일반 계산에 사용됩니다. 스칼라 단위는 제어 흐름, 메모리 주소 계산, 기타 유지보수 작업에 사용됩니다.
TPU 큐브
4x4x4 토폴로지 이는 3D 토폴로지(v4 TPU 버전부터)에만 적용됩니다.
추론
추론은 학습된 모델을 사용하여 새 데이터에 대한 예측을 수행하는 프로세스입니다. 이는 서빙 프로세스에서 사용합니다.
멀티슬라이스와 단일 슬라이스 비교
멀티슬라이스는 칩 간 상호 연결(ICI) 연결 이상으로 TPU 연결을 확장하고 슬라이스 이상으로 데이터를 전송하기 위해 데이터 센터 네트워크(DCN)를 활용하는 슬라이스 그룹입니다. 각 슬라이스 내의 데이터는 여전히 ICI에 의해 전송됩니다. 이 하이브리드 연결을 사용하면 멀티슬라이스를 통해 슬라이스 간에 동시 로드를 지원하고 단일 슬라이스에 수용할 수 있는 것보다 더 많은 수의 TPU 코어를 단일 작업에 사용할 수 있습니다.
TPU는 단일 슬라이스 또는 여러 슬라이스에서 작업을 실행하는 데 사용할 수 있습니다. 자세한 내용은 멀티슬라이스 소개를 참조하세요.
Cloud TPU ICI 복원력
ICI 복원력은 큐브 간에 TPU를 연결하는 광 연결 및 광학 회로 스위치(OCS)의 내결함성을 개선하는 데 도움이 됩니다. (큐브 내의 ICI 연결은 영향을 받지 않는 구리 연결을 사용합니다.) ICI 복원력은 OCS 및 광 ICI 결함에 대해 ICI 연결을 라우팅할 수 있게 해줍니다. 그 결과 ICI 성능에 일시적인 성능 저하가 발생하는 대신 TPU 슬라이스의 예약 가용성이 향상됩니다.
Cloud TPU v4와 마찬가지로 ICI 복원력은 큐브가 1개 이상인 v5p 슬라이스에 기본적으로 사용 설정됩니다.
- 가속기 유형 지정 시 v5p-128
- 가속기 구성 지정 시 4x4x4
큐에 추가된 리소스
단일 슬라이스 또는 멀티 슬라이스 TPU 환경에 대한 요청을 큐에 추가하고 관리하는 데 사용되는 TPU 리소스를 나타냅니다. 자세한 내용은 큐에 추가된 리소스 사용자 가이드를 참조하세요.
서빙
서빙은 예측 또는 결정을 내리는 데 사용할 수 있는 학습된 머신러닝 모델을 프로덕션 환경에 배포하는 프로세스입니다. 지연 시간 및 서비스 수준 가용성은 서빙에 중요합니다.
단일 호스트, 멀티 호스트, 하위 호스트
TPU 호스트는 TPU 하드웨어에 연결된 물리적 컴퓨터에서 실행되는 VM입니다. TPU 워크로드는 하나 이상의 호스트를 사용할 수 있습니다.
단일 호스트 워크로드는 1개의 TPU VM으로 제한됩니다. 멀티 호스트 워크로드는 여러 TPU VM에 학습을 분산합니다. 하위 호스트 워크로드는 TPU VM의 모든 칩을 사용하지 않습니다.
슬라이스
포드 슬라이스는 고속 칩 간 상호 연결(ICI)을 통해 연결된 동일한 TPU Pod 내에 모두 위치한 칩 모음입니다. 슬라이스는 TPU 버전에 따라 칩 또는 TensorCore 측면에서 설명됩니다.
칩 형태 및 칩 토폴로지는 슬라이스 형태도 지칭합니다.
SparseCore
SparseCore는 추천 모델에 있는 임베딩을 사용하여 모델을 가속화하는 Dataflow 프로세서입니다. v5p에는 칩당 4개의 SparseCore가 포함되어 있고 v6e에는 칩당 2개의 SparseCore가 포함되어 있습니다.
TPU Pod
TPU Pod는 특수 네트워크를 통해 그룹화된 연속된 TPU 집합입니다. TPU Pod의 TPU 칩 수는 TPU 버전에 따라 다릅니다.
TPU VM 또는 작업자
Linux를 실행하며 기본 TPU에 액세스할 수 있는 가상 머신입니다. TPU VM은 작업자라고도 합니다.
TensorCore
TPU 칩에는 행렬 곱셈을 실행하는 1~2개의 TensorCore가 있습니다. TensorCore에 대한 자세한 내용은 이 ACM 문서를 참조하세요.
작업자
TPU VM을 참조하세요.
TPU 버전
TPU 칩의 정확한 아키텍처는 사용 중인 TPU 버전에 따라 다릅니다. 또한 각 TPU 버전은 서로 다른 슬라이스 크기와 구성을 지원합니다. 시스템 아키텍처 및 지원되는 구성에 대한 자세한 내용은 다음 페이지를 참조하세요.
TPU 아키텍처
VM이 TPU 기기에 물리적으로 연결되는 방식을 설명하는 두 가지 TPU 아키텍처(TPU 노드 및 TPU VM)가 있었습니다. TPU 노드는 v2 및 v3 TPU 버전의 원래 TPU 아키텍처였습니다. v4에서는 TPU VM이 기본 아키텍처가 되었지만 두 아키텍처 모두 지원되었습니다. TPU 노드 아키텍처는 지원 중단되었으며 TPU VM만 지원됩니다. TPU 노드를 사용하는 경우 TPU 노드에서 TPU VM 아키텍처로 이동을 참고하여 TPU 노드에서 TPU VM 아키텍처로 변환하세요.
TPU VM 아키텍처
TPU VM 아키텍처를 사용하면 SSH를 사용하여 TPU 기기에 물리적으로 연결된 VM에 직접 연결할 수 있습니다. 임의 코드를 실행할 수 있도록 VM에 대해 루트 액세스 권한을 얻습니다. 컴파일러 및 런타임 디버그 로그 및 오류 메시지에 액세스할 수 있습니다.
TPU 노드 아키텍처
TPU 노드 아키텍처는 gRPC를 통해 TPU 호스트와 통신하는 사용자 VM으로 구성됩니다. 이 아키텍처를 사용하면 TPU 호스트에 직접 액세스할 수 없으므로 학습 및 TPU 오류를 디버깅하기가 어렵습니다.
TPU 노드에서 TPU VM 아키텍처로 이전
TPU 노드 아키텍처를 사용하는 TPU가 있는 경우 다음 단계에 따라 TPU를 식별 및 삭제하고 TPU VM으로 다시 프로비저닝합니다.
TPU 페이지로 이동합니다.
- 아키텍처 제목 아래에서 TPU와 아키텍처를 찾습니다. 아키텍처가 'TPU VM'인 경우 별도의 조치를 취하지 않아도 됩니다. 아키텍처가 'TPU 노드'인 경우 TPU를 삭제하고 다시 프로비저닝해야 합니다.
TPU를 삭제하고 다시 프로비저닝합니다.