CPU와 GPU의 구조와 용도 차이
CPU는 하나의 작업을 가능한 한 빨리 끝내도록 만들어져 강력한 코어 몇 개와 큰 캐시, 정교한 제어 로직을 갖추고 있습니다. GPU는 비슷한 작업을 한꺼번에 많이 끝내도록 만들어져 수천 개의 단순한 연산 유닛을 갖추고, 방대한 수의 스레드를 전환해 가며 메모리 지연을 숨깁니다. CPU는 복잡하고 분기가 많은 직렬 작업에, GPU는 그래픽과 딥러닝 같은 대규모 병렬 연산에 강합니다.
| 비교 항목 | CPU | GPU |
|---|---|---|
| 설계 목표 | 낮은 지연 시간: 단일 스레드를 가능한 한 빨리 끝냅니다 | 높은 처리량: 전체 작업량을 최대한 많이 끝냅니다 |
| 코어 수 | 복잡한 코어 수 개에서 수백 개 | 단순한 연산 유닛 수천 개를 더 큰 블록으로 묶은 구조 |
| 실행 모델 | 각 코어에서 비순차 실행과 분기 예측을 하며 SIMD 명령어도 사용합니다 | SIMT: 스레드 그룹(예: 32개)이 같은 명령어를 함께 실행합니다 |
| 제어 로직과 캐시 | 큰 캐시와 정교한 제어 로직이 칩 면적의 상당 부분을 차지합니다 | 더 많은 면적이 연산 유닛에 쓰이고, 스레드당 캐시는 더 작습니다 |
| 메모리 지연 숨기기 | 주로 캐시와 프리페치로 해결합니다 | 주로 한 스레드가 기다리는 동안 준비된 다른 스레드로 전환해 해결합니다 |
| 메모리 | DDR 또는 LPDDR, 대역폭은 보통 수십~수백 GB/s | GDDR 또는 HBM, 대역폭은 보통 수백 GB/s~수 TB/s |
| 분기 처리 | 분기와 불규칙한 코드를 잘 처리합니다 | 그룹 내 스레드가 서로 다른 분기를 타면 느려집니다(다이버전스) |
| 데이터 위치 | 메인 메모리에서 직접 작업합니다 | 외장 GPU는 자체 메모리를 가지므로 PCIe 같은 버스로 데이터를 복사해야 합니다 |
| 프로그래밍 | 거의 모든 언어와 도구를 사용할 수 있습니다 | CUDA, HIP, OpenCL, 그래픽 셰이더 언어 같은 전용 모델을 사용합니다 |
| 대표 워크로드 | 운영체제, 데이터베이스, 제어 로직, 범용 애플리케이션 | 그래픽, 행렬·벡터 연산, 딥러닝, 시뮬레이션 |
수치는 대략적인 자릿수 기준이며, 공정 세대와 제품에 따라 달라져요.