Глубинное машинное обучение является вычислительной технологией, позволяющей производить эффективную обработку огромных массивов данных с целью поиска в них определенных образов и шаблонов. Но, для получения оптимальной производительности таких систем требуется, что бы алгоритмы были обработаны правильным компилятором, максимально ориентированным на особенности используемых аппаратных средств. И для получения еще большей эффективности могут быть использованы реконфигурируемые процессоры, допускающие гибкое использование аппаратных средств, что позволяет им адаптироваться к особенностям каждой конкретной задачи.
Недавно группа исследователей из Гонконга объявила о создании реконфигурируемого процессора ReAAP, тесты которого показали его несомненное превосходство по сравнению с другими вычислительными платформами, используемыми для реализации глубинного машинного обучения на базе многоуровневых нейронных сетей.
Более того, ReAAP, по сути, не является только процессором, это целый комплекс, который включает в себя и специализированные аппаратные средства, и интеллектуальный компилятор, который самостоятельно производит оценку и оптимизацию для разнообразных типов глубинного обучения. После того, как компилятор определяет лучшую аппаратную конфигурацию, подходящую для параллельной обработки больших количеств входной информации, он составляет ряд инструкций для самого реконфигурируемого процессора, который выстраивает в необходимом порядке все свои аппаратные ресурсы.
Тестирование системы ReAAP заключалось в сравнении ее производительности и эффективности с тремя вариантами базовых компиляторов, генерирующих код для графических процессоров Nvidia и процессоров ARM. По сравнению с системами на базе GPU Nvidia, система ReAAP продемонстрировала увеличение производительности от 1.9 до 5.7 раз. По сравнению с системами на базе ARM-процессоров, увеличение производительности оказалось чуть более скромным, от 1.6 до 3.3 раза.
К сожалению, система ReAAP очень хорошо подходит для создания нейронных сетей, обрабатывающих очень большие потоки входных данных. Но если требуется нейронная сеть, работающая с незначительным потоком данных, то эффективность работы ReAAP резко снижается до неприемлемого значения.
Однако, описанная выше проблема, по словам создателей системы, будет решена в ближайшее время. Более того, разработчики будут пытаться внедрить в систему ReAAP так называемую технологию квантования данных, которая позволяет значительно уменьшить требования к количеству памяти и вычислительной мощности. Это, в свою очередь, позволит использовать ReAAP даже на платформах устройств из разряда Интернета Вещей, которые, как правило, имеют весьма ограниченное количество ресурсов.