Learning
토픽 84 / 111·병렬 처리 (Parallel Processing)

Heterogeneous Computing (이기종 컴퓨팅)

Heterogeneous Computing (이기종 컴퓨팅)

CPU, GPU, FPGA, NPU 등 서로 다른 특성의 프로세서를 하나의 시스템에 통합하여 각 작업에 최적화된 프로세서를 활용함으로써 성능과 효율을 극대화하는 컴퓨팅 패러다임

목적: 성능 최적화, 에너지 효율, 작업 특화, 유연성

특징: 다중 프로세서 유형, 작업 분산, 통합 메모리, 동적 스케줄링

구성요소: ① CPU(범용 제어) ② GPU(병렬 계산) ③ NPU/TPU(AI) ④ FPGA(맞춤형 가속) ⑤ DSP(신호처리)

프로그래밍 모델

  • OpenCL: 개방형 표준, CPU/GPU/FPGA 지원, 이식성
  • CUDA: NVIDIA GPU 전용, 성능 최적화, 성숙한 생태계
  • HSA(Heterogeneous System Architecture): 통합 메모리, CPU-GPU 일관성
  • SYCL: C++ 기반, 단일 소스, 크로스 플랫폼
  • oneAPI: Intel 주도, 통합 프로그래밍 모델

메모리 모델

  • 분리 메모리: CPU-GPU 간 명시적 데이터 복사, 오버헤드
  • 통합 메모리(UMA): Apple M시리즈, AMD APU, 단일 주소공간
  • 캐시 일관성: HSA, CXL, 자동 동기화

장점: 최적 성능, 에너지 효율, 유연성, 작업 병렬성

단점: 프로그래밍 복잡도, 데이터 이동 오버헤드, 스케줄링 어려움, 디버깅 어려움

적용사례: AI 추론(CPU+NPU), 과학 계산(CPU+GPU), 엣지(CPU+FPGA), 모바일 SoC

비교: 이기종(다중유형/최적화/복잡) vs 동질(단일유형/범용/단순)

연관: GPU, NPU, FPGA, OpenCL, HSA, CXL, SoC