Skip to main content
QUICK REVIEW

[논문 리뷰] daBNN: A Super Fast Inference Framework for Binary Neural Networks on ARM devices

Jianhao Zhang, Yingwei Pan|arXiv (Cornell University)|2019. 08. 16.
Advanced Neural Network Applications인용 수 10
한 줄 요약

daBNN은 ARM 디바이스에서 이진 신경망(BNNs)을 위한 고도로 최적화된 오픈소스 추론 프레임워크로, C++ 및 ARM 어셈블리에서 커스텀 비트 패킹, 이진 직접 컨볼루션, 메모리 레이아웃 최적화를 활용한다. daBNN은 단일 이진 컨볼루션에서 BMXNet 대비 7×–23× 빠르고, TensorFlow Lite 대비 8×–10× 빠르며, Bi-Real Net 18에서는 아키텍처적 개선 덕분에 30%의 성능 향상을 기록한다. 이는 높은 효율성 덕분에 가능했다.

ABSTRACT

It is always well believed that Binary Neural Networks (BNNs) could drastically accelerate the inference efficiency by replacing the arithmetic operations in float-valued Deep Neural Networks (DNNs) with bit-wise operations. Nevertheless, there has not been open-source implementation in support of this idea on low-end ARM devices (e.g., mobile phones and embedded devices). In this work, we propose daBNN --- a super fast inference framework that implements BNNs on ARM devices. Several speed-up and memory refinement strategies for bit-packing, binarized convolution, and memory layout are uniquely devised to enhance inference efficiency. Compared to the recent open-source BNN inference framework, BMXNet, our daBNN is $7\ imes$$\\sim$$23\ imes$ faster on a single binary convolution, and about $6\ imes$ faster on Bi-Real Net 18 (a BNN variant of ResNet-18). The daBNN is a BSD-licensed inference framework, and its source code, sample projects and pre-trained models are available on-line: https://github.com/JDAI-CV/dabnn.

연구 동기 및 목표

  • 모바일 기기 및 임베디드 시스템과 같은 저성능 ARM 디바이스에 대해 빠르고 오픈소스인 BNN 추론 프레임워크가 부족한 문제를 해결하기 위해.
  • BMXNet과 같은 기존 BNN 프레임워크가 ARM에서 정밀도가 전체인 추론보다 느린 성능 장벽을 극복하기 위해.
  • 고속, 오픈소스 추론 백엔드를 제공함으로써 BNN의 효율적 배포 및 아키텍처 탐색을 가능하게 하기 위해.
  • 수동 최적화된 어셈블리와 SIMD 명령어를 사용해 ARM CPU 전용으로 비트 패킹, 이진 컨볼루션, 메모리 액세스 패턴을 최적화하기 위해.
  • ONNX에서 daBNN 형식으로의 모델 변환을 지원함으로써, 커스텀 연산자 없이도 프레임워크 간 호환성 있는 BNN 배포를 가능하게 하기 위해.

제안 방법

  • 32비트 정수의 부호 비트와 SIMD 오른쪽 시프트 및 오버라이트 명령어를 활용해 다수의 1비트 요소를 동시에 패킹하는 업그레이드된 비트 패킹 기법을 제안하여, 난이도 높은 방법 대비 약 4배의 지연 감소를 달성한다.
  • BGEMM에서 불필요한 'addv' 명령어를 제거하기 위해 '이진 직접 컨볼루션'을 도입하여, XNOR 및 popcount 연산을 통해 직접 이진 내적을 계산한다.
  • 이진 텐서의 데이터 국소성과 정렬을 향상시켜 메모리 액세스 오버헤드를 줄이는 새로운 메모리 레이아웃을 구현한다.
  • 핵심 연산자를 C++로 구현하고 수동 최적화된 ARM 어셈블리로 구현하며, Java 바인딩과 안드로이드 패키징을 통해 모바일 배포를 지원한다.
  • 비트 패킹된 가중치를 가진 ONNX 모델을 daBNN 형식으로 변환하는 onnx2bnn 도구를 개발하여 Sign 연산자를 통해 이진 텐서를 탐지하고, 표준 ONNX 연산자만을 사용해 프레임워크 종속적 커스텀 레이어 없이도 변환 가능하도록 한다.
  • 융합된 BatchNorm 및 이진화 레이어를 지원하며, 표준 ONNX 연산자만을 사용해 프레임워크 간 상호운용성을 확보한다.

실험 결과

연구 질문

  • RQ1고도로 최적화된 오픈소스 BNN 추론 프레임워크는 저성능 ARM 디바이스에서 초고속 추론을 달성할 수 있는가?
  • RQ2부호 비트와 SIMD 명령어를 활용한 최적화된 비트 패킹은 난이도 높은 순차적 패킹 대비 BNN 추론 속도를 얼마나 향상시키는가?
  • RQ3이진 직접 컨볼루션은 BGEMM 구현에서 'addv' 명령어를 사용하는 전통적 방식보다 성능이 뛰어나게 되는가?
  • RQ4고성능 백엔드를 사용할 경우, 아키텍처 수정(예: 7×7 컨볼루션 교체)이 BNN 추론 속도에 얼마나 기여하는가?
  • RQ5빠른 추론 프레임워크는 기존에 느린 백엔드에서는 구현이 어려운 새로운 효율적인 BNN 아키텍처 설계를 가능하게 하는가?

주요 결과

  • daBNN은 단일 이진 컨볼루션에서 BMXNet 대비 7×–23× 빠르며, BMXNet이 유일한 오픈소스 BNN 프레임워크임을 감안할 때 놀라운 성능 향상을 보였다.
  • daBNN은 단일 이진 컨볼루션에서 정밀도가 전체인 TensorFlow Lite 대비 8×–10× 빠르며, 이는 ARM에서 BNN이 정밀도가 전체인 모델보다도 빠를 수 있음을 입증한다.
  • Bi-Real Net 18에서 daBNN은 BMXNet 대비 약 6배, TensorFlow Lite 대비 3배 빠르며, 실제 BNN에서의 우수성을 확인한다.
  • Bi-Real Net 18의 첫 번째 7×7 컨볼루션을 STEM 모듈로 교체하면 Google Pixel 1에서 정확도 저하 없이 약 30%의 성능 향상이 가능하며, 이는 daBNN의 고성능 덕분에만 실현 가능했다.
  • onnx2bnn 변환 도구를 통해 텐서플로우 및 파이토치에서 훈련한 BNN을 daBNN로 원활하게 배포할 수 있으며, BMXNet처럼 커스텀 연산자에 의존하지 않는다.
  • daBNN의 오픈소스 BSD 라이선스, 사전 빌드된 바이너리, 안드로이드 샘플 프로젝트 덕분에 산업적 배포 및 학술 연구의 진입 장벽이 낮아졌다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.