본문 바로가기
개발 관련 지식/잡동사니

[잡동사니] CPU, GPU, GPGPU, NPU

by rahites 2024. 11. 27.

요즘 유튜브를 보다보면 자주 보이는 쇼츠가 있다. 바로 아래와 같이 Nvidia에서 CPU와 GPU의 차이를 보여주는 시연 영상인데, 이걸 보고 나니 예전에는 잘 이해하지 못했던 CPU와 GPU의 차이를 가볍게 작성해 보려 한다(간혹 보이는 GPGPU와 NPU에 대한 설명은 덤이다).

 

예시 영상

https://youtube.com/shorts/FNZTu2iHmR0?si=58W_px8DOXhOpAGU


1. CPU(Centralized Processing Unit)

컴퓨터의 중심 프로세서로 일반적인 계산 작업을 처리한다. 다양한 작업을 수행할 수 있으며 직렬 처리에 최적화되어 한 번에 하나의 작업을 빠르게 처리할 수 있다.

 

https://rahites.tistory.com/283

 

[혼공컴운] 4. CPU의 작동 원리

CPU의 작동 원리1. ALU와 제어장치(1장에서 봤듯이)CPU는 메모리에 저장된 명령어를 읽고 해석하고 실행하는 장치이다. 계산을 하는 ALU(Arithmetic and Logical Unit, 산술논리장치), 명령어를 읽고 해석하

rahites.tistory.com

 

2. GPU(Graphics Processing Unit)

병렬 처리에 강하며 엄청나게 많은 부동 소수점 연산을 수행한다. CPU와 비교하면, 똑똑한 기능을 제거하고 단순한 연순을 빠르게 할 수 있는 장치라고 생각하면 이해가 편하다.

유튜브 댓글들을 보면 CPU는 1명의 교수이고 GPU는 1000명의 석사이다. 뭐 이런 댓글들이 보이는데 정확한(?) 비유인 것 같다... 그만큼 GPU는 단순 연산을 빠르게 할 수 있는 것에 강하다고 생각하면 될 것 같다. 딥러닝에서는 많은 파라미터에 대한 행렬곱이 이루어져야 하기 때문에 CPU에서 연산하는 것보다 GPU에서 수행하는 것이 유리하다.

 


3. NPU(Neural Processing Unit)

인공지능 및 머신러닝 작업을 가속화하기 위한 전용 프로세서로 Neural Network에서의 연산에 특화되어 있다. 전력 효율성이 높아 Mobile Device나 Embedded 시스템에서 주로 사용된다(구글에서 제작한 NPU는 TPU(Tensor Processing Unit)라고도 부른다.

NPU같은 경우 딥러닝 네트워크에 존재하는 각 Layer를 하드웨어적으로 구현하였다고도 말하는데, 이때문에 NPU 설계시 구현하지 않은 Layer가 Network에 포함되어 있다면 해당 부분은 하드웨어 가속이 되지 못한채 CPU로 연산된다.

 

 

4. GPGPU(General-Purpose GPU)

GPU를 그래픽뿐만 아니라 범용 연산에 사용하는 방식 또는 기술. 처음 들었을 때는 GPU를 발전시킨 하드웨어인가 생각했었는데, 알고보니 하드웨어가 아닌 기술을 뜻한다. GPU는 본래 그래픽을 처리하기 위한 목적으로 만들어졌기에 딥러닝, 데이터 분석 등의 그래픽 작업이 아닌 작업에서 GPU를 사용할 수 있게 만든 것이 GPGPU 기술이다.

 

즉, 우리가 딥러닝을 수행하기 위해 GPU를 사용할 수 있는 것이 GPGPU 기술 덕분이며, 대표적인 GPGPU 기술로는 Nvidia의 CUDA가 있다.

댓글