CPU와 GPU
CPU와 GPU는 둘 다 데이터를 읽어들여 연산처리하는 기능을 수행하지만, 이름과 구조에서 알수 있듯이
중앙 처리 장치(CPU)와 그래픽 처리 장치(GPU)는 역할이 매우 다릅니다.
CPU
- 직렬 명령 처리에 특화되어 있습니다.
이는 한 번에 한 가지의 명령어만 처리한다는 것을 의미하고, 따라서 연산을 담당하는 ALU의 개수가 많을 필요가 없습니다.
예를 들어, Octa-core CPU의 경우 코어 당 1개씩 총 8개의 ALU가 탑재되어 있는 제품입니다.
- 낮은 대기 시간
그림처럼 CPU 내부의 절반 이상은 캐시 메모리로 채워져 있습니다. 그만큼 응답 속도를 높일 수 있습니다.
CPU는 GPU에 비해 GHz가 높습니다. Hz란 1초에 몇번 틱 하냐인데, 이것이 높을 수록 응답 속도가 높을 수 있습니다.
클럭이 높을수록 한 사이클(틱) 이 짧아지므로 최소 지연(latency) 이 짧아지기 때문입니다.
GPU
- 병렬 처리에 특화된 그래픽 처리 보조 장치입니다.
특화된 연산 처리를 위해 공통 캐시와 컨트롤 유닛 요소를 공유하는 수많은 ALU로 구성되어, 높은 처리량을 자랑합니다.
대규모 병렬 연산을 처리하도록 설계되어 초기에는 주로 그래픽 렌더링에 사용되었으나, 현재는 AI에 활용되고 있습니다.
CPU와 GPU의 클럭 수 (Hz)
CPU·GPU 내부에는 “틱‑톡” 리듬을 만드는 클럭 회로가 있습니다.
매 한 번의 틱(주기, Cycle) 에 맞춰 회로들이 데이터를 읽고 쓰고 계산합니다.
이 틱이 초당 얼마나 빠르게 일어나느냐가 클럭 속도(주파수, Frequency) 입니다.
∙ 메트로놈을 60 BPM으로 맞추면 1분에 60번 ‘딱딱’ → 느린 연주
∙ 240 BPM이면 1분에 240번 ‘딱딱’ → 빠른 연주
∙ CPU·GPU도 비슷하게, 클럭이 높을수록 한 단위 일을 더 자주 시작할 수 있습니다.
보통 CPU의 클럭 수가 GPU의 클럭 수 보다 높습니다.
그래서 더 빠른 응답 시간에도 긍정적인 영향이 있습니다.
"GPU의 클럭을 높이면 안돼?"
GPU 특성의 설계 상황에서 클럭을 큰 폭으로 올리는 것은 경제·물리·열 한계 때문에 현실성이 없습니다.
그래서 업계는 고클럭 대신 더 많은 병렬 유닛과 전용 행렬 엔진을 추가해 성능을 키우는 길을 택하고 있어요.
CPU와 GPU = latency vs 처리량
CPU = 복잡하고 순차적인 계산(저지연·다기능)
GPU = 단순한 계산을 한꺼번에 왕창(대역폭·병렬처리)
AI 발전에 GPU가 이용되는 이유
거대한 데이터를 수도 없이 반복 계산해야 하는 병렬 작업이 필요하기에, CPU 보다 GPU가 더 필요하게 됩니다.
GPU가 CPU보다 낮은 클럭이라도 병렬 코어 수 로 딥러닝처럼 큰 행렬 계산을 훨씬 빠르게 끝낼 수 있는 이유가 여기 있습니다!
참고
'[클라이언트] > [Android Kotlin]' 카테고리의 다른 글
[당신이 잠든 사이에] 포그라운드 서비스와 백그라운드 서비스의 변천사 (Service, IntentService, JobIntentService, WorkManager, AlarmManager) (0) | 2025.03.31 |
---|---|
Paging3 적절히 판단해서 사용하기 (0) | 2025.03.17 |
Paging3 - insertSeparators 활용하여 갤러리 구현하기 (0) | 2025.02.20 |
✓ Built build/app/outputs/flutter-apk/app-debug.apk 무한 로딩 (0) | 2024.11.02 |
[우아한테크코스] 5주차 회고 (1) | 2024.03.23 |