Neural Processing Unit (NPU)
신경 처리 장치(NPU)는 신경망 연산에 맞게 설계된 프로세서로, 휴대전화, PC, 카메라에서 양자화된 모델을 효율적으로 실행합니다.
신경망 처리 장치(NPU)는 신경망 실행에 맞게 설계된 프로세서로, 온칩 메모리에서 데이터를 공급받는 대규모 곱셈 누산기 배열을 중심으로 구성됩니다. 대부분의 NPU는 시스템 온 칩 안에서 CPU 및 GPU 옆에 배치되는 블록으로, 나머지 두 프로세서보다 훨씬 적은 전력으로 카메라, 음성, 비전 기능의 추론을 실행합니다. 초당 6천억 회 연산 성능으로 평가된 Neural Engine을 탑재한 Huawei의 Kirin 970과 Apple의 A11 Bionic은 2017년 NPU를 스마트폰에 도입했으며, 이후 Qualcomm의 Hexagon NPU, 2023년 12월부터 Intel Core Ultra 노트북 프로세서에 탑재된 NPU, AMD Ryzen AI 칩이 뒤를 이었습니다. Microsoft의 Copilot+ PC에는 초당 40조 회를 넘는 연산을 처리하는 NPU가 필요합니다. 이 용어는 데이터센터 칩도 가리킵니다. Huawei는 Ascend 데이터센터 가속기를 NPU라고 부르며 대규모 모델 학습에 사용합니다.
NPU와 CPU 및 GPU의 차이#
딥러닝 추론은 예측 가능한 데이터에 대한 행렬 곱셈과 합성곱이 대부분을 차지합니다. 따라서 NPU는 범용 코드를 처리하는 CPU에 필요한 제어 로직과 캐싱, 그래픽 처리를 위해 GPU가 유지하는 유연성 대부분을 제거합니다. 대신 실리콘을 고정 기능 연산 배열에 할당하고, 데이터 이동이 연산보다 더 많은 에너지를 사용하므로 가중치와 활성화 값을 로컬 메모리에 보관합니다. 또한 NPU는 주로 INT8과 FP16의 저정밀도 연산을 수행합니다. 따라서 모델은 NPU에서 실행하기 전에 대개 양자화가 필요하며, NPU 처리량은 INT8 TOPS로 표시됩니다. 예를 들어 Google의 Coral Edge TPU는 와트당 2 TOPS의 성능으로 4 TOPS를 처리합니다.
- CPU: 모든 코드를 실행하고 NPU가 지원하지 않는 연산을 처리하며, 세 프로세서 중 대규모 행렬 연산 속도가 가장 느립니다.
- GPU: 프로그래밍 가능한 병렬 프로세서로, 높은 처리량으로 부동소수점 모델 학습과 실행을 수행하지만 NPU보다 전력 소비량이 많습니다.
- TPU: Google의 행렬 가속기 제품군입니다. Cloud TPU는 데이터센터에서 모델을 학습하고 서비스하며, Edge TPU는 이름만 다를 뿐 NPU입니다.
- 뉴로모픽 칩: 스파이킹 신경망의 스파이크를 처리하며 이벤트 기반 센서에 적합합니다. 이는 NPU의 조밀한 행렬 연산과는 다른 컴퓨팅 모델입니다.
NPU에서 모델 실행하기#
NPU는 PyTorch나 ONNX 그래프 대신 컴파일된 프로그램을 실행합니다. 공급업체 컴파일러는 네트워크를 사전 컴파일하거나 런타임 로드 시점에 변환합니다. 대개 보정 이미지를 사용해 INT8로 양자화하고, 일반적으로 입력 형태를 고정한 뒤 각 계층을 하드웨어에 매핑합니다. NPU가 지원하지 않는 계층은 CPU나 GPU로 넘기며, 이때마다 프로세서 간 텐서 복사가 발생합니다.
폴백이 발생할 때마다 데이터 전송이 추가되고 한 프로세서가 다른 프로세서를 기다리게 되므로, 엣지 장치용 아키텍처는 합성곱, ReLU 계열 활성화 함수, 풀링 같은 표준 연산자를 선호합니다. ONNX Runtime, Apple Core ML, Google LiteRT, Intel OpenVINO 같은 런타임은 이러한 분할을 처리하고 NPU가 있으면 이를 선택합니다.
NPU의 활용 분야#
스마트폰은 NPU를 컴퓨터 사진 처리, 온디바이스 음성 인식, 안면 인식, 실시간 번역에 사용합니다. 이를 통해 이미지와 오디오를 기기 안에 보관하여 데이터 개인정보를 보호합니다. AI PC에서는 Windows Studio Effects가 NPU에서 화상 통화의 배경 흐림, 시선 보정, 자동 프레이밍을 실행해 CPU와 GPU를 다른 작업에 사용할 수 있게 합니다. 엣지 AI 분야에서는 Rockchip, Hailo, DEEPX의 NPU가 네트워크 연결 없이 보안 카메라, 드론, 로봇 안에서 객체 검출을 수행합니다.
Ultralytics YOLO26은 내보내기 모드를 통해 NPU에 필요한 컴파일 형식으로 내보낼 수 있습니다. Intel NPU용 OpenVINO, Apple Neural Engine용 Core ML, Qualcomm Hexagon NPU용 QNN, Rockchip용 RKNN, Huawei Ascend용 .om 형식이 이에 포함됩니다. 또한 device="npu:0" 또는 다중 NPU 학습용 device="npu:0,1"를 선택해 Ascend NPU에서 학습할 수 있습니다.










