История развития вычислительных систем с массовым параллелизмом насчитывает уже не один десяток лет. Пожалуй, это одна из немногих областей науки и техники, где отечественные разработки находятся на уровне мировых достижений, а в отдельных случаях и превосходят их. Не стали исключением и супервычислители, используемые для построения нейрокомпьютеров.
Нейронная сеть — это сеть с конечным числом слоев из однотипных элементов — аналогов нейронов с различными типами связи между слоями. Элементарным строительным блоком нейронной сети является нейрон, осуществляющий взвешенное суммирование поступающих на его вход сигналов. Результат такого суммирования образует промежуточный выходной сигнал, который преобразуется активационной функцией в выходной сигнал нейрона. Среди основных преимуществ нейронной сети: инвариантность методов ее синтеза к размерности пространства признаков и размерам нейронной сети, адекватность перспективным технологиям, отказоустойчивость в смысле монотонного, а не катастрофического изменения качества решения задачи в зависимости от числа вышедших из строя элементов [1-3].
Нейрокомпьютер — это вычислительная система с параллельными потоками одинаковых команд и множественным потоком данных. Для большей ясности будем считать, что нейросетевые системы, реализованные программно на типовых ПК, относятся к нейроэмуляторам, на программном уровне реализующим типовые нейрооперации (взвешенное суммирование и нелинейное преобразование). Нейросетевые системы, реализованные в виде плат расширения стандартных вычислительных систем, будем называть нейроускорителями (взвешенное суммирование, как правило, реализуется аппаратно, например, на основе трансверсальных фильтров, а нелинейные преобразования — программно). Системы, реализованные в виде функционально законченных специализированных вычислительных устройств, следует относить к нейрокомпьютерам. Нейрокомпьютеры являются вычислительными системами с высоким параллелизмом, реализуемым на основе специализированной элементной базы, ориентированной на выполнение нейросетевых операций в нейросетевом логическом базисе.
Эффективное применение нейрокомпьютеров характерно, в частности, для случаев, требующих резкого сокращения времени обработки при решении пространственных задач повышенной размерности, которые во множестве можно найти практически в любой области: обработка изображений, выделение и слежение за движущимися объектами, задачи распознавания и классификации.
DSP и ПЛИС
Элементной базой нейроускорителей являются: заказные кристаллы (ASIC), встраиваемые микроконтроллеры, процессоры общего назначения, программируемая логика (ПЛИС), транспьютеры, цифровые сигнальные процессоры (DSP) и нейрочипы [1, 2, 4]. Благодаря высокой производительности и универсальности при реализации нейровычислителей, функционирующих в реальном масштабе времени, наибольшее применение нашли ПЛИС, DSP и нейрочипы.
Обладая мощной вычислительной структурой, DSP позволяют реализовать различные алгоритмы обработки информационных потоков. Сравнительно невысокая цена, а также развитые средства разработки ПО позволяют применять их при построении вычислительных систем с массовым параллелизмом. С обзором подобных систем можно познакомиться на сайте Центра дистанционного образования в области микроэлектронных технологий и микропроцессорных систем (cdl.iu4.bmstu.ru).
Повсеместный переход систем управления на цифровые стандарты, привел к необходимости быстро обрабатывать большие объемы информации (фильтрация сигналов, распаковка сжатых аудио- и видеоданных, маршрутизация информационных потоков и т.п.). Для выполнения этих работ предложены системы, построенные на базе DSP и ПЛИС. Программируемая логика способна работать на более высоких частотах, но поскольку управление реализовано аппаратно, то изменение алгоритмов работы требует перепрограммирования. Низкая тактовая частота DSP в настоящее время ограничивает максимальную частоту обрабатываемого аналогового сигнала до уровня в 10-20 МГц, но программное управление позволяет достаточно легко изменять не только режимы обработки, но и функции, выполняемые DSP. Помимо обработки и фильтрации данных DSP могут осуществлять маршрутизацию цифровых потоков, выработку управляющих сигналов и даже формирование сигналов системных шин ISA, PCI и др. [5-7].
Оценивать быстродействие устройств на основе DSP и ПЛИС принято по времени выполнения типовых операций цифровой обработки сигналов (фильтр Собеля, быстрое преобразование Фурье, преобразование Уолша-Адамара и т.д.). Для оценки производительности нейровычислителей используют другие показатели.
- CUPS (connections update per second) — число измененных значений весов в секунду; оценивает скорость обучения.
- CPS (connections per second) — число соединений (т.е. умножений с накоплением) в секунду; оценивает производительность.
- CPSPW = CPS/Nw, где Nw — число синапсов в нейроне.
- CPPS = CPSxBwxBs, где Bw, Bs — разрядность весов и синапсов соответственно.
- MMAC — млн. соединений в секунду.
Особенность использования DSP и ПЛИС в качестве элементной базы нейровычислителей определяется тем, что ориентация на выполнение нейросетевых операций обуславливает с одной стороны повышение скоростей обмена между памятью и параллельными арифметическими устройствами, а с другой уменьшение времени весового суммирования (умножения и накопления) за счет применения фиксированного набора команд типа регистр-регистр.
DSP-процессоры вот уже на протяжении нескольких десятилетий являются элементной базой для построения как нейроускорителей, так и контура логики общесистемного управления нейрокомпьютеров. DSP каких семейств и производителей могут использоваться для реализации нейроускорителей? Практически любые — все зависит лишь от фантазии разработчиков. Проанализируем изделия трех ведущих производителей, занимающих доминирующее положение на этом рынке, с позиций их применимости для построения нейровычислительных систем.
Выбор того или иного процессора — многокритериальная задача. Следует, однако, отметить предпочтительность процессоров Analog Devices [7] для приложений, требующих выполнения больших объемов математических вычислений (цифровая фильтрация сигнала, вычисление корреляционных функций и т.п.), поскольку их производительность на подобных задачах выше, чем у процессоров компаний Motorola и Texas Instruments. В то же время для задач, требующих выполнения интенсивного обмена с внешними устройствами (многопроцессорные системы, различного рода контроллеры), предпочтительнее использовать процессоры TI [8], обладающие высокоскоростными интерфейсными подсистемами. Motorola лидирует по объему производства сигнальных процессоров, большую часть которых составляют дешевые и достаточно производительные 16-ти и 24-разрядные микропроцессоры с фиксированной точкой. Расширенные коммуникационные возможности, наличие достаточной емкости памяти на кристалле для данных и программы, возможность защиты программы от несанкционированного доступа, поддержка режима энергосбережения делают эти процессоры привлекательными для использования не только в качестве специализированных вычислителей, но и в качестве контроллеров, в бытовых электронных приборах, в системах адаптивной фильтрации и т.д.
Большая производительность, требуемая при обработке сигналов в реальном времени, побудила TI и Analog Devices выпустить транспьютероподобные семейства микропроцессоров TMS320C4x и ADSP2106x, ориентированные на использование в многопроцессорных системах. На этом фоне весьма достойно среди DSP c фиксированной точкой выглядит первый отечественный сигнальный («нейросигнальный») процессор Neuro Matrix производства НТЦ «Модуль» [6]. При тактовой частоте 50 Мгц он практически не уступает по производительности другим изделиям, а на некоторых задачах даже превосходит их (таблица 1).
По данным Analog Devices [7] большинство нейросетевых реализаций на базе DSP схожи в использовании команд, но различаются набором данных. В многоканальных приложениях или в тех случаях, когда данные располагаются в виде прямоугольной матрицы, производительность может быть удвоена путем добавления второго набора математических модулей. Процессоры, содержащие второй вычислительный модуль, управляются так же, как и небольшие архитектуры SIMD. Процессоры с новой архитектурой TigerSHARC, которая позволяет использовать единственную команду для обработки данных в обоих вычислительных модулях, можно уже назвать «нейрочипом». Более того, второй модуль может функционировать независимо от первого — для этой модели используются частично-множественные пути к данным. Для правильного выполнения команды в ней должно быть выделено дополнительное место, что приводит к очень длинным командным словам (VLIW).
DSP-процессоры Texas Instruments [8] разделяются на два класса: это процессоры для обработки чисел с фиксированной точкой и процессоры для обработки чисел с плавающей точкой. Первый представлен тремя семействами процессоров, базовыми моделями которых являются соответственно TMS320C10, TMS320C20 и TMS320C50. Второй включает процессоры TMS320C30, TMS320C40, TMS320C80, которые поддерживают операции с плавающей точкой и представляют собой многопроцессорную систему, выполненную на одном кристалле. Семейство TMS320C6x включает как процессоры с фиксированной, так и с плавающей точкой.
Все больше завоевывает популярность, в том числе и для нейроприложений, семейство процессоров TMS320C6x обладает рекордной производительностью в 1600 MIPS. Благодаря этому становится возможным принципиально новый взгляд на существующее оборудование связи. Высокая производительность обеспечивается благодаря новой архитектуре VelociTI с очень длинным командным словом. Эта архитектура образована множеством параллельно работающих процессоров, которые позволяют выполнять несколько инструкций за один командный цикл (рис. 1). Именно такой параллелизм обеспечивает высокую производительность.
Отдельно следует рассмотреть возможность создания параллельных вычислителей (в том числе и нейровычислителей) на базе ПЛИС [18]. В настоящее время множество компаний занимается разработкой и выпуском различных ПЛИС, однако, лидерство делят Xilinx и ALTERA.
Реализация нейровычислителей на основе ПЛИС требует участия эксперта на топологической стадии проектирования. Это обусловлено тем, что автоматизированный режим разводки пока не позволяет добиться 60-100% использования ресурсов кристалла, а это принципиально для сильно связанных схем, к которым относятся и нейросетевые вычислители. Построение нейровычислителей на их основе хотя и дает высокую гибкость создаваемых структур, но пока еще проигрывает по производительности по сравнению с другими решениями.
При реализации нейровычислителей сегодня, как правило, используется гибридная схема, когда блок матричных вычислений реализуется на базе кластерного соединения DSP-процессоров, а логика управления на основе ПЛИС. В качестве элементной базы матричного кластера используются ADSP21060 и TMS320C44, в ближайшее время им на смену придут ADSP2106х и TMS320C67хх. В дальнейшем матричное ядро будет реализовываться на базе нейрочипов, а DSP и ПЛИС останутся основой для построения логики управления; подобный подход уже явно прослеживается в известных нейровычислителях, например Synaps 3 (разработан компанией Siemens, поставляется сейчас на рынок компанией Tiga Technologies).
Нейрочипы — элементная база нейровычислителей
Элементной базой перспективных нейровычислителей служат нейрочипы. Их производство ведется в целом ряде стран мира. Большинство из них ориентированы на конкретные специализированные управляющие системы.
Прежде чем перейти к рассмотрению наиболее интересных примеров нейрочипов, остановимся на их классификации. По типу логики их можно разделить на цифровые, аналоговые и гибридные. По типу реализации нейроалгоритмов: с полностью аппаратной и с программно-аппаратной реализацией (когда нейроалгоритмы хранятся в ПЗУ). По характеру реализации нелинейных преобразований: на нейрочипы с жесткой структурой нейронов (аппаратно реализованные) и нейрочипы с настраиваемой структурой нейронов (перепрограммируемые). По возможностям построения нейросетей: нейрочипы с жесткой и переменной нейросетевой структурой (т.е. нейрочипы, в которых топология нейросетей реализована жестко или гибко).
Процессорные матрицы (систолические процессоры) обычно близки к обычным RISC-процессорам; они объединяют в своем составе некоторое число процессорных элементов, вся же остальная логика, как правило, должна быть реализована на базе периферийных схем. В отдельный класс следует выделить так называемые нейросигнальные процессоры, ядро которых представляет собой типовой DSP-процессор, а реализованная на кристалле дополнительная логика обеспечивает выполнение нейросетевых операций (например, дополнительный векторный процессор и т.п.).
Назовем теперь наиболее интересные из представленных сегодня на рынке нейрочипов. К сожалению, не всегда удается указать, в каких прикладных областях каждый конкретный чип может быть особенно полезен — ответить на этот вопрос можно только теоретически, на основе анализа зарубежных публикаций.
Нейросигнальный процессор NeuroMatrix NM6403 (производитель — НТЦ «Модуль», Россия). Основой NeuroMatrix NM6403 является процессорное ядро NeuroMatrixCore (NMC), которое представляет собой «синтезируемую модель высокопроизводительного DSP-процессора с архитектурой VLIM/SIMD. Ядро состоит из двух базовых блоков: 32-разрядного RISC-процессора и 64-разрядного векторного процессора, обеспечивающего выполнение векторных операций над данными переменной разрядности.
Благодаря своей универсальности нейропроцессор сможет применяться как базовый элемент для плат нейроускорителей ПК, для создания нейрокомпьютерных параллельных вычислительных систем большой производительности, а также для аппаратной поддержки операций над матрицами большой размерности и в задачах цифровой обработки сигналов. Используется в нейроускорителях производства НТЦ «Модуль».
NeuroMatrix NM6404 представляет собой высокопроизводительный DSP-ориентированный RISC-процессор. В его состав входят два основных блока: 32-разрядное RISC-ядро и 64-разрядный векторный сопроцессор для поддержки операций над векторами с элементами переменной разрядности. NM6404 по системе команд совместим с NM6403. Имеются два идентичных программируемых интерфейса для работы с внешней памятью различного типа и два коммуникационных порта, аппаратно совместимых с портами TMS320C4x, для возможности построения многопроцессорных систем.
Neural Networks Processor (НТЦ «Модуль»). Процессор построен по архитектуре MIMD и состоит из нескольких миниатюрных процессоров, работающих параллельно. Каждый из этих процессоров представляет собой быстрый 16-разрядный вычислитель с памятью для хранения синаптических весов. Процессор имеет всего 9 простых команд. Процессоры на кристалле связаны друг с другом локальной шиной. NNP создан в коммерческих целях и доступен на рынке.
Нейропроцессор МА16 (Siemens). Изготовлен по технологии КМОП на 1 мкм, состоит из 610 тыс. транзисторов и выполняет до 400 млн. операций умножения и сложения в секунду. Используется в качестве элементной базы нейрокомпьютера Synaps 1 и нейроускорителей Synaps 2 и Synaps 3. Представляет собой программируемый каскадируемый процессор для векторных и матричных операций. Коммерчески доступен с 1995 года.
MD1220 (Micro Devices). Цифровой нейрочип MD1220 содержит восемь нейронов с 8 связями и 16-разрядные сумматоры. Во внутрикристальной памяти хранятся 16-разрядные веса. Входы имеют одноразрядные последовательные умножители с продолжительностью такта 7,2 мкс. Средняя производительность — около 9 MCPS.
L-Neuro (Philips). Один из первых нейропроцессоров; широко известны две его модификации L-Neuro 1.0 и L-Neuro 2.3. Вторая версия имеет 12 слоев, а первая — один слой из шестнадцати одноразрядных, или двух восьмиразрядных, или четырех 4-разрядных, или двух 8-разрядных процессорных элементов, т.е. имеет возможность работать мультиразрядном режиме. На кристалле предусмотрен 1 Кбайт памяти для хранения 1024 8-разрядных или 512 16-разрядных весов. Гибкая каскадируемая структура нейрочипа позволяет его использовать при реализации различных нейросетевых парадигм. При реализации 64 8-разрядных процессорных элементов средняя производительность составляет 26 MCPS (32 MCUPS).
NLX-420 (NeuroLogix). Каждый из 16 процессорных элементов нейрочипа NLX-420 содержит 32-разрядный сумматор, логику параллельного выполнения 16 умножений. Средняя производительность — 300 MCPS. Также имеется возможность каскадирования и мультиразрядных вычислений.
ETANN 80170NX (Intel). Аналоговая СБИС, содержит 64 входа, 16 внутренних уровней и 64 нейрона. Каждый вход соединен с 64 синапсами. Передаточная функция нейрона в СБИС близка к сигмоиде. Поскольку ETANN представляет собой аналоговую СБИС, то для ее надежной работы важны стабильные внешние условия. Специально сконструированный для этого модуль обеспечивает низкую пульсацию источника питания и температурную стабильность.
CLNN32/CLNN64 (Bellcore). Гибридный нейрочип CLNN32 состоит из 32 нейронов, 496 двунаправленных адаптивных синапсов, а CLNN64 содержит только 1024 адаптивных синапсов. В наборе CLNN32/CLNN64 все нейроны взаимосвязаны, так что любая топология сети отображается подбором синапсов. Динамика сети полностью аналоговая, но значения синапсов хранятся/обновляются в цифровом виде с точностью 5 бит.
ANNA (AT&T). Еще одним примером реализации гибридного нейрочипа является нейрочип ANNA. Логика нейрочипа — цифровая, хранение весов — аналоговое (на элементах динамической (конденсаторной) памяти). Нейрочип содержит 4096 весов; максимальное число нейронов — 256. Точность весов — 6 разрядов, для однослойной сети 64x64 производительность достигает 2,1 GCPS.
СБИС NeuroClassifier (Университет Твенте). Аналоговая СБИС NeuroClassifier состоит из входного слоя (70 входов, пропускная способность — до 4 Гбайт/с), шести внутренних слоев и одного выходного нейрона. Точность аналогового умножения 5 бит, время решения всего лишь 20 нс, что позволяет использовать NeuroClassifier в триггере первого уровня. Эквивалентное быстродействие примерно 2(1010 переключений/с).
SAND/1 (Datafactory, бывшая INCO). SAND/1 (Simple Applicable Neural Device) представляет собой соединенные каскадно систолические процессоры, оптимизированные для быстрого решения задач в нейросетевом базисе. Производительность одного процессора составляет 200 MCPS (миллионов связей в секунду). Процессор имеет четыре 16-разрядных потока и 40-разрядный сумматор. Разработан Исследовательским центром в Карлсруе и Институтом микроэлектроники Штутгарта.
Inova N64000 (Inova). Этот нейрочип архитектуры SIMD относится также, как и предыдущий, к классу систолических нейропроцессоров. Он содержит 80 процессорных элементов, из которых 64 образуют основную матрицу, а 16 являются резервом, 4 Кбайт памяти весов и 32 регистра общего назначения. Арифметический модуль процессора имеет девять параллельных 16-разрядных умножителей и один 32-разрядный сумматор.
100 NAP (Hecht-Nielson Computer). Этот систолический нейрочип содержит 4 32 разрядных процессорных элемента с плавающей точкой. Средняя производительность около 150 MFLOPS, адресуемое пространство внекристалльной памяти — 512 Кбайт.
MT19003 (Micro Circuit Engineering). Данный нейрочип также относится к классу систолических нейропроцессоров, в основе его архитектуры лежит RISC-ядро с семью специальными командами, 16-разрядный векторный умножитель и 32-разрядный сумматор, внутрикристалльная память для хранения весов отсутствует. Точность входов и весов — 13 разрядов. Средняя производительность — 50 MCPS.
NEURON (Echelon). Нейропроцессор ориентирован на создание кластерно-параллельных вычислительных систем. Программно-алгоритмическое обеспечение по управлению кластерной структурой реализовано внутри кристалла. Предложенная архитектура кристалла стала в настоящее время основой стандарта ANSI/EIA 709.1-1999 построения различных АСУ ТП [2]. В семействе нейрочипов NEURON выделяют: NEURON 3120 и NEURON 3150. Кристалл содержит 2 Кбайт динамической памяти для хранения весов и данных, 512 байт (EEPROM), для размещения управляющих программ. Для выполнения специализированных сетевых и управляющих операций в структуре кристалла имеется два спецвычислителя: Applications CPU, Network CPU. Также следует отметить широкие коммуникационные функции, реализованные на кристалле.
ZISC036 (IBM). Относится к нейрочипам векторно-прототипной архитектуры, содержит 36 нейронов и ориентирован на решение широкого круга задач, в том числе распознавания образов и классификации. Каждый нейрон представляет собой независимый процессор. Для увеличения производительности в IBM разработали модули ISA и PCI параллельно работающих процессоров ZISC.
Выводы
Работа с нейроускорителями и нейрокомпьютерами дает в руки современного инженера, исследователя, аналитика мощное средство проведения вычислений в реальном масштабе времени и если раньше большая часть времени уходила на подготовку и проверку одной гипотезы, то теперь система обрабатывает данные и выдает заключения практически в реальном времени. Основная причина отсутствия полнофункциональных нейровычислителей на рынке — закрытость разработок. Из сотен фирм, производящих специализированные нейрочипы, лишь единицы поставляют свою продукцию на массовый рынок. Остальные обслуживают военный комплекс, либо создают единичные продукты для спецприложений.
Мы подробно остановились лишь на анализе некоторой зарубежной элементной базы построения перспективных вычислительных систем с массовым параллелизмом. С обзором отечественной элементной базы можно познакомиться в [2]. Оперативную информацию по данному направлению сможете получить на сервере «Новости с российского рынка нейрокомпьютеров» (neurnews.iu4.bmstu.ru). Мы будем признательны разработчикам нейровычислителей и всем заинтересованным лицам за дополнения и обсуждение вопросов, затронутых в данной статье.
Литература
[1] Проблемы построения и обучения нейронных сетей / под ред. А.И. Галушкина и В.А. Шахнова. — М.: Машиностроение. Библиотечка журнала «Информационные технологии», 1999, № 1
[2] А.И. Галушкин. Некоторые исторические аспекты развития элементной базы вычислительных систем с массовым параллелизмом (80-е и 90-е годы) // Нейрокомпьютер, 2000, № 1
[3] А.Н. Горбань, Д.А. Россиев, Нейронные сети на персональном компьютере. — Новосибирск: Наука. Сибирская издательская фирма РАН, 1996
[4] Э.Ю. Кирсанов, Цифровые нейрокомпьютеры: Архитектура и схемотехника / Под ред. А.И. Галушкина. — Казань: Казанский Гос. У-т. 1995
[5] А.И. Власов. Аппаратная реализация нейровычислительных управляющих систем // Приборы и системы управления, 1999, № 2
[6] В. Степанов, Фондовый рынок и нейросети // Мир ПК, 1998, № 12
[7] Роберт Хехт-Нильсен, Нейрокомпьютинг: история, состояние, перспективы // Открытые системы, 1998, № 4
[8] А.И. Власов, Нейросетевая реализация микропроцессорных систем активной акусто- и виброзащиты // Нейрокомпьютеры: разработка и применение, 2000, №1
[9] М. В. Алюшин. Аппаратная реализация быстродействующих нейросетей на основе программируемой логики фирм AMD, ALTERA, XILINX // Нейроинформатика-99. — М.: МИФИ. Часть 2
[10] П.А. Шевченко, Д.В. Фомин, В.М. Черников, П.Е. Виксне. Применение микропроцессора NM6403 для эмуляции нейронных сетей // Нейрокомпьютеры и их применение 99. М.: ИПУ РАН, 1999
[11] В.А. Шахнов, А.И. Власов, Кузнецов, Ю.А. Поляков. Нейрокомпьютеры: Архитектура и схемотехника — М.: Машиностроение. Библиотечка журнала Информационные технологии. № 9
[12] В.А. Шахнов, А.И. Власов, Кузнецов, Ю.А. Поляков. Нейрокомпьютеры: Архитектура и реализация // ChipNews, 2000, № 6-10
[13] А. Логовский. Технология ПЛИС и ее применение для создания нейрочипов. «Открытые системы», 2000, № 10
Вадим Шахнов (shakhnov@iu4.bmstu.ru), Андрей Власов (vlasov@iu4.bmstu.ru) и Александр Кузнецов (neurohard@iu4.bmstu.ru) — сотрудники кафедры «Проектирование и технология производства электронно-вычислительных и телекоммуникационных систем» МГТУ им. Н.Э. Баумана.
Тест | Intel Pentium II 300 МГц | Intel Pentium MMX 200 МГц | TI TMS 320C40 50 МГц | НТЦ "Модуль" NM6403 40 МГц |
Фильтр Собеля (размер кадра 384x288 байт), кадров/с. | __ | 21 | 6,8 | 68 |
Быстрое преобразование Фурье (256 точек, 32 разряда), мкс (тактов) | 200 | __ | 464 (11588) | 102 (4070) |
Преобразование Уолша-Адамара (21 шаг, вх. данные 5 бит), с | 2,58 | 2,80 | __ | 0,45 |