2021년 08월 22일 TIL

1 minute read

오늘은 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가 장착되어 있다.
  1. CPU가 맡았던 범용적인 계산을 GPU를 통해 하는 것을 GPGPU라고 한다.
  2. 단일 코어 연산은 CPU가 더 빠르다.
  3. CUDA/ OpenCL / DirectCompute 등은 GPGPU를 수행할 수 있는 대표적인 툴이다.
  4. GPU는 아주 많은 수의 프로세싱 코어와 여러 개의 ROP가 동시에 동작하므로, CPU보다 훨씬 높은 메모리 대역폭을 필요로 한다.
  5. GPU도 동일하게 개별 스레드가 서로 다른 명령을 수행해도 병렬적이기에, 성능에 부정적인 영향을 끼치지 않는다.

Categories:

Updated: