2.1.1. CPU와 GPU의 차이

GPU (Graphics Processing Unit), CPU (Central Processing Unit)
CPU는 컴퓨터의 두뇌를 담당합니다. 다양한 환경에서의 작업을 빠르게 수행하기 위해 ALU의 구조가 복잡하고 명령어 하나로 처리할 수 있는 기능도 많으며 각종 제어 처리를 위한 부분이 많습니다. 반면 GPU는 특화된 연산을 빠른 속도로 처리하기 위해 단순한 ALU를 여러개 갖고 있는 구조로 이루어져 있습니졌다. 이 때문에 GPU 단독으로는 아무것도 처리할 수 없으며 GPU를 제어하는 것은 여전히 CPU의 역할입니다.
CPU는 입출력장치, 기억장치, 연산장치를 비롯한 컴퓨터 리소스를 이용하는 최상위 계층 장치인 '중앙처리장치'로써, 컴퓨터의 두뇌와 같은 역할을 담당합니다. 따라서 데이터 처리와 더불어 프로그램에서 분석한 알고리즘에 따라 다음 행동을 결정하고 멀티태스킹을 위해 나눈 작업들에 우선순위를 지정하고 전환하며 가상 메모리를 관리하는 등 컴퓨터를 지휘하는 역할을 수행합니다. 컴퓨터 프로그램의 대부분은 복잡한 순서를 가진 알고리즘을 가지고 작동하므로 CPU가 적합하다.
GPU는 비디오, 즉 픽셀로 이루어진 영상을 처리하는 용도로 탄생했습니다. 이때문에 CPU에 비해 반복적이고 비슷한, 대량의 연산을 수행하며 이를 병렬적으로(Parallel) 나누어 작업하기 때문에 CPU에 비해 속도가 대단히 빠릅니다. 영상, 렌더링을 비롯한 그래픽 작업의 경우 픽셀 하나하나에 대해 연산을 하기 때문에 연산능력이 비교적 떨어지는 CPU가 GPU로 데이터를 보내 재빠르게 처리합니다.
CPU와 GPU의 차이는 그 작업 처리 방식을 비교해보면 쉽게 알 수 있습니다. 하나의 CPU는 직렬 처리에 최적화된 몇 개의 코어로 구성된 반면, GPU는 병렬 처리용으로 설계된 수 천 개의 보다 소형이고 효율적인 코어로 구성되었습니다.
CPU 는 GPU 보다 더 적은 코어를 갖고 있지만 각각의 코어가 GPU 보다 더 강력한 컴퓨팅 파워를 갖고 있습니다. 따라서 CPU 는 순차적인 작업 (Sequential task) 에 더 강점이 있습니다다. 반면 GPU 는 CPU 보다 코어수는 많지만 각각의 코어가 GPU 보다 더 성능이 낮기 때문에 병렬적인 작업 (Paralell task) 에 더 강점이 습니있다.
현재 PC 에서 사용되는 CPU 의 코어는 보통 4~10개 정도이며 hyperthreading 기술을 통해 thread 를 2배 정도 늘릴 수 있습니다. 예를 들어 8 코어 16 threads CPU 의 경우, 병렬적으로 16개의 task 를 수행할 수 있다는 뜻입니다. 반면, 예를 들어 NVIDIA 의 Tital XP GPU 의 경우 3840 코어를 갖고 있습다. 또 최근 출시된 2080 TI 의 경우 4,352 개의 코어를 갖고 있다습. threading 을 감안하더라도 CPU와 GPU 의 코어 수의 차이는 200 배 이상이 됩니.
https://kr.nvidia.com/object/what-is-gpu-computing-kr.html
GPU는 병렬 처리를 효율적으로 처리하기 위한 수천 개의 코어를 가지고 있습니다. 어플리케이션의 연산집약적인 부분을 GPU로 넘기고 나머지 코드만을 CPU에서 처리하는 GPU 가속 컴퓨팅은 특히 딥러닝, 머신러닝 영역에서 강력한 성능을 제공합니다. 사용자 입장에서는 연산 속도가 놀라울 정도로 빨라졌음을 느낄 수 있습니다.