NeuroMatrix® Deep Convolutional Neural Network Kit

ЗАО НТЦ «Модуль» представляет nmDCNNk (NeuroMatrix® Deep Convolutional Neural Network Kit) - комплект для портирования обученных глубоких нейронных сетей на нейропроцессор 1879ВМ6Я.

 

 

 

Комплект nmDCNNk включает в себя следующие компоненты:

  • вычислительный модуль МС121.01 с процессором 1879ВМ6Я;
  • программный пакет DLDT (DeepLearningDeploymentTool) для портирования смоделированных и обученных на персональном компьютере глубоких сверточных сетей на модуль МС121.01;
  • приложение DLE (DeepLearningEngine), реализующее на модуле МС121.01 глубокую сверточную сеть заданной топологии;
  • библиотеку оптимизированных функций DLCL (DeepLearningComputeLibrary), обеспечивающую эффективную реализацию сверточной нейронной сети на модуле МС121.01.

Комплект nmDCNNk адресован разработчикам программного обеспечения, схемотехникам и исследователям, планирующим использовать в своих задачах нейропроцессор 1879ВМ6Я для реализации глубоких сверточных нейронных сетей.

 

Глубокие нейронные сети: моделирование и обучение

Глубокие сверточные нейронные сети состоят из многих сверточных слоев, после которых применяются нелинейные пороговые операции  и прореживания. Обучение этих сетей происходит на мощных серверах и может занимать достаточно много времени. Для обучения в данное время существует большое число специализированных программных пакетов. Самые известные из них:  Microsoft®CNTK, Caffe, TensorFlow. Эти пакеты поддерживают различные архитектуры сетей и позволяют экспортировать веса и другие параметры для применения в пользовательских приложениях.

 

Нейропроцессор 1879ВМ6Я

Процессор 1879ВМ6Я разработки ЗАО НТЦ «Модуль» представляет собой высокопроизводительный векторно-матричный микропроцессор с оригинальной архитектурой NeuroMatrix® и сверхбольшими словами команд. Он предназначен для использования в качестве основного или дополнительного процессорного узла в вычислительных системах, реализующих цифровую обработку сигналов и изображений. Пиковая производительность процессора составляет 16 GFLOP/S, при этом он потребляет не более 2,6 Вт.

 

Вычислительный модуль МС121.01

Модуль МС121.01 выполнен на базе специализированного микропроцессора 1879ВМ6Я и представляет собой одноплатную однопроцессорную вычислительную машину.

Модуль предназначен для функционирования в составе комплекса, в частности с ПЭВМ с интерфейсом USB 2.0. Данный модуль может быть использован для решения широкого класса задач, связанных с нейронными сетями, цифровой обработкой сигналов и изображений, а также в качестве инструментального модуля, для отработки программного обеспечения процессора 1879ВМ6Я.

Обмен данными с внешними устройствами модуль может осуществлять по четырем коммуникационным портам  с максимальной скоростью  125 Мбайт/с.

Состав модуля:

  • микропроцессор 1879ВМ6Я;
  • блок синхронной динамической памяти, емкостью 512 Мбайт;
  • ППЗУ размером 128 Кбайт;
  • микросхемы преобразования напряжений питания.

 

DLDT– программный пакет для портирования глубоких нейронных сетей из среды Microsoft®CNTKна платформу МС121.01

DLDT(DeepLearningDeploymentTool) программный пакет, предназначенный для выполнения на хост-компьютере (ПЭВМ под управлением ОС Microsoft®Windows), состоит из следующих основных компонентов:

  • конвертора обученной модели из Microsoft®CNTK в файл конфигурации нейронной сети в МС121.01,
  • загрузчика конфигурации нейронной сети в МС121.01;
  • набора функций прикладного интерфейса (API) для построения пользовательского приложения.

Конвертер преобразует файл с описанием модели нейронной сети и значениями параметров полученных в результате обучения, порождаемый средой Microsoft®CognitiveToolkit (CNTK) в формат файла конфигурации, определяющего топологию нейронной сети в модуле МС121.01.

Загрузчик, используя файл конфигурации, формирует в модуле МС121.01 нейронную сеть идентичную модели, обученной в Microsoft®CNTK.

APIобеспечивает набор функций для взаимодействия с нейронной сетью, реализованной в модуле МС121.01. В частности, можно управлять загрузчиком нейронной сети, осуществлять обмен данными (загружать изображения в нейронную сеть, получать результаты и т.д.). На данный момент эти функции доступны для приложений, работающих под ОС Windows7-10.

Загрузка и обмен данными между хост-компьютером и модулем МС121.01 происходит по интерфейсу USB.

 

DLE– программное обеспечение модуля МС121.01, реализующее глубокую сверточную сеть

DLE (DeepLearningEngine) – программное обеспечение модуля МС121.01, реализующее в реальном масштабе времени глубокую сверточную сеть, топология и параметры которой задаются файлом конфигурации.

На данный момент реализована поддержка архитектура AlexNet. В ближайшее время планируется добавить архитектуру SqueezeNet. В дальнейшем будет обеспечиваться поддержка и других топологий.

 

DLCL- библиотека оптимизированных функций для программирования глубоких нейронных сетей на процессоре 1879ВМ6Я

Для обеспечения эффективной реализации сверточной нейронной сети DLE использует DLCL (DeepLearningComputeLibrary) - библиотеку оптимизированных функций, которые ускоряют работу глубоких нейронных сетей на платформе 1879ВМ6Я. Библиотека реализует примитивы, наиболее часто используемые в глубоких нейронных сетях (сверточные слои с ReLu, пулинг, нормализация и др.). Используя эти примитивы и файл с конфигурацией глубокой нейронной сети, который получен от загрузчика DLDT, DLE при инициализации создаст необходимую реализацию сети. При этом используются различные схемы оптимизации работы с памятью и ядрами сверток для получения максимальной производительности. Это освобождает пользователя от необходимости заниматься оптимизацией размещения различных архитектур на аппаратной платформе.

Пользователь также может создавать собственную топологию глубокой нейронной сети, используя нейросетевые примитивы из состава библиотеки DLCL. Для этого нужно обеспечить файл с топологией нейронной сети, который совместим с загрузчиком пакета DLDT. По этому файлу программа DLE сгенерирует требуемую сеть для работы в реальном времени.

Кроме описанных возможностей, допустимо использовать нейросетевые примитивы из состава библиотеки DLCL в приложениях пользователя для решения произвольных прикладных задач.

 

Пример практического применения nmDCNNK

Для демонстрации возможностей nmDCNNK  была реализована нейронная сеть AlexNet. Обучение производилось на видеокарте NVIDIAGTX1080 Tiи нейросетевого пакета Microsoft®CognitiveToolKit версии 2.0. В качестве базы данных изображений использовалась ImageNet 2015 CLSLOC, которая содержит ~ 1280000 цветных изображений. Все изображения соответствуют одному из 1000 классов. Обучение производилось в 112 эпох, размер минибатча равен 256. Полученная нейросеть была загружена на плату МС121.01 при помощи пакета nmDCNNK и запущена на тестовой базе данных изображений.