Способ нейроморфной обработки данных и устройство для его осуществления
Владельцы патента RU 2739340:
Федеральное государственное бюджетное учреждение науки Институт физиологии им. И.П. Павлова Российской академии наук (ИФ РАН) (RU)
Изобретение относится к способу и устройству нейроморфной обработки данных. Технический результат заключается в повышении быстродействия конфигурирования ПЛИС. В способе при подаче питания в программируемую логическую интегральную схему (ПЛИС), содержащую блок нейронной сети, реализующей выбор нейронной сети для решения текущей задачи, удовлетворяющей критериям выбора, из конфигурационной памяти загружается конфигурация указанного блока нейронной сети, который на основе анализа входных данных решаемой задачи и в соответствии с вышеопределенными критериями выбирает из конфигурационной памяти соответствующую нейронную сеть и загружает ее в память ПЛИС, обеспечивая динамическую реконфигурацию ПЛИС, загруженная нейронная сеть выполняет обработку данных для решения текущей задачи, и, если решение текущей задачи, получаемое загруженной нейронной сетью, не удовлетворяет предопределенным критериям, то блок нейронной сети выполняет динамическую реконфигурацию ПЛИС, загружая из конфигурационной памяти образ другой нейронной сети, удовлетворяющей текущим условиям работы, обеспечивая полную или частичную динамическую реконфигурацию. 2 н.п. ф-лы, 6 ил.
Предлагаемое техническое решение относится к области информатики и вычислительной техники и может быть использовано в создании компактных высокопроизводительных вычислителей, в том числе в робототехнике.
Существует задача моделирования работы человеческого мозга в реальном времени, а также множество других задач, требующих использования нейроморфной обработки.
Имеются нейроморфные суперкомпьютеры
(https://www.datacenterdynamics.com/news/us-air-force-ibm-unveil-worlds-largest- neuromorphic-digital-synaptic-supercomputer/), например, Spiking Neural Network Architecture (http://apt.cs.manchester.ac.uk/projects/SpiNNaker/,
http://wp.doc.ic.ac.uk/hipeds/wp-content/uploads/sites/78/2016/01/The-SpiNNaker-Project-Seminar-Slides.pdf), который содержит порядка 1 миллиона аппаратных ядер с ограниченным набором команд и микросхем программируемой логики (ПЛИС). Это устройство и принцип его работы выбраны за прототип.
Основными недостатками прототипа являются чрезмерные габариты (прототип занимает большие помещения), высокое энергопотребление и низкая надежность.
Техническая проблема состоит в том, что из-за имплементации множества нейронных сетей в нейроморфный суперкомпьютер требуется большое количество высокоскоростной памяти, логических элементов, аппаратных ядер, специализированных микросхем, элементов питания и других элементов. Как следствие исключительно большого количества элементов, имеющееся количество межсоединений приводит к уменьшению надежности. Также техническая проблема состоит в невозможности использования прототипа в возимой или носимой технике в связи с имеющимися масса- габаритными характеристиками.
Для разрешения указанной проблемы предлагается способ нейроморфной обработки данных, включающий операции нейросетевой обработки, в котором при подаче питания в программируемую логическую интегральную схему (ПЛИС), содержащую блок нейронной сети, реализующей выбор нейронной сети для решения текущей задачи, удовлетворяющей критериям выбора, включающим в себя наибольшую ожидаемую точность решения текущей задачи и наименьшие вычислительные ресурсы, затрачиваемые на решение этой задачи, из конфигурационной памяти загружается конфигурация указанного блока нейронной сети, далее указанный блок нейронной сети на основе анализа входных данных текущей решаемой задачи и в соответствии с выше определенными критериями выбирает из конфигурационной памяти соответствующую нейронную сеть и загружает ее в память ПЛИС, обеспечивая таким образом динамическую реконфигурацию ПЛИС в процессе работы, затем загруженная нейронная сеть выполняет обработку данных для решения текущей задачи, и, в том случае, если решение текущей задачи, получаемое загруженной нейронной сетью, не удовлетворяет предопределенным критериям, то вышеуказанный блок нейронной сети выполняет динамическую реконфигурацию ПЛИС, загружая из конфигурационной памяти образ другой нейронной сети, удовлетворяющей текущим условиям работы, при этом обеспечивая полную динамическую реконфигурацию или частичную динамическую реконфигурацию, обновляя конфигурацию только части логики ПЛИС в том случае, когда основная часть конфигурационного образа вновь загружаемой нейронной сети и предыдущей загруженной нейронной сети совпадают.
В устройство нейроморфной обработки данных, включающее нейросетевые блоки, реализованные на основе процессоров с ограниченным набором команд и программируемых логических интегральных схемах (ПЛИС), отличающееся тем, что в него введены ПЛИС с конфигурацией связей на базе статического оперативного запоминающего устройства, содержащая блок нейронной сети, реализующей выбор нейронной сети для решения текущей задачи, удовлетворяющей критериям выбора, включающим в себя наибольшую ожидаемую точность решения текущей задачи и наименьшие вычислительные ресурсы, затрачиваемые на решение этой задачи, конфигурационная память, высокоскоростной канал передачи данных между ПЛИС и конфигурационной памятью t пропускной способностью 50-100 Тб/с, при этом ПЛИС выполнена с возможностью загрузки, при подаче питания, из конфигурационной памяти по высокоскоростному каналу передачи данных конфигурации указанного блока нейронной сети, реализующей выбор нейронной сети для решения текущей задачи, а указанный блок нейронной сети выполнен с возможностью на основе анализа входных данных текущей решаемой задачи и в соответствии с выше определенными критериями выполнять выбор из конфигурационной памяти соответствующей нейронной сети, и выполнять загрузку ее образа в ПЛИС, а также с возможностью, в том случае, если решение задачи, получаемое загруженной нейронной сетью, не удовлетворяет предопределенным критериям, обеспечивать динамическую реконфигурацию ПЛИС, загружая из конфигурационной памяти образ другой нейронной сети, удовлетворяющей текущим условиям работы, при этом обеспечивая полную динамическую реконфигурацию, или, в случае, когда основная часть конфигурационного образа вновь загружаемой нейронной сети и предыдущей загруженной нейронной сети совпадают, обеспечивая частичную динамическую реконфигурацию, обновляя конфигурацию только части логики ПЛИС.
Как следствие, устройство, в котором реализован предлагаемый способ, занимает пространство порядка 12-36 кубических сантиметров. Из-за уменьшения количества электронных компонентов и, соответственно, количества паяных соединений между ними, увеличивается надежность устройства.
Таким образом, технический результат от использования предлагаемых способа и устройства состоит, во-первых, в увеличении надежности устройства и уменьшении его габаритов и массы на несколько порядков и, во-вторых, в повышении быстродействия конфигурации ПЛИС за счет загрузки в ПЛИС образа нейронной сети, удовлетворяющей предопределенным критериям, с обеспечением частичной динамической реконфигурации ПЛИС.
На фиг. 1 изображена общая архитектура работы предлагаемого способа.
На фиг. 2 изображена структура специализированного высокоскоростного канала передачи данных между ПЛИС и конфигурационной памятью.
На фиг. 3 изображено состояние ПЛИС в начальный момент времени при подаче питания.
На фиг. 4 изображена функциональная схема выбора специальной нейронной сети (СпНС) и загрузки из ПЗУ соответствующей нейронной сети.
На фиг. 5 изображено состояние ПЛИС и ПЗУ после конфигурации ПЛИС выбранной нейронной сетью.
На фиг.6 изображено состояние ПЛИС и ПЗУ после изменения условий работы устройства, выбора и конфигурации ПЛИС выбранной нейронной сетью, отличной от ранее используемой.
В упрощенном виде современные ПЛИС представляют собой набор логических вентилей с программируемыми связями между ними, а также набор периферийных контроллеров для взаимодействия с внешними микросхемами. Программирование связей между логическими вентилями может осуществляться за счет различных принципов (пережигаемые перемычки, управляемые перемычки, энергонезависимая память и др.), но в рамках предлагаемого решения представляет интерес ПЛИС на основе конфигурации логических связей при помощи статического ОЗУ. Данный тип ПЛИС позволяет максимально быстро осуществить конфигурацию ПЛИС при подаче питания.
Принцип реализации предлагаемого способа нейроморфной обработки базируется на введении в конфигурацию ПЛИС в начальный момент времени специальной операции, выполняемой с использованием специальной натренированной нейронной сети. Данная специальная нейронная сеть выполняет следующие задачи:
1) Определение по входным данным наилучшей нейронной сети в конкретный момент времени (или другого алгоритма) для решения этой задачи (фиг. 1) в зависимости от изменения условий работы изделия (внешние, внутренние шумы, динамический диапазон, сюжеты изображений, рабочая температура и т.д.). Основной задачей дополнительно введенной операции является выбор из множества нейронных сетей (или других решений) наилучшей в рамках заданных критериев качества.
2) Оценка качества применяемой нейронной сети в данный момент времени.
В качестве используемых загружаемых нейронных сетей по предлагаемому способу могут быть использованы как свёрточные нейронные сети (СНС) с различным количеством свёрточных слоев, так и другие виды сетей: рекуррентные нейронные сети, комбинированные нейронные сети.
Подход к реализации архитектуры СпНС в рамках заявляемого способа может быть сформулирован следующим образом:
1. Выбор целевой функции. Как пример реализации, это может быть функция, учитывающая вычислительную сложность и точность классификации изображения.
2. Введение множества классификаторов А (множества СНС или других классификаторов), функции выбора следующего классификатора - Ф1 и функции обновления состояния по результатам работы классификатора - Ф2.
3. Аппроксимация функции выбора Ф1 и функции обновления Ф2 для решения задачи. Функции Ф1, Ф2, должны минимизировать затрачиваемые вычислительные ресурсы и максимизировать ожидаемую точность решения. Функция выбора отображает текущее состояние st и данные х (изображение, в рассматриваемом случае) на пространство «ключей» классификаторов
где ε - символ означающий, что вычисления требуется прекратить. Термин «ключ» в данном случае используется, чтобы подчеркнуть, что Ф1 не генерирует алгоритм а, а лишь выбирает его из списка. Классификатор а∈А принимает данные х на вход, а возвращает вектор решения у*: а(х)→у*. Для удобства можем считать, что «ключ» а также содержит информацию о «сложности» алгоритма а. Функция обновления состояния
отображает текущее состояние и результат работы выбранного классификатора на пространство состояний и новое обобщенное решение с учетом предыдущих ответов классификаторов. Это может быть реализовано в рамках заявляемого способа в упрощенном виде на основе наивного Байесовского классификатора и минимизации ожидаемой энтропии.
В более общем случае для аппроксимации оптимальных функций выбора Ф1(st-1) и функции обновления состояния предлагается использовать СпНС - управляющую рекуррентную нейронную сеть-агент, которая способна взаимодействовать с исходными данными (с изображением) опосредованно через обученные нейронные сети-классификаторы. СпНС может быть обучена в парадигме обучения с подкреплением, когда классификаторы являются средой для агента.
Целевой функцией при обучении нейронной сети-агента является максимальная точность распознавания изображений обучающей выборки и минимальное количество затраченных ресурсов, таким образом вознаграждение R при обучении складывается из точности полученного ответа и времени на него потраченного
где r=1, если объект распознан верно и 0 в противном случае, Т(Ai) - время выполнения классификатора Ai в физических единицах, λ>0 - гиперпараметр, который описывает насколько долгим может быть процесс распознавания в среднем. При λ=0, вычислительные ресурсы не ограничены, т.к. «стоимость вычислений» не сказывается на вознаграждении. Поскольку T(Ai)>0 для любого i, то вознаграждение, полученное в отдаленном будущем, уменьшается без использования дополнительных гиперпараметров. Если «ответом» является вектор вероятностей, то r соответствует кроссэнтропия эталонного и полученного распределения.
В качестве управляющей нейронной сети агента можно использовать сеть на основе долгой-краткосрочной памяти (LSTM) (Hochreiter S., Schmidhuber J. Long short-term memory // Neural Computation. V.9. №8. 1997. PP. 1735-1780) или аналогов.
Для сокращения затрат вычислительных ресурсов целесообразно также использовать «механизм внимания», и, таким образом, пространство действий при обучении агента, включает пространство ключей классификаторов где ε - символ означающий, что вычисления требуется прекратить, а также управление классифицируемым окном на изображении
где Ω - это область определения изображения. В результате агенту нужно выучить стратегию
где θ - настраиваемые в процессе обучения веса нейронной сети, a st - состояние системы, которое включает историю всех предыдущих действий и ответов классификаторов.
При реализации предлагаемого способа специальная нейронная сеть для выбора нейронной сети представляет собой специализированный нейросетевой блок, выполняющий задачи выбора наилучшей нейронной сети и оценки качества применяемой нейронной сети в данный момент времени.
Время загрузки нейронной сети после выбора наилучшего технического решения нейросетевым блоком будет ограничиваться пропускной способностью канала между ПЛИС и конфигурационной памятью ПЗУ. Например, при образе размером порядка 70 Мб (что соответствует многослойной сверточной нейронной сети для обработки видеоинформации) при пропускной способности канала 100 Тб/с время полной реконфигурации ПЛИС составит порядка 0,7 мкс. В случае использования частичной динамической реконфигурации и при уменьшении сложности используемого технического решения время реконфигурации ПЛИС может быть уменьшено до единиц наносекунд.
Для обеспечения требуемой пропускной способности предлагается использовать дифференциальные линии передачи данных (фиг. 2). Современный предел скорости передачи данных по 1-й дифференциальной паре в ПЛИС составляет порядка 100 Гб/с (Intel Agilex FPGA Advanced Information Brief: (Device Overview).02.07.2019, https://www.intel. com/content/dam/www/programmable/us/en/pdfs/literature/hb/agilex/ag-overview.pdf). Таким образом, для обеспечения требуемой пропускной способности предлагается ввести в конфигурационный канал ПЛИС порядка 1000 дифференциальных пар при использовании соответственно порядка 2000 выводов ПЛИС и 2000 выводов ПЗУ.
Микросхемы ПЗУ, имеющее размеры порядка 216 квадратных миллиметров (В17А FF_512Gb_iTb_2Tb_4Tb_8Tb_Async_Sync_NAND_Datasheet.pdf - Rev. L 03/29/19 EN, https://www.micron.com/products/nand-flash/3d-nand/part-catalog/mt29f8t08ewhafj6-3r), имеют объем памяти 8 Тб, что позволяет хранить 114284 нейронных сети (при размере одного конфигурационного образа 70 Мб), предназначенных для обработки изображений.
Предлагаемый способ нейроморфной обработки может быть реализован с помощью устройства, которое содержит ПЛИС, внутри которой реализован блок специальной нейронной сети (СпНС), блок ПЗУ, внутри которого находятся сверточные нейронные сети СНС_1, СНС_2…CHC_N.
Устройство работает следующим образом. В начальный момент времени (фиг. 3) при подаче питания в ПЛИС загружается конфигурация блока СпНС. Данная СпНС занимает относительно мало места внутри кристалла ПЛИС. Остальная часть ПЛИС не используется и отключена от статического потребления. Соответственно энергопотребление ПЛИС небольшое в данный момент.
Далее СпНС на основе анализа входных данных выбирает лучшую нейронную сеть и загружает его в ПЛИС (например, сверточная нейронная сеть - СНС_1) из ПЗУ. Таким образом происходит динамическая реконфигурация ПЛИС в процессе работы (фиг. 4).
Загруженная СНС_1 (фиг. 5) осуществляет обработку. При этом СНС_1 занимает часть свободного места внутри ПЛИС. В данном случае энергопотребление на порядки выше по сравнению с изначальной конфигурацией.
Далее, если решение, получаемое СНС_1, не удовлетворяет каким-либо критериям, то происходит сверхбыстрая динамическая реконфигурация ПЛИС новым образом из конфигурационной памяти (фиг. 6). В данном случае в качестве нового решения выступает сверточная нейронная сеть - СНС_2. СпНС могла выбрать в зависимости от условий работы устройства в качестве наилучшего решения любую нейронную сеть, находящуюся в ПЗУ от СНС_1 до CHC_N.
Каждый раз при изменении условий работы устройства СпНС опять выбирает из ПЗУ наилучшую нейронную сеть в данный момент времени и загружает соответствующую конфигурацию из ПЗУ в ПЛИС.
В представленном примере реализации СНС_ 2 имеет ту же архитектуру, что и СНС_1, но отличается добавлением дополнительного сверточного слоя. Таким образом, при реконфигурации СНС_2 целесообразно использовать частичную динамическую реконфигурацию, для увеличения скорости конфигурации ПЛИС с использованием образа СНС_2. Частичная динамическая реконфигурация позволяет обновить конфигурацию только небольшой части логики и не затрагивает основную часть конфигурационного образа.
Помимо использования нейронных сетей, в рамках заявляемого способа, в качестве еще одного варианта реализации, СпНС может выбирать и загружать в ПЛИС также другие математические блоки различной архитектуры.
Еще одним вариантом реализации заявляемого способа является возможность СпНС выбирать не одну нейронную сеть (или другое алгоритмическое решение) для загрузки в ПЛИС, а возможность СпНС выбирать целую последовательность загрузки оптимальных решений в зависимости от изменения условий работы.
Заявителями был разработан экспериментальный образец устройства для реализации заявляемого способа на базе системы-на-кристалле семейства Cyclone V с 110000 программируемых логических элементов и конфигурационной памятью Micron семейства Fortis Flash размером 12x18 мм и объемом 512 Гб. Эксперименты проводились с четырьмя различными образами нейронных сетей, загруженными в ПЗУ. Экспериментальный образец имел ограничения по пропускной способности памяти и, как следствие, скорости динамической (частичной динамической) реконфигурации. Проведенные экспериментальные исследования подтвердили работоспособность заявляемых технических решений.
По сравнению с прототипом использование специальных нейронных сетей для выбора нейронных сетей и переход на динамически реконфигурируемые нейронные сети позволяет создавать компактные универсальные нейроморфные устройства обработки, приближенные по своим возможностям к человеческому мозгу, способные к выполнению широкого класса задач с нечетким описанием.
1. Способ нейроморфной обработки данных, включающий операции нейросетевой обработки, отличающийся тем, что при подаче питания в программируемую логическую интегральную схему (ПЛИС), содержащую блок нейронной сети, реализующей выбор нейронной сети для решения текущей задачи, удовлетворяющей критериям выбора, включающим в себя наибольшую ожидаемую точность решения текущей задачи и наименьшие вычислительные ресурсы, затрачиваемые на решение этой задачи, из конфигурационной памяти загружается конфигурация указанного блока нейронной сети, далее указанный блок нейронной сети на основе анализа входных данных текущей решаемой задачи и в соответствии с вышеопределенными критериями выбирает из конфигурационной памяти соответствующую нейронную сеть и загружает ее в память ПЛИС, обеспечивая таким образом динамическую реконфигурацию ПЛИС в процессе работы, затем загруженная нейронная сеть выполняет обработку данных для решения текущей задачи, и в том случае, если решение текущей задачи, получаемое загруженной нейронной сетью, не удовлетворяет предопределенным критериям, то вышеуказанный блок нейронной сети выполняет динамическую реконфигурацию ПЛИС, загружая из конфигурационной памяти образ другой нейронной сети, удовлетворяющей текущим условиям работы, при этом обеспечивая полную динамическую реконфигурацию или частичную динамическую реконфигурацию, обновляя конфигурацию только части логики ПЛИС, в том случае, когда основная часть конфигурационного образа вновь загружаемой нейронной сети и предыдущей загруженной нейронной сети совпадают.
2. Устройство нейроморфной обработки данных, включающее нейросетевые блоки, реализованные на основе процессоров с ограниченным набором команд и программируемых логических интегральных схемах (ПЛИС), отличающееся тем, что устройство содержит ПЛИС с конфигурацией связей на базе статического оперативного запоминающего устройства, содержащую блок нейронной сети, реализующей выбор нейронной сети для решения текущей задачи, удовлетворяющей критериям выбора, включающим в себя наибольшую ожидаемую точность решения текущей задачи и наименьшие вычислительные ресурсы, затрачиваемые на решение этой задачи, конфигурационную память, высокоскоростной канал передачи данных между ПЛИС и конфигурационной памятью с пропускной способностью 50-100 Тб/с, при этом ПЛИС выполнена с возможностью загрузки, при подаче питания, из конфигурационной памяти по высокоскоростному каналу передачи данных конфигурации указанного блока нейронной сети, реализующей выбор нейронной сети для решения текущей задачи, а указанный блок нейронной сети выполнен с возможностью на основе анализа входных данных текущей решаемой задачи и в соответствии с вышеопределенными критериями выполнять выбор из конфигурационной памяти соответствующей нейронной сети, и выполнять загрузку ее образа в ПЛИС, а также с возможностью, в том случае, если решение задачи, получаемое загруженной нейронной сетью, не удовлетворяет предопределенным критериям, обеспечивать динамическую реконфигурацию ПЛИС, загружая из конфигурационной памяти образ другой нейронной сети, удовлетворяющей текущим условиям работы, при этом обеспечивая полную динамическую реконфигурацию, или, в случае, когда основная часть конфигурационного образа вновь загружаемой нейронной сети и предыдущей загруженной нейронной сети совпадают, обеспечивая частичную динамическую реконфигурацию, обновляя конфигурацию только части логики ПЛИС.