Facebook открыл код библиотеки для ускорения приложений машинного обучения

Facebook опубликовал новую библиотеку QNNPACK (Quantized Neural Network PACKage), предоставляющую набор оптимизированных для выполнении на мобильных устройствах операторов, которые можно использовать для ускорения реализаций различных нейронных сетей. В частности, QNNPACK предоставляет операторы для построения свёрточных, развёртывающих и полностью рекуррентных нейронных сетей, манипулирующих квантованными 8-битными тензорами. Библиотека написана на языке Си с ассемблерными вставками, использующими SIMD-инструкции NEON и SSE2 для распараллеливания обработки данных. Код распространяется под лицензией BSD.

Предоставляемые библиотекой QNNPACK примитивы могут использоваться для замены типовых реализаций операторов нейронных сетей в высокоуровневых фреймворках машинного обучения. В настоящее время QNNPACK можно использовать для ускорения работы фреймворка PyTorch и поддерживает экспорт моделей в графовое представление Caffe2. Библиотека уже применяется в мобильных приложениях Facebook для решения задач компьютерного зрения, таких как классификация и распознавание изображений, а также выделение объектов (Mask R-CNN, DensePose) на фотографиях в режиме реального времени.

Замена предлагаемых во фреймворках штатных реализаций операторов нейронных сетей на предоставляемые библиотекой QNNPACK оптимизированные операторы, позволяет ускорить работу приложений на мобильных устройствах приблизительно в два раза, при выполнении тестов на базе нейронной сети MobileNetV2 при решении задач компьютерного зрения. Библиотека поддерживает 32- и 64-разрядные архитектуры ARM (AArch32 и AArch64), а также архитектуру x86 (для оптимизации используются инструкции SSE2).

10/30/2018 09:23:01
0

комментарии (0)