CPU GPU NPU 차이, 아키텍처로 보는 세 프로세서

CPU GPU NPU 차이, 아키텍처로 보는 세 프로세서

어려운 문제가 하나 있다면 박식한 교수 한 명에게 묻는 것이 가장 빠릅니다. 하지만 덧셈 문제 백만 개를 풀어야 한다면 교수 한 명보다 계산을 할 줄 아는 학생 천 명이 훨씬 빠르죠. 그리고 늘 같은 유형의 시험 문제만 나온다면, 그 유형만 전문으로 푸는 학원이 가장 효율적일 겁니다.

CPU, GPU, NPU는 바로 이 세 가지 방식에 해당합니다. 모두 연산을 하는 프로세서지만 칩 안을 어떻게 구성했느냐가 다르죠. 이 글에서는 CPU GPU NPU 차이를 아키텍처 관점에서 정리하고, 왜 요즘 칩에 세 가지가 함께 들어가는지 살펴봅니다.

세 프로세서는 무엇이 다른가

CPU(Central Processing Unit)는 운영체제와 응용 프로그램의 명령을 차례로 처리하는 범용 프로세서입니다. GPU(Graphics Processing Unit)는 원래 화면의 수많은 픽셀을 동시에 계산하려고 만든 병렬 프로세서이고, 지금은 인공지능 학습과 과학 계산에도 널리 쓰이죠. NPU(Neural Processing Unit)는 신경망 연산, 특히 행렬 곱셈과 누적을 효율적으로 처리하도록 특화한 가속기입니다.

CPU GPU NPU 차이를 한 문장으로 말하면 칩 면적과 전력을 어디에 쓰느냐의 차이입니다. CPU는 복잡한 명령을 빠르게 처리하는 제어 회로와 캐시에, GPU는 단순한 연산기를 최대한 많이 넣는 데, NPU는 특정 연산과 데이터 이동을 줄이는 데 자원을 쏟죠.

하나의 프로세서로 모든 일을 할 수 없는 이유

컴퓨터가 하는 일은 성격이 다양합니다. 운영체제를 돌리거나 웹 페이지를 해석하는 일은 분기와 예외가 많아 다음에 무엇을 할지 예측하기 어렵죠. 반대로 이미지 처리나 신경망 연산은 같은 계산을 엄청나게 많은 데이터에 똑같이 반복합니다.

앞의 일에는 한 줄의 명령을 최대한 빨리 처리하는 능력이, 뒤의 일에는 같은 계산을 동시에 많이 처리하는 능력이 필요합니다. 한정된 칩 면적과 전력 안에서 두 능력을 모두 최고로 만들 수는 없기 때문에, 성격에 맞춰 다른 구조의 프로세서가 생겨났습니다.

아키텍처로 보는 CPU GPU NPU 차이

CPU: 적은 수의 강력한 코어

CPU 코어 하나에는 명령을 미리 예측하는 분기 예측기, 명령 순서를 바꿔 빈틈없이 실행하는 비순차 실행 장치, 메모리 지연을 숨기는 큰 캐시가 들어 있습니다. 한 줄의 명령 흐름을 최대한 빨리 끝내는 데 집중한 구조라 이를 지연 시간(Latency) 중심 설계라고 부르죠. 코어 수는 보통 수 개에서 수십 개 수준입니다.

GPU: 수많은 단순한 코어

GPU는 복잡한 제어 회로를 줄이는 대신 단순한 연산기를 수천 개 넣습니다. 여러 연산기가 하나의 명령을 받아 서로 다른 데이터에 동시에 적용하는 방식, 곧 SIMD나 SIMT 방식으로 동작하죠. 한 작업이 메모리를 기다리는 동안 다른 작업으로 바로 넘어가 연산기를 쉬지 않게 하는 처리량(Throughput) 중심 설계입니다. 많은 데이터를 빠르게 공급하려고 HBM 같은 고대역폭 메모리를 함께 쓰는 경우가 많습니다.

NPU: 행렬 연산 전용 구조

신경망 연산의 대부분은 곱하고 더하기를 반복하는 행렬 연산입니다. NPU는 곱셈-누적기(MAC)를 격자 모양으로 수백에서 수천 개 배열하고, 데이터가 격자를 따라 흘러가며 계산되게 하죠. 이런 배열을 시스톨릭 어레이(Systolic Array)라고 부릅니다.

NPU가 효율적인 이유

  1. 신경망에 필요한 연산만 하도록 회로를 단순하게 만든다.
  2. 8비트 정수처럼 낮은 정밀도 연산을 써서 연산기 크기와 전력을 줄인다.
  3. 가중치와 중간 결과를 칩 안의 메모리에 두고 다시 써서 외부 메모리 접근을 줄인다.
  4. 데이터를 이웃 연산기로 바로 넘겨 이동 거리와 에너지를 줄인다.

