CPU(중앙처리장치)는 범용 작업을 폭넓게 처리하는 두뇌로,
분기·제어가 많은 코드에 강하다.
GPU(그래픽처리장치)는 대량의 동일·유사 연산을 동시에
처리하는 데이터 병렬에 특화되어 3D 그래픽과 딥러닝에 널리 쓰인다.
TPU(텐서처리장치)는 행렬 곱 연산을 하드웨어로 가속하는
딥러닝 전용 칩(ASIC)으로 매우 높은 효율의 학습·추론을 노린다.
(2) CPU
설계 목표: 운영체제, 애플리케이션, 시스템 전반의 범용 연산.
강점: 낮은 지연시간, 강력한 분기·제어(브랜치 예측, 파이프라인), 큰 캐시, 고성능 단일 스레드.
예: 서버 로직, 웹/앱 백엔드, 데이터 전처리, 압축/암호화, 소규모 ML 추론.
한계: 코어 수가 비교적 적고(수~수십), 데이터 병렬 처리량은 GPU/TPU 대비 낮음.
(3) GPU
설계 목표: 수천 개 경량 코어로 SIMT(유사한 명령의 동시 실행) 기반 대량 병렬 처리.
강점: 방대한 스루풋, 높은 메모리 대역폭(HBM 등), FP32/FP16/BF16/INT 연산 최적화.
예: 3D 렌더링/게임, 비디오 인코딩, 과학 시뮬레이션, 딥러닝 학습·추론.
한계: 분기 많은 제어 흐름·작은 배치의 잡다한 작업엔 비효율적일 수 있음.
(4) TPU
TPU(Tensor Processing Unit)는 텐서를 처리하려고 만든 처리 장치이다.
여기서 텐서는 텐서플로 라이브러리에서 사용하는 데이터를 의미한다.
구글은 이러한 텐서플로라는 머신러닝 라이브러리를 구체적으로 처리하기 위해
자체적으로 TPU를 개발했다.
구글에서 2016년 5월에 발표한 머신러닝을 위해 설계된 ASIC이다. 대규모 행렬 연산에 특화되어 있음.
TPU를 위한 소프트웨어로는 구글에서 오픈소스로 공개한 TensorFlow가 있음.
PyTorch에서는 PyTorch/XLA로 TPU에서 작업을 수행할 수 있음.
Google Cloud Platform의 Cloud TPU를 통해 이용할 수 있음. Colab에서는 무료로 TPU v2-8을 이용할 수 있고, Kaggle에서는 TPU v3-8을 이용할 수 있음.
설계 목표: 대규모 행렬 곱(텐서)을 위한 시스트올릭 어레이 등 전용 유닛으로 딥러닝 가속.
강점: 학습/추론에서 매우 높은 성능/전력 효율, BF16/INT8 등 저정밀 연산 최적화.
예: 거대 신경망(Transformer 등) 학습, 대규모 추론, TPU Pod로 노드 간 스케일아웃.
한계: 용도 특화(범용성 낮음), 특정 SW 스택(XLA, 특정 프레임워크) 의존, 온프레 도입 난이도.
(5) 핵심 비교 표
구분
CPU
GPU
TPU
설계 목적
범용 컴퓨팅
데이터 병렬/그래픽
딥러닝 전용(행렬 연산)
연산 모델
스칼라/벡터(AVX/NEON)
SIMT(워프/웨이브프런트)
시스트올릭 어레이 기반 매트릭스 유닛
병렬성 규모
수~수십 코어
수천 코어
대형 매트릭스 타일 + 대규모 스케일아웃
지연시간
매우 낮음
중간(배치에 유리)
배치 처리에 최적
메모리 특성
낮은 지연, 큰 캐시
매우 높은 대역폭(HBM 등)
대역폭·집적·전용 버퍼 최적화
전력/효율
범용에 균형
병렬 연산 대비 우수
딥러닝에 최고 효율 지향
대표 작업
OS/서비스 로직
그래픽, 미디어, 과학계산, ML
대규모 ML 학습·추론
개발 난이도
낮음(범용 언어)
중간(CUDA/ROCm 등)
중~높음(XLA/전용 워크플로)
(6) 언제 무엇을 쓰나?
일반 서버/백엔드, 낮은 지연 API: CPU 중심, 필요시 소규모 가속 보조.
대량 병렬 연산(렌더링, 시뮬, 딥러닝 전반): GPU가 기본 선택.
대규모 딥러닝(특히 학습·대배치 추론): TPU가 비용·전력 효율 측면에서 유리할 수 있음.