TPU
contents
TPU (Tensor Processing Unit) 는 구글이 자체 텐서플로우(TensorFlow) 소프트웨어를 사용하는 신경망 머신러닝을 위해 특별히 개발한 AI 가속기 주문형 반도체(ASIC)입니다.
CPU가 범용적인 "팔방미인"이고 GPU가 원래 그래픽을 위한 병렬 처리 엔진이라면, TPU는 행렬 곱셈(Matrix Multiplication) 이라는 단 하나의 특정 수학 연산을 위해 설계된 전문 계산기입니다.
1. 기원과 목적
- 문제점: 2015년경, 구글은 모든 사용자가 하루에 단 3분만 음성 검색을 사용하더라도 표준 CPU/GPU를 사용하여 계산을 처리하려면 데이터 센터를 두 배로 늘려야 한다는 것을 깨달았습니다. 딥러닝 모델은 거대해지고 계산 비용이 많이 들고 있었습니다.
- 해결책: 구글은 처음부터 맞춤형 칩을 설계했습니다. 범용 컴퓨팅에 필요한 기능(분기 예측, 비순차적 실행, 복잡한 캐시 등)을 제거하고, 딥러닝에 필요한 수학 연산에만 전적으로 집중했습니다.
- 이름: "텐서(Tensor)"는 본질적으로 데이터의 다차원 배열(행렬)을 의미하며, 이를 처리하는 텐서플로우(TensorFlow) 의 이름을 따서 명명되었습니다.
2. 아키텍처: 시스톨릭 어레이 (Systolic Array) 🫀
TPU의 비결은 아키텍처, 특히 시스톨릭 어레이(Systolic Array) 에 있습니다.
CPU vs. GPU vs. TPU 아키텍처
- CPU: 소수의 강력한 코어(ALU)를 가집니다. 행렬을 곱하려면 데이터를 가져오고, 계산하고, 저장하고, 이를 반복합니다. 칩이 메모리 액세스를 기다리는 "폰 노이만 병목 현상"이 발생합니다.
- GPU: 수천 개의 작은 코어를 가집니다. 병렬 처리에 더 유리하지만, 중간 결과를 위해 레지스터와 공유 메모리에 자주 접근해야 합니다.
- TPU (시스톨릭 어레이):
- 128x128 처리 장치(ALU) 격자를 상상해 보세요.
- 데이터가 심장을 통과하는 혈액처럼 어레이로 흘러 들어갑니다 (그래서 "시스톨릭(수축기)"이라고 부릅니다).
- 단계별 메모리 접근 없음: 두 숫자가 곱해질 때 결과가 메모리에 저장되지 않습니다. 대신, 다음 계산에 즉시 사용되도록 이웃한 ALU로 직접 전달됩니다.
- 결과: 이를 통해 TPU는 메모리 액세스에 최소한의 에너지를 소비하면서 클럭 사이클당 수만 번의 연산을 수행할 수 있습니다.
3. 정밀도: bfloat16 (Brain Floating Point)
표준 과학 컴퓨팅은 높은 정밀도를 위해 FP32(32비트 부동 소수점)를 사용합니다. 하지만 신경망은 실제로 완벽한 정밀도가 필요하지 않습니다. 속도와 효율성이 더 중요합니다.
TPU는 bfloat16이라는 새로운 형식을 도입했습니다.
- FP32: 8비트 범위(지수), 23비트 정밀도(가수).
- FP16: 5비트 범위, 10비트 정밀도. (문제: 범위가 작아 딥러닝에서 오류 발생).
- bfloat16: 8비트 범위 (FP32와 동일), 그러나 정밀도는 7비트로 잘라냄.
왜 이것이 기발할까요?
- 32비트 숫자의 동적 범위를 유지하므로 숫자가 쉽게 언더플로우/오버플로우되지 않습니다.
- FP32의 메모리 대역폭을 절반만 사용합니다.
- 곱셈기(Multiplier) 회로를 실리콘에 더 작고 저렴하게 구축할 수 있습니다.
- 변환이 쉽습니다. FP32 숫자에서 마지막 16비트를 잘라내기만 하면 됩니다.
4. TPU의 세대
구글은 TPU 하드웨어를 빠르게 반복해서 개선하고 있습니다.
- TPU v1 (2015): 추론(Inference) 전용. 검색, 번역, 알파고(이세돌 대국) 내부적으로 사용됨.
- TPU v2 (2017): 최초의 "클라우드 TPU". 학습(Training) 가능 (추론뿐만 아니라). 고대역폭 메모리(HBM) 도입.
- TPU v3 (2018): 칩에 액체 냉각 도입 (포드가 너무 뜨거워져 라디에이터 냉각수가 필요했음). v2보다 8배 강력함.
- TPU v4 (2021): 3D 토러스 인터커넥트 및 광 회로 스위치(전기 신호로 변환하지 않고 거울을 사용하여 랙 간에 데이터 라우팅) 특징.
- TPU v5p / v5e (2023): 현재 세대.
- v5p (Performance): 가장 강력하며, 거대 LLM(제미나이 등) 학습을 위해 설계됨.
- v5e (Efficiency): 비용 효율적이며, 모델 서빙(배포) 및 소규모 학습 작업에 최적화됨.
5. TPU Pod: 슈퍼컴퓨터 🏙️
TPU 칩 하나만 사용하는 경우는 드뭅니다. 이들은 TPU Pod로 서로 연결됩니다.
- TPU Pod는 독자적인 고속 상호연결(interconnect) 네트워크로 연결된 수천 개의 TPU 칩으로 구성된 거대한 클러스터입니다.
- 프로그래머에게 Pod는 하나의 거대한 슈퍼컴퓨터처럼 보일 수 있습니다.
- 이를 통해 단일 GPU에서 몇 달이 걸릴 학습 작업을 몇 시간 또는 며칠 만에 완료할 수 있습니다.
6. 언제 TPU vs. GPU를 사용해야 할까?
| 특징 | GPU (NVIDIA H100/A100) | TPU (Google Cloud TPU) |
|---|---|---|
| 유연성 | 높음. 불규칙한 계산, 커스텀 CUDA 커널, 게임, 렌더링에 좋음. | 낮음. 행렬 연산과 밀집 벡터 처리에 특화됨. |
| 처리량 | 높음. 하지만 순수 와트당 행렬 연산에서는 보통 TPU보다 낮음. | 극도로 높음. 대규모 행렬 곱셈에서 타의 추종을 불허함. |
| 메모리 | 고대역폭 메모리 (HBM). | 고대역폭 메모리 (HBM), 종종 더 긴밀하게 통합됨. |
| 생태계 | 보편적 (어디서나 실행). CUDA가 업계 표준. | 구글 클라우드 독점. JAX, TensorFlow, PyTorch(XLA 경유)와 가장 잘 작동함. |
| 적합한 용도 | 새로운 아키텍처 연구, 소규모 모델, 비표준 계층. | 대규모 표준 모델(Transformer, CNN)의 대규모 학습. |
요약
TPU는 AI 시대에 전문화가 일반화를 이긴다는 구글의 베팅입니다. 범용 컴퓨팅 기능을 제거하고 bfloat16 행렬 수학의 시스톨릭 흐름에 전적으로 집중함으로써, ChatGPT 경쟁자(Gemini), 검색, Waymo 자율 주행 자동차와 같은 현대 AI 서비스를 구동하는 프로세서를 만들어냈습니다.
references