여기서 중요한 점은 데이터 이동입니다. 칩에서는 계산 자체보다 데이터를 메모리에서 가져오는 데 더 많은 에너지가 드는 경우가 많아, NPU는 데이터를 얼마나 적게 옮기느냐에 설계의 상당 부분을 씁니다.

각 구조의 장점과 한계

CPU는 어떤 프로그램이든 돌릴 수 있는 유연성이 가장 큰 장점이지만, 같은 연산을 대량으로 반복하는 작업에서는 전력 대비 효율이 낮습니다. GPU는 병렬 작업에서 압도적인 처리량을 내지만, 분기가 많고 순차적인 작업에는 맞지 않고 전력 소모도 크죠.

NPU는 신경망 추론에서 가장 높은 전력 효율을 보이지만, 지원하는 연산과 데이터 형식이 정해져 있어 새로운 모델 구조가 나오면 대응이 늦을 수 있습니다. 흔히 NPU가 GPU를 완전히 대체한다고 생각하지만, 실제로는 대규모 학습처럼 유연성이 필요한 일에는 GPU가, 스마트폰처럼 전력이 제한된 기기의 추론에는 NPU가 강점을 보이는 식으로 역할이 나뉩니다.

함께 일하는 이종 컴퓨팅

요즘 스마트폰의 AP에는 CPU, GPU, NPU가 한 칩에 함께 들어갑니다. 앱의 흐름과 제어는 CPU가, 게임 그래픽은 GPU가, 사진 보정이나 음성 인식 같은 인공지능 기능은 NPU가 맡는 식이죠. 서로 다른 프로세서가 일을 나눠 맡는 이 방식을 이종 컴퓨팅(Heterogeneous Computing)이라고 합니다.

교수와 학생과 전문 학원이 각자 잘하는 문제를 맡으면 전체 일이 가장 빨리 끝나듯, 칩도 일의 성격에 맞는 프로세서에 작업을 보내야 성능과 전력을 함께 잡을 수 있습니다. 그래서 하드웨어만큼이나 작업을 알맞게 나눠 주는 소프트웨어와 컴파일러의 역할도 중요해졌습니다.

세 프로세서 비교 표

구분CPUGPUNPU
설계 목표지연 시간 최소화처리량 최대화신경망 연산 효율 최대화
코어 구성적은 수의 복잡한 코어수천 개의 단순한 연산기MAC 배열(시스톨릭 어레이 등)
면적을 많이 쓰는 곳제어 회로, 캐시연산기, 레지스터MAC 배열, 온칩 메모리
강한 작업운영체제, 분기가 많은 프로그램그래픽, 대규모 병렬 계산, AI 학습AI 추론, 저전력 신경망 연산
유연성가장 높음높음낮음
비유박식한 교수계산하는 학생 천 명한 유형만 푸는 전문 학원

핵심 정리

CPU GPU NPU 차이는 칩 자원을 어디에 쓰느냐에서 나옵니다. CPU는 복잡한 코어와 큰 캐시로 한 줄의 명령을 빨리 끝내는 지연 시간 중심 구조, GPU는 수천 개의 단순한 연산기로 같은 계산을 동시에 처리하는 처리량 중심 구조, NPU는 MAC 배열과 온칩 메모리로 신경망 연산과 데이터 이동을 최적화한 전용 구조죠. 요즘 칩은 세 가지를 함께 넣어 일을 나눠 맡깁니다.

교수와 학생, 전문 학원이 각자의 문제를 맡듯, 프로세서도 일의 성격에 따라 고릅니다. 새로운 칩 소식을 볼 때 ‘이 칩은 지연 시간, 처리량, 전용 효율 중 무엇에 자원을 썼는가’를 물으면 그 칩이 어떤 일을 위해 태어났는지 금방 보입니다.

면접 대비 질문

면접 대비 질문인공지능 연산에서 GPU나 NPU가 CPU보다 유리한 이유를 아키텍처 관점에서 설명해 보세요.

[답변 포인트] 신경망 연산은 대부분 같은 곱셈-누적을 대량의 데이터에 반복하는 행렬 연산이라 병렬성이 매우 높다는 점을 먼저 말합니다. CPU는 소수의 복잡한 코어와 제어 회로에 면적을 쓰는 반면, GPU는 수천 개의 연산기로 처리량을 높이고, NPU는 MAC 배열과 낮은 정밀도 연산, 온칩 메모리 재사용으로 데이터 이동 에너지까지 줄인다고 비교합니다. 메모리 대역폭이 병목이 되기 쉬워 HBM 같은 고대역폭 메모리가 함께 쓰인다는 점을 덧붙이면 좋습니다.