XNNPACK: 교차 플랫폼 추론을 위한 최적화된 신경망 프리미티브를 제공하는 저수준 가속 라이브러리

XNNPACK: 교차 플랫폼 추론을 위한 최적화된 신경망 프리미티브를 제공하는 저수준 가속 라이브러리

해결하는 문제

XNNPACK은 특히 모바일 및 엣지 디바이스와 같은 다양한 하드웨어 플랫폼에서 고성능 신경망 추론이 필요함을 해결합니다. 사용자가 아키텍처별 어셈블리 코드를 작성할 필요 없이 AI 모델을 효율적으로 실행하는 데 필요한 저수준 수학 프리미티브를 제공합니다.

작동 방식

이 라이브러리는 2D 컨볼루션, 풀링, 다양한 활성화 함수 등 포괄적인 신경망 연산자를 구현하는 저수준 가속 라이브러리로 동작합니다. 이러한 연산자는 ARM, x86, RISC‑V, WebAssembly 등 특정 CPU 아키텍처에 맞게 고도로 최적화되어 있습니다. 연구자가 직접 사용하기보다는 TensorFlow Lite와 PyTorch와 같은 고수준 프레임워크에 통합되어 실행 속도를 높입니다.

대상 사용자

다양한 하드웨어 목표에 걸쳐 추론 성능을 최적화해야 하는 머신러닝 프레임워크 및 런타임 엔진 개발자를 위해 설계되었습니다.

주요 특징

  • 광범위한 하드웨어 지원: ARM64, ARMv7, ARMv6, x86/x86‑64 (AVX512까지), RISC‑V, WebAssembly, Hexagon에 최적화됨.
  • 다양한 연산자 라이브러리: 그룹/깊이별 컨볼루션, bilinear resize, 다양한 양자화/역양자화 변환 등을 포함한 방대한 연산을 지원.
  • 유연한 메모리 레이아웃: 채널 차원에 대한 커스텀 스트라이드를 사용한 NHWC 레이아웃을 지원하여 채널 분할 및 연결에 비용이 들지 않음.
  • 프레임워크 통합: TensorFlow Lite, PyTorch Mobile, ONNX Runtime, MediaPipe 등 주요 도구의 추론을 가속.

Sources