이기종 컴퓨팅에서 CPU와 가속기를 배치하는 방법
이기종 컴퓨팅의 구조와 CPU·DSP·GPU·FPGA·ASIC의 역할, 호스트-디바이스 구성 및 작업 오프로딩 전략을 정리한다.
2026-08-14 · 최초 발행 2025-12-28
하나의 프로세서만으로는 맞추기 어려운 워크로드
연산의 성격이 다양해질수록 단일 종류의 프로세서만으로 모든 작업을 효율적으로 처리하기는 어렵다. 이기종 컴퓨팅은 서로 다른 특성을 지닌 프로세서를 한 시스템에 결합하고, 각 작업을 가장 적합한 실행 장치에 배치하는 접근이다.
동기종 시스템에서는 모든 처리 유닛이 같은 아키텍처를 사용한다. 프로그래밍 모델은 단순하지만, 작업 특성과 무관하게 같은 종류의 성능 특성을 감수해야 하므로 에너지 효율을 최적화하기 어렵다.
반대로 이기종 시스템은 범용 CPU와 DSP, GPU, FPGA 같은 장치를 조합한다. 프로그래밍과 작업 배분은 복잡해지지만, 장치별 강점을 활용해 성능과 전력 효율을 높일 수 있다. 병렬성이 큰 작업은 가속기로 보내고, 직렬 처리나 복잡한 제어 흐름은 고성능 CPU가 맡는 식이다. Dark Silicon 문제를 완화하고 특수 목적 하드웨어를 통합하기에도 적합하다.
작업 성격에 따라 달라지는 프로세서의 역할
CPU는 범용 목적의 프로세서다. 복잡한 제어 로직, 낮은 레이턴시, 순차 처리, 강력한 분기 예측이 필요한 환경에 맞는다. 직렬 알고리즘, 불규칙한 메모리 접근, 복잡한 제어 흐름, 운영체제 커널 실행은 CPU에 적합하다.
DSP는 신호 처리에 특화되어 있다. SIMD 연산, 고정소수점 연산, 낮은 전력 소비와 실시간 처리 능력이 필요한 오디오·비디오 인코딩 및 디코딩, 디지털 필터링, FFT, 무선 통신 신호 처리, 이미지 전처리에 사용한다.
GPU는 수천 개의 간단한 코어와 높은 메모리 대역폭을 바탕으로 대규모 병렬 처리를 수행한다. SIMT 실행 모델과 부동소수점 연산 특성은 3D 그래픽 렌더링, 행렬 연산, 딥러닝 학습 및 추론, 과학 시뮬레이션, 암호화폐 마이닝에 맞는다.
FPGA는 사용자가 데이터 경로를 재구성할 수 있는 하드웨어다. 극도로 낮은 레이턴시와 파이프라인 병렬성을 제공하지만 개발 복잡도가 높다. 하드웨어 가속, 실시간 스트림 처리, 암호화·복호화, 네트워크 패킷 처리, 프로토타이핑에 활용된다.
ASIC은 특정 응용에 맞춰 제작되는 회로다. 재구성은 불가능하지만 최고 수준의 성능과 전력 효율을 얻을 수 있으며, 개발 비용은 높고 대량 생산 시 단가는 낮아진다. AI 추론의 TPU·NPU, 비트코인 마이닝, 비디오 인코더, 특수 목적 가속기가 여기에 해당한다.
호스트가 제어하고 가속기가 연산하는 구성
가속기를 붙인 시스템은 보통 호스트-디바이스 모델을 따른다. 호스트인 범용 CPU는 운영체제를 실행하고 시스템 전체를 제어하며 작업을 스케줄링한다. 디바이스인 가속기는 호스트의 명령을 받아 특정 작업을 빠르게 처리한 뒤 결과를 반환한다.
일반적인 흐름은 호스트가 작업을 준비하고, 데이터를 디바이스 메모리로 전송한 다음, 디바이스에서 커널을 실행하는 순서다. 처리 결과는 다시 호스트 메모리로 복사되어 후처리에 사용된다.
PCIe 기반 가속기는 PCIe(Peripheral Component Interconnect Express)를 표준 인터페이스로 사용해 범용성과 확장성을 제공한다. PCIe Gen3는 x16 레인에서 최대 15.75GB/s, PCIe Gen4는 최대 31.5GB/s, PCIe Gen5는 최대 63GB/s를 제공한다. 다만 호스트와 디바이스 사이의 복사 비용과 레이턴시는 별도로 고려해야 하며, 비동기 전송으로 이 오버헤드를 숨길 수 있다.
SoC(System on Chip) 형태의 온칩 통합 가속기는 CPU와 가속기를 같은 칩에 배치한다. 낮은 레이턴시, 높은 대역폭, 전력 효율이 장점이다. 공유 메모리 구조에서는 데이터 복사 오버헤드를 제거하고 제로 카피(Zero-Copy)를 사용할 수 있지만, 캐시 일관성 프로토콜이 필요하다.
오프로딩 판단은 연산량만으로 끝나지 않는다
작업을 배치하기 전에는 프로파일링이 필요하다. 연산량이 많은 계산 집약적 작업은 GPU, FPGA, ASIC에 적합하다. 메모리 집약적 작업은 메모리 대역폭이 중요하므로 고대역폭 메모리를 갖춘 가속기를 활용한다. 복잡한 분기 로직이 중심인 제어 집약적 작업은 CPU에서 처리한다.
병렬성의 종류도 장치 선택을 바꾼다. 동일 연산을 서로 다른 데이터에 적용하는 데이터 병렬성은 GPU, SIMD, FPGA에 맞는다. 서로 다른 작업을 동시에 실행하는 작업 병렬성은 멀티코어 CPU에 적합하다. 단계를 나누어 흐르게 하는 파이프라인 병렬성은 FPGA가 다루기 좋다.
오프로딩을 결정할 때는 각 프로세서의 실행 시간 예측뿐 아니라 데이터 전송 시간과 전체 완료 시간을 함께 본다. 작업당 에너지 소비도 판단 기준이 된다. 배터리 수명이 중요한 환경에서는 저전력 프로세서를 선택할 수 있으며, 모든 프로세서의 유휴 시간을 줄이도록 부하를 분산한다.
장치 간 이식성과 최적화를 다루는 프로그래밍 모델
OpenCL(Open Computing Language)은 CPU, GPU, FPGA 등 다양한 디바이스를 대상으로 하는 범용 병렬 프로그래밍 프레임워크다. 단일 소스 코드의 이식성을 제공하며 호스트 API와 커널 언어를 함께 제공한다.
CUDA(Compute Unified Device Architecture)는 NVIDIA GPU 전용 모델이다. C/C++ 확장 언어를 사용하고 성숙한 생태계 및 라이브러리를 갖추며, 높은 수준의 성능 최적화가 가능하다.
OpenMP는 CPU 멀티코어 병렬화에 사용하는 지시자 기반 프로그래밍 모델이다. 점진적인 병렬화가 가능하고, 최근 버전에서는 가속기 offload도 지원한다.
SYCL은 C++ 기반의 단일 소스 프로그래밍 모델로 OpenCL 추상화 레이어를 제공한다. 타입 안전성과 모던 C++ 기능을 활용할 수 있다.
가속 효과를 높이려면 데이터 이동을 줄여야 한다. 중간 결과를 디바이스에 유지하고 데이터 재사용을 높이며 비동기 전송을 활용하는 방식이 여기에 속한다. 여러 연산을 하나의 커널로 통합하는 커널 융합(Kernel Fusion)은 메모리 접근 횟수를 줄이고 데이터 지역성을 높인다. 공유 메모리 활용, 레지스터 압력 관리, 코얼레싱(Coalescing) 메모리 접근도 메모리 계층을 다루는 핵심 기법이다.
모바일부터 데이터센터까지의 이기종 구성
모바일 프로세서에서는 Apple A-series의 CPU + GPU + Neural Engine, Qualcomm Snapdragon의 CPU + GPU + DSP + ISP 같은 조합을 볼 수 있다. 이 구성은 전력 효율과 성능의 균형을 목표로 한다.
서버와 데이터센터에서는 AI 학습을 위한 CPU + GPU, 클라우드 가속을 위한 CPU + FPGA, DPU(Data Processing Unit) 통합 구성이 사용된다. 임베디드 환경에서는 ADAS(Advanced Driver Assistance Systems), IoT 게이트웨이, 산업용 제어 시스템이 이기종 컴퓨팅의 활용 대상이다.
이기종 컴퓨팅의 핵심은 CPU와 특수 목적 가속기를 함께 두는 데 있지 않다. 각 프로세서의 특성과 작업의 요구를 연결하고, 데이터 이동과 스케줄링 비용까지 포함해 배치하는 데 있다.