CPU
CPU는 컴퓨터의 범용 프로세서입니다. AI에서는 데이터를 불러와 준비하고, 가속기를 조율하며, GPU를 사용할 수 없는 환경에서 추론을 실행합니다.
중앙 처리 장치(CPU)는 컴퓨터의 운영 체제와 프로그램을 실행하는 범용 프로세서입니다. CPU는 소수의 고성능 코어에서 명령어를 실행하며, 각 코어는 하나의 명령어 스트림을 빠르게 처리하도록 설계되어 있습니다. 대용량 캐시, 분기 예측, 비순차 실행을 통해 복잡한 분기 코드도 빠르게 처리합니다. 인공지능(AI) 시스템에서 CPU는 데이터를 불러오고 디코딩하며, 데이터 증강을 적용하고, GPU 및 기타 가속기에 데이터를 공급하며, 추론 전 이미지 크기 조정이나 객체 탐지 후 비최대 억제와 같이 모델 실행 전후의 단계를 처리합니다. 또한 가속기가 없거나 비용 대비 효율이 낮은 경우에는 노트북과 클라우드 함수부터 Raspberry Pi에 이르기까지 CPU가 모델을 직접 실행하므로, CPU 추론 지연 시간은 엣지 AI 모델 설계의 핵심 목표가 됩니다.
CPU의 신경망 실행 방식#
신경망은 대부분의 시간을 행렬 곱셈에 사용하며, CPU는 세 가지 방식으로 이를 가속합니다. 소형 보드의 4개부터 서버 칩의 100개 이상까지 여러 코어가 배치나 계층의 서로 다른 부분을 병렬로 처리합니다. 각 코어 내부에서는 SIMD(단일 명령어, 다중 데이터) 유닛이 하나의 명령어를 여러 숫자에 동시에 적용합니다. Intel 및 AMD의 x86 칩에는 AVX2와 AVX-512가, 휴대전화와 Apple 실리콘 Mac, Raspberry Pi 보드에 사용되는 칩을 포함한 Arm 칩에는 NEON이 있으며, 최신 Arm 서버 칩에는 더 넓은 SVE 확장 기능이 탑재되어 있습니다. 최근 칩에는 행렬 유닛도 추가되었습니다. 여기에는 2023년 이후 Xeon 서버 프로세서에 탑재된 Intel의 고급 행렬 확장(AMX)과 Arm의 확장 가능한 행렬 확장(SME)이 포함되며, 이 유닛들은 명령어 한 번으로 BF16 또는 INT8 값의 작은 타일을 곱합니다.
CPU는 단일 스레드 성능을 높이기 위한 캐시와 제어 로직에 칩 면적을 사용하고 수천 개의 연산 유닛을 탑재하지 않으며, 일반 시스템 메모리에서 GPU보다 훨씬 낮은 메모리 대역폭으로 가중치를 읽기 때문에 처리량이 GPU보다 훨씬 낮습니다. 추론 엔진은 그 격차를 일부 줄여 줍니다. ONNX Runtime, Intel의 OpenVINO, Tencent의 NCNN은 계층을 융합하고, 발견한 명령어 세트에 가장 빠른 커널을 선택하며, FP32 가중치에 비해 데이터 이동량이 4분의 1인 INT8 양자화 모델을 실행합니다. CPU 배포에 적합한 엔진과 정밀도는 일반적으로 하드웨어에 따라 선택합니다:
Ultralytics는 이러한 하드웨어를 위해 YOLO26을 설계했습니다. YOLO26n은 Intel Xeon CPU에서 CPU ONNX 추론을 수행할 때 YOLO11n보다 최대 43% 빠르며, OpenVINO 내보내기를 사용하면 CPU 추론 속도가 최대 3배 빨라집니다. 이 코드는 CPU에서 YOLO26을 실행한 뒤 OpenVINO로 내보내 변환된 모델을 실행합니다.
from ultralytics import YOLO
# GPU가 있어도 가장 작은 YOLO26 탐지 모델을 CPU에서 실행합니다
model = YOLO("yolo26n.pt")
results = model.predict("https://ultralytics.com/images/bus.jpg", device="cpu")
print(results[0].speed) # 전처리, 추론, 후처리에 걸리는 시간(밀리초)
# OpenVINO 형식으로 내보낸 다음 같은 CPU에서 내보낸 모델을 실행합니다
path = model.export(format="openvino")
ov_model = YOLO(path)
results = ov_model.predict("https://ultralytics.com/images/bus.jpg", device="cpu")
print(results[0].speed)각 speed 딕셔너리는 이미지 한 장의 처리 시간을 전처리, 추론, 후처리로 나누므로, 두 개의 출력값으로 코드를 실행하는 컴퓨터에서 PyTorch와 OpenVINO의 추론 시간을 비교할 수 있습니다.
CPU, GPU, TPU, NPU 비교#
- CPU: 범용 분기 코드를 처리하는 소수의 고성능 코어입니다. 모든 컴퓨터에 CPU가 있으며, 추가 하드웨어 없이 모든 모델을 실행할 수 있지만 아래의 가속기보다 처리량은 낮습니다.
- GPU: 행렬 연산용 Tensor Core와 고대역폭 메모리를 갖춘 수천 개의 단순 코어로 구성됩니다. GPU는 학습 및 고처리량 추론을 위한 표준 하드웨어입니다.
- TPU: 대형 행렬 곱셈 유닛을 중심으로 설계된 Google의 애플리케이션 전용 칩으로, Google Cloud에서 사용할 수 있으며 소형 추론 모듈인 Edge TPU 형태로도 제공됩니다.
- NPU: 휴대전화, 노트북, 임베디드 칩에 탑재된 저전력 신경망 가속기입니다. Intel Core Ultra, AMD Ryzen AI, Qualcomm Snapdragon, Apple M 시리즈 칩은 하나의 프로세서에 CPU 코어, GPU, NPU를 결합합니다.
실제 적용 사례#
- 학습 데이터 파이프라인: GPU가 학습을 진행하는 동안 CPU 작업자 프로세스는 디스크에서 이미지를 읽고, 디코딩하고, 크기를 조정 및 증강한 뒤 배치를 구성합니다. CPU 코어가 너무 적으면 고가의 GPU가 데이터를 기다리게 됩니다.
- 스마트 카메라 및 엣지 디바이스: 초인종, 소매점 센서, 산업용 카메라는 자체 프로세서에서 소형 탐지 모델을 실행하므로, 비디오는 디바이스 안에 유지되고 알림만 외부로 전송됩니다.
- 서버리스 및 클라우드 추론: 클라우드 함수와 트래픽이 적은 엔드포인트는 CPU 전용 인스턴스에서 실행되는 경우가 많습니다. 이러한 인스턴스는 빠르게 시작되며 GPU를 예약하는 것보다 비용이 저렴합니다.
- 로컬 대규모 언어 모델: llama.cpp와 같은 프로젝트는 노트북 CPU에서 양자화된 GGUF 모델을 실행합니다. 생성 속도는 주로 토큰마다 메모리에서 가중치를 얼마나 빠르게 가져오는지에 따라 제한됩니다.










