google/XNNPACK

High-efficiency floating-point neural network inference operators for mobile, server, and Web

해결하는 문제

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 등 주요 도구의 추론을 가속화합니다.