Parallel Computing·2025. 10. 16
CPU vs. GPU 설계 철학
두 가지 설계 철학
CPU와 GPU는 같은 칩이지만 완전히 다른 목표를 가지고 설계되었다.
CPU: 반응 시간(latency) 우선
- 순차 처리(sequential processing)에 적합하다
- 기존 고성능 코어를 추가한다 (multi-core)
GPU: 처리량(throughput) 우선
- 병렬 처리(parallel processing)에 집중한다
- 성능에 무관하게 코어 숫자를 증가시킨다 (many-core)
Latency vs Throughput
- Latency(지연시간): 하나의 작업이 시작해서 끝날 때까지 걸리는 시간
- Throughput(처리량): 단위 시간당 처리할 수 있는 작업의 개수
CPU: 고성능 멀티 코어
설계 목표
복잡한 명령어를 빨리 처리하는 것이 목표다. 이를 위해 다음과 같은 특징을 갖는다.
대용량 캐시
- 메모리 접근 시간을 줄이기 위해 캐시 메모리를 크게 설계한다
- L1, L2, L3 캐시 계층 구조를 사용한다
대규모 제어 유닛(CU)
- 복잡한 제어 로직을 처리한다
- 분기 예측, 명령어 파이프라인 등 고급 기법을 사용한다
고성능 ALU
- 복잡한 명령어를 빠르게 실행한다
- 코어 수는 적지만(2~32개) 각 코어의 성능이 뛰어나다
적용 분야
워드 프로세싱
- 사용자 입력에 즉시 반응해야 한다
- 화면 반응까지 GPU보다 최소한 10배 빠르다
순차적 알고리즘
- 이전 결과에 의존하는 계산들
- 복잡한 제어 흐름이 필요한 작업들
GPU: 대규모 매니 코어
설계 목표
대량의 데이터를 동시에 처리하는 것이 목표다.
소규모 캐시 메모리
- 각 코어의 캐시는 작다
- 대신 코어 개수가 많다 (1024~8192개 이상)
간단한 제어 유닛
- 1개의 CU가 여러 개의 ALU를 한꺼번에 제어한다
- 같은 명령어를 여러 데이터에 동시 실행한다 (SIMD)
대규모 ALU → 1000개 이상 동시 실행
- 단순한 연산을 대량으로 처리한다
- Thread pool 방식으로 효과적으로 관리한다
SIMD (Single Instruction Multiple Data)
하나의 명령어로 여러 데이터를 동시에 처리하는 방식이다. GPU의 핵심 실행 모델이다.
적용 분야
빅 데이터 통계 처리
- 대용량 데이터를 한번에 실행한다
- 대규모 계산이 필요하다
- CPU보다 1,000배 이상 빠르다
이미지/비디오 처리
- 모든 픽셀에 같은 연산을 적용한다
- 병렬 처리에 이상적이다
데이터 사이언스
- 빅 데이터 분석
- 머신러닝/딥러닝 학습
- 데이터 규모 ≫ GPU 코어 숫자인 경우
적용 분야의 차이
CPU가 유리한 경우
순차 처리에 적합
- 사용자 입력 → 화면 반응까지 빠른 응답이 필요하다
- 복잡한 제어 흐름이 있는 알고리즘이다
- 작은 데이터셋이다
예를 들어 워드 프로세서를 사용할 때, 키보드 입력에서 화면 업데이트까지 즉각적인 반응이 필요하다. 이런 작업은 GPU보다 CPU가 최소한 10배 빠르다.
GPU가 유리한 경우
대규모 병렬 처리에 적합
- 빅 데이터의 통계 처리
- 대용량 입력을 한번에 실행한다
- 대규모 계산이 필요하다
예를 들어 1억 개의 데이터 포인트에 같은 연산을 적용할 때, GPU는 CPU보다 1,000배 이상 빠를 수 있다.
정리
| CPU | GPU | |
|---|---|---|
| 설계 목표 | 반응 시간 단축 | 처리량 확대 |
| 처리 방식 | 순차 처리 | 병렬 처리 |
| 코어 구조 | 고성능 멀티 코어 (2~32개) | 대규모 매니 코어 (1024~8192개+) |
| 캐시 | 대용량 | 소규모 |
| 제어 유닛 | 대규모, 복잡 | 간단, 1개가 여러 ALU 제어 |
| 적용 분야 | 복잡한 제어, 즉각 반응 | 대량 데이터, 단순 반복 |
두 프로세서는 경쟁 관계가 아니라 상호 보완 관계다. 현대의 컴퓨터는 CPU와 GPU를 함께 사용하여, 각자의 장점을 살린다.