Виталий ГРИБАЧЕВ
Элементная база
аппаратных реализаций нейронных сетей
Несмотря на то, что нейронные сети как научно-технический объект существуют более полувека, основные способы их практической реализации ограничиваются областью программного моделирования в различных средах визуального (и не визуального) проектирования. Программные реализации преобладают над аппаратными. Кроме того, аппаратные реализации вследствие своей относительной дороговизны до сих пор не имеют повсеместного распространения. Однако их удельный вес в общем количестве мировых технологических разработок неуклонно растет. Впереди планеты всей в данном направлении, как всегда, шагает Япония, где разработки на основе нейросетевых технологий успешно внедряются во множестве образцов бытовой техники, таких как фотоаппараты, микроволновые печи, видеокамеры и т. д. Не отстают и другие развитые страны.
Нейросетевые аппаратные решения внедряют в свои продукты такие известные фирмы, как Siemens, Intel, Phillips Research (Нидерланды), ЗМ Laboratories и многие другие. При этом разработано на удивление много разнообразных аппаратных нейросетевых архитектур. Чтобы не запутаться в этом многообразии, наш небольшой обзор нейросетевых реализаций, как полагается, начнем с классификации, которая представлена на рис. 1.
Рассмотрим отдельные варианты реализации подробнее.
Каскадируемая архитектура
Примером каскадируемой архитектуры может служить нейрочип NNP фирмы Areurate Automation Corp. Он представляет собой несколько 16-разрядных процессоров, снабженных памятью для хранения весовых коэффициентов. Процессоры связаны локальной внутренней шиной и имеют всего 9 команд. В комплект поставки входит библиотека подпрограмм с реализованными нейросетевыми алгоритмами. Чип поставляется на платах под шины ISA и VME. Производительность составляет от 140 MIPS до 1,4 GIPS, в зависимости от количества нейрочипов на плате. Их количество может быть от одного до десяти.
RBF-Архитектура
Подробнее c принципами организации RBF-сетей можно ознакомиться в статье [1], здесь же приведем примеры конкретного аппаратного обеспечения этого типа.
Например, это чип NilOOO (разработка фирмы Intel совместно с Nestor), в котором содержится около 3 млн транзисторов, имитирующих 1O24 нейрона, быстродействие 33 МГц, 17 GIPS. Выпускается на платах в формате ISA, VME. Кроме того, выпускались ныне уже снятые с производства чипы ZICS18T-ZICS24T, которые также представляли собой нейронные сети на RBF-нейронах.
Систолические нейропроцессоры
Принцип действия систолических процессоров заключается в использовании процессорной матрицы из набора простых по структуре обрабатывающих элементов, через которую идет непрерывный поток данных, изменяемых каждым элементом. Сеть работает циклически и в каждом последующем цикле каждый обрабатывающий элемент
входной вектор
матрица
обрабатывающий элемент 1
обрабатывающий элемент 2
обрабатывающий элемент п
функция
активации
(обычно
задана
табличным
способом)
модуль
постобра-
ботки
выходной вектор
Рис. 2. Структура систолического процессора SAND
считывает и обрабатывает новую порцию данных, независимо от работы остальных обрабатывающих элементов. За счет этого достигается высокая степень распараллеливания процессов обработки информации и в результате высокая скорость работы всей сети в целом.
Вследствие значительного упрощения внутренней структуры обрабатывающих элементов, систолическая матрица должна быть окружена большим количеством элементов, реализующих дополнительную функциональность. Например, функция активации должна быть реализована в виде отдельного внешнего блока.
На рис. 2 показана структурная схема систолического процессора SAND (Simple Applicable Neural Device). Чип разработан Исследовательским центром в Карлсруе и Институтом микроэлектроники Штутгарта.
В состав периферийных устройств входит также модуль пост-обработки и модуль памяти весов. Обрабатывающие элементы выполняют операции перемножения входных сигналов и их суммации. Все остальные операции реализуются внешними логическими блоками. В некоторых случаях в качестве внешнего блока может использоваться блок вычисления минимума или максимума выходного значения.
Сигнальные процессоры
Сравнительно низкая стоимость разработки, обширная элементная база с обилием отладочных средств и вспомогательного программного обеспечения, экономичное энергопотребление и небольшое тепловыделение,
а также высокая производительность сделали сигнальные процессоры фирм Texas Instruments и Analog Devices наиболее популярными объектами для построения аппаратных реализаций нейронных сетей. Моделирование нейронных сетей на сигнальных процессорах осуществляется только программным способом, что позволяет в случае необходимости легко модифицировать используемый алгоритм и структуру сети.
Например, использование разработчиками DSP серии ADSP2116x компании Analog Devices оправдывается рядом удачных конструктивных решений, заложенных в архитектуру этих чипов. ADSP2116x используют архитектуру SHARC (Super Harvard ARChitecture), которая предполагает разделение памяти и шин команд и данных, при этом по шине команд могут передаваться как команды, так и данные. Процессор имеет два генератора
адреса данных, что позволяет одновременно генерировать два адреса для выборки двух операндов.
Объем внутренней памяти размером 1 Мбит позволяет реализовать достаточно крупные нейронные сети. Система команд ADSP2116x содержит арифметическую команду умножения с накоплением C=AxB+C, что достаточно удобно для построения циклов вычисления входных значений нейронов. Микропроцессор использует циклические буферы, при обращении к которым происходит автоматическая модификация адресов, что позволяет упростить циклы и увеличить скорость работы сети. Кроме того, ADSP2116x использует два вычислительных блока (обрабатывающих элемента, PEx и PEy) вместо одного.
В стандартном режиме используется только PEx. В режиме SIMD (Single Instruction, Multiple Data) процессор направляет одну
JTAG TEST AND EMULATION
GPIO
FLAGS
SDRAM
CONTROLLER
Рис. 3. Архитектура DSP ADSP2116x
и ту же инструкцию в оба процессорных элемента, загружает два отдельных набора данных из памяти в каждый PE, производит параллельные вычисления в обоих PE и синхронизирует результаты в памяти. Таким образом, использование двух параллельно работающих процессорных элементов позволяет в два раза увеличить скорость обработки данных, что весьма актуально при моделировании нейронных сетей, состоящих из множества однотипных элементов.
Нейросигнальные процессоры
В основе нейросигнальных процессоров лежит то же самое ядро, что и для других распространенных процессоров DSP. Отличие заключается в добавочных архитектурных решениях, оптимизирующих данные процессоры для разработок на их базе нейронных сетей. В качестве примера приведем наш отечественный нейропроцессор NEUROMATRIX NM6403 фирмы НТЦ «Модуль».
Данный процессор состоит из основного 32-разрядного RISC-ядра и добавочного 64-разрядного векторного сопроцессора. NM6403 имеет стандартный интерфейс ввода-вывода, совместимый с портами TMS320C4, может работать с числами переменной разрядности от 1 до 64 бит, его адресное пространство достигает 16 Гбайт. Кроме того, он имеет поддержку векторно-матричных и матричноматричных операций, а также поддержку двух типов функций насыщения на кристалле. Его производительность по скалярным операциям составляет 120 MIPS (32-разрядные операнды) и от 40 до 11 500 ММАС (миллионов умножений с накоплением в секунду). Желающие могут более подробно ознакомиться с документацией и всеми спецификациями этого процессора на сайте разработчика [3]. Здесь в заключение также отметим, что хотя процессор NM6403 за счет оригинальной архитектуры значительно лучше справляется с матричными операциями, чем другие DSP, однако вся тяжесть программной реализации выбранной нейронной сети по-прежнему лежит на разработчике.
ПЛИС как элементная база нейронных сетей
В последние годы резко возрос интерес к использованию ПЛИС в качестве элементной базы нейровычислителей. Этому способствовало появление на рынке высокочастотных ПЛИС и продолжающаяся тенденция к снижению их цены, а, следовательно, и конечной стоимости разработок. Напряжение питания ПЛИС с каждым новым поколением этих микросхем постоянно уменьшается, что позволяет снижать энергопотребление при увеличении быстродействия. Современные ПЛИС изготавливаются такими известными производителями, как Altera, Atmel, Xilinx и многими другими.
Технологические особенности FPGA (ПЛИС) делают их удобным объектом для использования в качестве элементной базы аппаратной реализации нейронных сетей. К ним относятся необходимость восстановления структуры устройства с помощью внутреннего статического ОЗУ, что позволяет реализовать алгоритмы обучения нейронной сети. При разработке проектов на ПЛИС используется принцип однотактной синхронизации, для реализации которого в ПЛИС синхросигналы распространяются по быстродействующей древовидной сети, обеспечивающей почти одновременный приход фронта синхроимпульса на синхровходы всех внутренних триггеров. Синхросигнал может вырабатываться и внутри самой ПЛИС.
Данное свойство позволяет облегчить задачу построения многослойных конфигураций нейронных сетей. Современные ПЛИС практически невозможно программировать «вручную». Для разработки проектов используются специальные интегрированные среды программирования и языки параллельного программирования (VHDL) [4]. Это позволяет снять зависимость разработок нейронных сетей на ПЛИС от конструктивных особенностей конкретной ПЛИС, улучшить переносимость, а также создавать библиотеки стандартных нейросетевых модулей, что выгодно отличает нейросетевые проекты на ПЛИС от аналогичных разработок на DSP.
Наконец, еще одной немаловажной особенностью ПЛИС, делающей привлекательными разработки нейронных сетей на этой элементной базе, является то обстоятельство, что любая ПЛИС состоит из множества однотипных элементов, что повышает надежность работы микросхемы и упрощает проектирование нейронной сети.
Вместе с тем, для проектирования нейронных сетей на ПЛИС характерны достаточно высокие аппаратные затраты. Если учесть, что для реализации десятка параллельно работающих нейронов требуется задействовать несколько тысяч вентилей, и при этом каждый нейрон требует как минимум одного умножителя, можно сделать вывод, что существующие сегодня на рынке ПЛИС с интеграцией в несколько миллионов вентилей наиболее пригодны для реализации малых и средних по величине нейронных сетей порядка нескольких тысяч нейронов и не пригодны для создания больших и сверхбольших нейронных сетей, содержащих сотни тысяч или миллионы нейронов.
Примером реализации нейронной сети на ПЛИС может служить нейромодуль цифровой обработки сигналов XDSP-680-CP фирмы Scan Engineering Telecom.
Процессоры общего назначения
Подавляющее большинство нейросете-вых реализаций в настоящее время осуществляется на базе процессоров общего на-
значения. Этому способствует широкое распространение персональных компьютеров и впечатляющий рост их производительности. На данный момент создана масса программ и программных библиотек, эмулирующих нейронные сети различных конфигураций. Однако данные нейросетевые реализации осуществляются исключительно на программном уровне, поэтому в данном обзоре рассматриваться не будут.
Аналоговая архитектура
Нейроны в аналоговых СБИС представляют собой пороговые усилители с сигмовидной передаточной функцией. Усиление передаточной функции определяет чувствительность нейрона и в предельном случае переводит нейрон из аналогового состояния в состояние, аналогичное цифровому вентилю. Так, в аналоговой СБИС ETANN 80170NX фирмы INTEL содержится 64 нейрона с 64 входами соответственно и 16 нейронных слоев.
Скорость прохождения сигнала зависит от частотных характеристик усилителей и в данной микросхеме составляет порядка 1,5 мкс. Обучение производится двухэтапным способом. Первичный грубый подбор весовых коэффициентов производится в эмулирующей среде (Intel Neural Network Training System), точная настройка весов осуществляется с использованием реально работающей СБИС аппаратным способом (так называемый chip-in-loop training). Таким образом, основные преимущества аналоговых СБИС заключаются в высоком быстродействии, которое ограничивается только частотными характеристиками усилителей (АЧХ), а недостатки заключаются в усложненном алгоритме обучения и необходимости обеспечивать СБИС постоянный температурный режим (перепады температуры менее 1 °С при 18 °С), а также использовать стабилизированные источники питания, так как СБИС чувствительна к внешним условиям. Указанные недостатки серьезно ограничивают распространение аналоговых СБИС в области моделирования нейронных сетей.
Гибридная архитектура
Как следует из названия, такая архитектура сочетает в себе цифровой и аналоговый подходы к аппаратному моделированию нейронных сетей. Например, чип ANNA (AT&T) имеет цифровую внутреннюю архитектуру и аналоговый способ хранения весовых коэффициентов с использованием элементов динамической конденсаторной памяти. Чип содержит до 256 нейронов и 4096 весовых коэффициентов. Производительность достигает 2,1 GIPS.
Достоинства и недостатки подобных архитектур связаны с особенностями конкретных аппаратных реализаций.
Выбор элементной базы для аппаратной реализации нейронных сетей
Несмотря на то, что в настоящее время большинство нейросетевых приложений выпускаются исключительно в программном исполнении с использованием коммерческих программных эмуляторов нейронных сетей, существует достаточно широкая рыночная ниша для нейрочипов или нейросетевых аппаратно-программных комплексов.
Наиболее весомые аргументы в пользу применения специализированного аппаратного обеспечения возникают в следующих случаях:
• если сложность решаемой задачи достаточно велика, и исключительно программные нейросетевые реализации не обеспечивают должную скорость выполнения или производительность (например, эксперименты в области физики высоких энергий);
• если стоимость проектирования специализированной аппаратной нейросетевой системы на готовых нейросетевых модулях значительно ниже, чем ее программного аналога;
• если требуется обеспечить решение задачи, алгоритм которой заведомо допускает массовое распараллеливание, и система будет эксплуатироваться в полевых условиях, что предъявляет повышенные требования к ее надежности (например, система сбора и обработки данных погодных датчиков на аэродроме);
• если имеются существенные ограничения на габариты системы или ее вес;
• если предъявляются повышенные требования к безопасности системы, поскольку ап-
паратные решения больше защищены от несанкционированного доступа и обеспечивают большую защиту авторских прав на схемотехнические и архитектурные решения. Исходя из опыта практической деятельности современного инженера-электронщика следует заметить, что при проектировании аппаратной реализации нейросистем учитываются, прежде всего, такие характеристики, как масштабируемость, стоимость разработки, совместимость с предыдущими и будущими версиями.
Применительно к рассмотренным категориям чипов это означает, что в случае, когда для разработчика критичны сроки разработки и стоимость, следует обратить внимание на ПЛИС, сигнальные процессоры и процессоры для каскадируемых архитектур. ПЛИС способны неплохо масштабироваться и достаточно дешевы, но затраты аппаратных ресурсов ПЛИС при проектировании достаточно велики и быстро растут с увеличением сложности сети. Сигнальные процессоры масштабируются хуже, чем ПЛИС, но разработка нейронных сетей на них благодаря развитой технической поддержке со стороны производителей достаточно проста. При этом привязка к аппаратной части Б8Р не позволит с легкостью переносить нейронную сеть с одной элементной базы на другую. Кроме того, сигнальные процессоры обладают не слишком хорошей масштабируемостью, что затрудняет построение больших многопроцессорных систем. Систолические процессоры и процессоры с каскадной архитектурой обладают на порядок лучшей масштабируемостью, чем сигнальные, однако для них требуется достаточно много периферийных модулей. С увеличением числа систолических
процессоров растут задержки в цепях прохождения сигнала. Для нейросигнальных процессоров в целом характерно все то же самое, что справедливо для сигнальных процессоров. Отличия заключаются в более высокой производительности за счет наличия встроенного векторного сопроцессора и более узкой специализации, в большинстве случаев ориентированной на конкретный вид нейронной сети. Таким образом, общепринятых рекомендаций по выбору определенной элементной базы в настоящее время не существует. Все это в значительной степени определяется личным опытом разработчика, его предпочтениями, а также доступностью на данной территории тех или иных электронных компонентов, и, конечно, в немалой степени зависит от требований самого проекта. ■
Литература
1. Грибачев В. П. Настоящее и будущее нейронных сетей // Компоненты и технологии. 2006. № 5.
2. Шахнов В., Власов А., Кузнецов А. Нейрокомпьютеры — архитектура и реализация.
Ы tp:/ /chipnews.g aw.r и/Ы ml.cgi/arhiv/00_07/ stat_36.h tm — описание, таблица сравнительных характеристик элементной базы современных нейрочипов.
3. Ы tp:/ М ww .module.r u/ruproducts/proc/ nm6403.sht ml#descr —
сайт фирмы НТЦ «Модуль».
4. Сергиенко А. М. УНБЬ для проектирования вычислительных устройств. Киев: ЧП «Корнейчук», ООО «ТИД ДС». 2003.
5. Гриняев С. Нейронные процессоры 1Пе1 // Компьютерра. 2001. № 38. Ы tp:/ /pgpu.penza.c om.r и/ _sites/intel/MATVEYEV_DM/materials/ article_neuroprointel.ht т1