2021년 08월 22일 TIL
오늘은 CPU와 GPU의 차이에 대해 공부했다.
CPU와 GPU의 차이
-
GPGPU(General-Purpose computing on Graphics Processing Units, GPU 상의 범용 계산)
일반적으로 컴퓨터 그래픽스를 위한 계산만 맡았던 GPU를 전통적으로 중앙 처리 장치(CPU) 가 맡았던 응용 프로그램들의 계산에 사용하는 기술.
- GPU의 구조는 CPU와 크게 달라 특화된 연산을 빠르게 수행하기 위해 비교적 단순한 다수의 ALU와 FPU에 비중을 둔 구조로 만들어졌다. 따라서 GPU 단독으로는 어떤 작업도 수행할 수 없으며, 여전히 GPU를 제어하고 명령하는 것은 CPU이다.
- GPU는 대량 계산에 용이하게 설계되므로 잘 이용하면 연산 성능 향상이 가능하다.
- 둘 다 데이터를 읽어 연산을 통해 답을 도출
- CPU는 명령어가 입력된 순서대로 데이터를 처리(직렬 처리 방식)이며, 내부 면적의 절반 이상이 캐시로 채워져 있어 GPU에 비해 상대적으로 ALU(Arithmetic logic unit)가 차지할 수 있는 공간이 적다.
- GPU는 여러 명령을 동시에 처리하는 병렬 처리 방식에 특화된 구조를 가지고 있다. 캐시 메모리 비중이 크지 않고, 연산을 할 수 있는 ALU 개수가 많다. 1개의 코어에 수백~수천개의 ALU가 장착되어 있다.
- CPU가 맡았던 범용적인 계산을 GPU를 통해 하는 것을 GPGPU라고 한다.
- 단일 코어 연산은 CPU가 더 빠르다.
- CUDA/ OpenCL / DirectCompute 등은 GPGPU를 수행할 수 있는 대표적인 툴이다.
- GPU는 아주 많은 수의 프로세싱 코어와 여러 개의 ROP가 동시에 동작하므로, CPU보다 훨씬 높은 메모리 대역폭을 필요로 한다.
- GPU도 동일하게 개별 스레드가 서로 다른 명령을 수행해도 병렬적이기에, 성능에 부정적인 영향을 끼치지 않는다.