CPU·GPU·NPU의 차이: 설계 사상·연산기·데이터 타입·전력 효율 비교
CPU는 무엇이든 실행할 수 있는 범용 프로세서로, 소수의 복잡한 코어로 하나의 처리를 빨리 끝냅니다. GPU는 다수의 연산기로 대량의 데이터를 병렬 처리하며, 그래픽스나 AI 학습 등 폭넓은 병렬 계산에 사용됩니다. NPU는 신경망 계산의 대부분을 차지하는 행렬 곱셈-누산 연산에 특화된 전용 회로로, INT8 등 낮은 정밀도의 연산기를 다수 배치하고 데이터를 칩 내 메모리에서 재사용함으로써 추론을 매우 높은 전력 효율로 수행합니다. 그 대신 지원하는 연산 이외에는 약합니다.
| 비교 항목 | CPU | GPU | NPU |
|---|---|---|---|
| 설계 사상 | 범용·저지연. 하나의 처리를 가능한 한 빨리 끝냄 | 고스루풋. 대량의 병렬 계산을 한꺼번에 처리함 | 신경망 연산(주로 추론)에 특화해 전력당 성능을 높임 |
| 연산기 구성 | 복잡한 코어가 수 개~수백 개. 각 코어에 SIMD 연산기 | 단순한 연산기가 수천 개. 행렬 연산 유닛을 가진 것도 많음 | 곱셈-누산 연산기의 큰 어레이(시스톨릭 어레이 등)와 활성화 함수 등을 위한 벡터 연산기 |
| 제어 방식 | 명령마다 분기 예측이나 투기적 실행(아웃 오브 오더)을 수행함 | 다수의 스레드를 전환해 메모리 대기 시간을 숨김 | 대부분 컴파일러가 미리 정한 데이터 흐름에 따라 동작하며, 명령마다의 제어는 적음 |
| 잘하는 처리 | 분기가 많은 처리, OS, 애플리케이션 로직 | 그래픽스, AI 학습과 추론, 과학기술 계산 | 합성곱이나 행렬 곱을 중심으로 하는 AI 추론 |
| 메모리 | 큰 캐시와 DDR 등의 메인 메모리 | GDDR이나 HBM 등의 고대역폭 메모리 | 칩 내 SRAM 버퍼에서 가중치나 중간 데이터를 재사용함. SoC 내장형은 CPU와 메인 메모리를 공유 |
| 주요 데이터 타입 | FP64·FP32와 정수를 중심으로 거의 모두 | FP32·FP16·BF16이 중심. 학습용으로 FP8 등도 | INT8·INT4나 FP16 등 낮은 정밀도가 중심 |
| 성능 표기 | 클록 주파수, 코어 수, IPC | FLOPS(TFLOPS 등) | TOPS(대부분 INT8로 센 이론상 최댓값) |
| AI 추론에서의 전력 효율 | 낮음 | 높음 | 가장 높음. CPU보다 한 자릿수 이상 높은 경우가 있음 |
| 유연성 | 가장 높음. 어떤 프로그램이든 동작함 | 높음. 병렬화할 수 있는 처리라면 폭넓게 사용할 수 있음 | 낮음. 지원하지 않는 연산은 CPU나 GPU로 되돌려 실행함 |
| 프로그래밍 | 일반 프로그래밍 언어와 컴파일러 | GPU용 병렬 프로그래밍 모델로 커널을 작성함 | 학습된 모델을 AI 컴파일러나 추론 런타임으로 변환해 실행함. 직접 프로그래밍하는 일은 적음 |
| 탑재 위치 | 모든 컴퓨터 | 단독 카드, 또는 SoC에 내장 | 스마트폰이나 PC의 SoC에 내장되는 경우가 많음. 데이터센터용 전용 칩도 있음 |
수치는 대략적인 자릿수 기준이며, 공정 세대와 제품에 따라 달라져요.