В. Шахнов, А. Власов, А. Кузнецов, Ю. Поляков
Введение
Рассмотрев в предыдущих разделах основы нейроматематики и элементную базу нейровычислителей, остановимся более подробно на анализе структурно-функционального построения нейровычислительных систем.
Как было отмечено в первой части обзора, нейрокомпьютер это вычислительная система с MSIMD-архитектурой, то есть с параллельными потоками одинаковых команд и множественным потоком данных. На сегодня можно выделить три основных направления развития вычислительных систем с массовым параллелизмом (ВСМП):
- ВСМП на базе каскадного соединения универсальных SISD, SIMD, MISD микропроцессоров. Элементная база универсальные RISC или CISC-процессоры: Intel, AMD, Sparc, Alpha, Power PC, MIPS и т. п.;
- на базе процессоров с распараллеливанием на аппаратном уровне. Элементная база DSP-процессоры: TMS, ADSP, Motorola, ПЛИС;
- ВСМП на специализированной элементной базе. Элементная база от специализированных однобитовых процессоров до нейрочипов.
Как отмечено в первой части обзора, нейросетевые системы, реализованные на аппаратных платформах первого направления (пусть и мультипроцессорных) будем относить к нейроэмуляторам то есть системам, реализующим типовые нейрооперации (взвешенное суммирование и нелинейное преобразование) на программном уровне. Нейросетевые системы, реализованные на аппаратных платформах второго и третьего направления в виде плат расширения стандартных вычислительных систем (1-го направления), будем называть нейроускорителями, а системы, реализованные на аппаратной платформе третьего направления в виде функционально законченных вычислительных устройств, следует относить к нейрокомпьютерам (все операции выполняются в нейросетевом логическом базисе). Нейроускорители можно разделить на два класса "виртуальные" (вставляемые в слот расширения стандартного РС) и "внешние" (соединяющиеся с управляющей Host ЭВМ по конкретному интерфейсу или шине) [2-5]. Рассотрим принципы реализации и основные структурно-функциональные особенности нейровычислителей второго и третьего типа на конкретных примерах.
Нейроускорители на базе ПЛИС
Построение нейровычислителей на базе ПЛИС, с одной стороны, позволяет гибко реализовать различные нейросетевые парадигмы, а с другой сопряжено с большии проблемами разводки всех необходиых межсоединений. Выпускаемые в настоящее время ПЛИС имеют различные функциональные возможности (число вентилей от 5 до 100 тысяч). Нейровычислители на базе ПЛИС, как правило, позиционируются как гибкие нейровычислительные системы для научно-исследовательских целей и мелкосерийного производства. Для построения более производительных и эффективных нейровычислителей, как правило, требуется применение сигнальных процессоров.
В качестве примера, рассмотрим нейровычислитель, созданный в НИИ Системных исследований (РАН) [3].
Параллельный перепрограммируемый вычислитель (ППВ) разработан в стандарте VME и реализован на базе перепрограммируемых микросхем семейства 10К фирмы Altera. Вычислитель предназначается для работы в качестве аппаратного ускорителя и является ведомым устройством на шине VME. Он должен включаться в систему как подчиненное устройство основной управляющей ЭВМ (host-машины) с универсальным процессором. Тактовая частота вычислителя 33 МГц [3].
ППВ используется для построения систем распознавания образов на основе обработки телевизионной, тепловизионной и другой информации, а также систем, основанных на реализации алгоритмов с пороговыми функциями и простейшими арифметическими операциями, и позволяет добиться значительной скорости вычислений (таблица). Вычислитель состоит из следующих функциональных блоков [3]:
- схема управления (Сх Упр);
- базовые вычислительные элементы (БВЭ1-БВЭ6);
- контроллер внешней шины (Контроллер E-bus);
- контроллер системной шины (Контроллер VME);
- два массива статической памяти (ОЗУ0, ОЗУ1);
- блок высокоскоростных приемников/передатчиков.
Рис. 1. Внешний вид ППВ
Схема управления используется для управления БВЭ и потоками данных в вычислителе и представляет собой простейший RISC-процессор. Структура и набор команд процессора могут изменяться в зависимости от типа решаемой задачи.
БВЭ используются для выполнения простейших арифметических операций типа суммирования, вычитания, умножения и вычисления пороговых функций. Так как БВЭ реализованы на перепрограммируемых микросхемах, их архитектура может изменяться. Архитектуры БВЭ для различных алгоритмов могут различаться, но обычно легко реализуются путем комбинации библиотечных функций, компиляции их при помощи САПР (типа MaxPlus) и загрузки файла конфигурации в выбранный БВЭ.
Два массива локальной статической памяти собраны из 8 микросхем статической памяти емкостью 0,5 Мбайт, имеют размер 4 Мбайт и организованы как массив 512К 8-байт слов. Массивы памяти связаны со схемой управления отдельными адресными шинами и могут функционировать независимо друг от друга. Память предназначена для хранения общих коэффициентов, а также промежуточных результатов вычислений или окончательных результатов, подготовленных к передаче через контроллер системной шины в центральный процессор или через контроллер E-bus на линк-порты.
Связь нескольких вычислителей между собой или вычислителя с устройством оцифровки изображения, при наличии у устройства оцифровки соответствующего интерфейса, осуществляется посредством последовательного канала приемников/передатчиков HOTLink фирмы CYPRESS. Управление передачей данных выполняет контроллер внешней шины, который представляет из себя набор 4-х стандартных FIFO и регистров управления и данных. Контроллер шины VME выполняет функцию интерфейса с центральным процессором и является стандартным устройством.
Таблица. Время выполнения типовых субалгоритмов
Название алгоритма | Pentium-100, c | PentiumII-333, c | Ultra SPARC, c | ППВ, с |
Свертка с ядром 4х4 | 0,65 | 0,11 | 0,76 | 0,02 |
Медианный фильтр | 1,97 | 0,49 | 0,75 | 0,001 |
Повышение контрастности | 0,51 | 0,13 | 1,31 | 0,004 |
Прямое поточечное сравнение с маской 32х32 | 43,78 | 7,14 | 58,89 | 0,142 |
Поиск локальных неоднородностей 32х32 | 0,120 | 0,028 | 0,146 | 0,032 |
Умножение матрицы на матрицу | 8,61 | 0,60 | 12,31 | 0,011 |
Оценки приведены для:
Pentium-100 при частоте 100 МГц, объем ОЗУ 16 Мбайт;
Pentium-333 при частоте 350 МГц, объем ОЗУ 128 Мбайт;
UltraSPARC при частоте 200 МГц, объем ОЗУ 64 Мбайт;
вычислителя при частоте 33 МГц.
С точки зрения программиста, вычислитель можно представить как RISC-процессор (схема управления или управляющий процессор) и шесть векторных процессоров (вычислительных элементов), отрабатывающих SIMD-команды (одна команда для многих данных). Большое количество шин данных, возможность одновременной работы всех БВЭ и выполнение арифметических операций умножения и сложения за один такт позволяет эффективно распараллеливать процесс обработки информации.
Рис. 2. Структурная схема ППВ [3]
Особенностью схемы управления перепрограммируемого вычислителя для систем обработки информации является наличие рабочей команды, управляющей шестью базовыми вычислительными элементами. Команда позволяет одновременно, за один такт, задавать различные режимы функционирования шести базовым вычислительным элементам и инкрементировать адреса обоих массивов памяти на любое число от 0 до 255, хранимое в регистрах инкремента, причем каждому массиву соответствует свой регистр. Команда может повторяться любое количество раз в соответствии со значением, хранимым в специальном регистре. Это позволяет выполнять основную команду без потерь на организацию циклов и переходов. Рабочая команда позволяет одновременно запускать оба контроллера локальной памяти, инкрементировать адресные регистры на требуемое значение, выставлять на адресные шины адреса из соответствующих регистров адреса, выставлять на шины управления БВЭ команды из соответствующих регистров БВЭ. Кроме того, рабочая команда осуществляет организацию обмена данными между контроллером внешней шины и локальной памятью.
Методика быстрого создания нейровычислителей на ПЛИС приведена в [6]. Основные тенденции в проектировании нейровычислителей на ПЛИС это увеличение плотности компоновки нейрокристалов за счет уменьшения площади межсоединений и функциональных узлов цифровых нейронов. Для решения этой задачи находят применение:
- оптические связи для передачи информации между нейронами;
- модификации программно-аппаратной реализации функциональных элементов для нейровычислений;
- оптимизация представления промежуточных данных в слоях нейронов нейросети со сжатой формой внутренних данных.
Нейроускорители на базе каскадного соединения сигнальных процессоров
Такие нейровычислители представляют собой мультипроцессорные системы с возможностью параллельной обработки, что позволяет реализовывать на их основе нейровычислительные системы, в структуре которых можно выделить две основные части:
- управляющую Host-ЭВМ, реализованную на основе обычной вычислительной системы с CISC- или RISC-микропроцессорами;
- виртуальное (или внешнее) аппаратное средство, подключаемое к Host-ЭВМ посредством внутренних (внешних) системных интерфейсов, выполняющее основные вычислительные операции.
Остановимся на особенностях аппаратной реализации нейровычислителя (НВ) с возможностью параллельной обработки, реализующие элементы нейросети (НС).
В основе построения НВ данного типа лежит использование сигнальных процессоров, объединенных между собой согласно определенной архитектуре, которая обеспечивает параллельность выполнения вычислительных операций. Как правило, такие НВ строятся на основе гибкой модульной архитектуры, которая обеспечивает простоту конфигурации системы и наращиваемость вычислительной мощности путем увеличения числа процессорных модулей или применения более производительных сигнальных процессоров (рис. 3). НВ данного типа реализуются в основном на базе несущих модулей стандартов ISA, PCI, VME. Основными их функциональными элементами являются модуль матричных сигнальных процессоров (МСП), рабочая память, память программ, модуль обеспечения ввода/вывода сигналов (включающий АЦП, ЦАП и TTL линии), а также модуль управления, который может быть реализован на основе специализированного управляющего сигнального процессора (УП), на основе ПЛИС или иметь распределенную структуру, при которой функции общего управления распределены между МСП.
Рис. 3. Обобщенная функциональная схема виртуального НВ
Для построения НВ данного типа наиболее перспективным является использование сигнальных процессоров с плавающей точкой ADSP2106x, TMS320C4x,8x, DSP96002 и других.
Типовая структурная схема реализации НВ на основе сигнальных процессоров ADSP2106x приведена на рис. 4 [5]. В ее состав включены один управляющий сигнальный процессор для осуществления функций общего управления, и до 8 процессоров, осуществляющих параллельные вычисления согласно заложенным алгоритмам (матричные сигнальные процессоры).
Рис. 4. Реализация нв на основе ADSP2106x
Управляющий и матричные процессоры образуют кластер процессоров с общей шиной и ресурсами разделяемой памяти. Обмен информацией между управляющим процессором, матричными процессорами, Host-ЭВМ и внешней средой осуществляется посредством портов ввода/вывода. Для тестирования и отладки предназначен отладочный JTAG-порт. Так, в случае использования четырех МСП, обмен информацией между ними и УП осуществляется посредством четырех связанных портов ADSP2106x, по два связанных порта УП и модуля МСП выводятся на внешние разъемы для обеспечения связи с внешними устройствами. Имеется 12 внешних линков, а по 3 линка каждого из МСП предназначены для внутримодульного межпроцессорного обмена. Синхронизация работы системы может осуществляться как от внутренних кварцевых генераторов, так и от внешних. Активизация вычислений программная или внешняя.
Для ввода/вывода и АЦ/ЦА преобразований сигналов предназначен специализированный модуль, который включает в себя: универсальный цифровой TTL-порт, АЦП, ЦАП, узел программируемых напряжений для смещения шкал АЦП и установки порога срабатывания стартовых компараторов, узел фильтрации выходных аналоговых сигналов, подсистему тестирования, узел синхронизации и управления, буферную память FIFO. Первоначальная загрузка осуществляется по Host-интерфейсу или по линкам. Управляющий интерфейс любого МСП позволяет управлять процессорным сбросом и прерываниями, его идентификационным номером и т. п.
Такая архитектура НВ обеспечивает выполнение операций ЦОС в реальном времени, ускорение векторных вычислений, возможность реализации нейросетевых алгоритмов с высоким параллелизмом выполнения векторных и матричных операций.
Структурная схема НВ на основе сигнальных процессоров TMS320C4x представлена на рис. 5. Несколько DSP, входящих в структуру НВ образуют распределенную вычислительную структуру из процессорных модулей, соединенных между собой высокоскоростными портами. Данный вариант реализации НВ может быть построен с использованием от 2 до 8 сигнальных процессоров.
Рис. 5. Структура НВ на основе TMS320C4x
При использовании двух параллельных 32-разрядных DSP TMS320C40 обмен информацией при реализации нейросетевых алгоритмов осуществляется с помощью 6 связанных портов с пропускной способностью в 30 Мб/c и каналов DMA каждого из процессоров. Поддерживая параллельную независимую работу, подсистема DMA и процессор обеспечивают параллельный обмен информацией со скоростями до 560 Мб/c. При помощи высокоскоростных портов возможна реализация на основе данных DSP таких архитектур, как кольца, иерархические деревья, гиперкуб и т. п. Каждая из локальных шин TMS320C40 обеспечивает обмен информацией на скоростях до 120 Мбайт/с.
Процессорные модули функционируют независимо и при необходимости объединяются посредством связанных портов. Функции обмена, управления процессорными модулями, прерываниями и каналами DMA реализуют ПЛИС, например, фирмы Xilinx. Применение в НВ динамических реконфигурируемых структур (нейросети со структурной адаптацией) и использование последних ПЛИС семейств хС2ххх-хС4ххх (Xilinx) или аналогичных, требует минимизации времени на реконфигурацию ПЛИС, которые чаще всего программируются в режимах Master Serial и Peripherial. Основной недостаток при использовании данных режимов перепрограммирования заключается в зависимости процесса переконфигурации ПЛИС от встроенного тактового генератора. Минимальные потери времени возможно получить при проведении переконфигурации ПЛИС в режиме Slave Serial, в котором внутренний тактовый генератор отключен, а синхронизация осуществляется посредством внешних синхросигналов. Реконфигуратор ПЛИС выполняется в виде специализированной микросхемы (например, XC2018-84pin-50MHz, XC3020-68pin-50MHz).
Подсистема хранения информации включает модули локальной статической (до 256Кx32) и динамической памяти (до 8Мx32) на каждый из процессоров и глобальной статической памяти (до 256Кx32). Host-ЭВМ осуществляет обращение к глобальной статической памяти 16-бит словами в режиме строчных пересылок с автоинкрементированием адреса посредством адресного пространства портов ввода/вывода. Для разрешения возможных конфликтных ситуаций в состав НВ введены арбитры доступа. Дополнительный обмен информацией может быть осуществлен через высокоскоростной коммуникационный порт. Host-ЭВМ имеет возможность прерывать работу любого из процессорных модулей. Подсистема прерываний поддерживает обработку прерываний к любому из DSP при обмене информацией с Host-ЭВМ.
Реализация НВ, блок матричных процессоров которого построен на основе четырех матричных TMS320C44 с производительностью 60 MFLOPS, представляет собой распределенную вычислительную структуру из процессорных модулей с производительностью до 960 MFLOPS, соединенных между собой высокоскоростными портами. Структура НВ включает в себя УП (TMS320C44), 4 МСП (TMS320C44), статическую память (до 512Кx32), динамическую память (до 16Мx32) и интерфейсные средства для обмена с внешней средой. Используемый процессор имеет две независимые шины: глобальную и локальную со скоростью обмена до 240 Мбайт/c и 4 параллельных байтовых порта с пропускной способностью 30 Мбайт/с. Коммуникационные порты обеспечивают проведение межпроцессорного обмена с минимальной нагрузкой на микропроцессорное ядро, для чего используются соответствующие контроллеры DMA для каждого из портов. Каждый из портов обеспечивает передачу информации со скоростью до 20 Мбайт/c, что позволяет достигать пиковой производительности по всем портам около 120 Мбайт/с.
Четыре процессорных модуля функционируют на плате независимо. Обмен информацией между ними осуществляется посредством байтового порта. Коммуникационные порты и каналы DMA обеспечивают разнообразные возможности высокоскоростного обмена. Host-ЭВМ имеет возможность прерывать работу любого из процессорных модулей. Для использования специализированного многооконного отладчика задач ЦОС фирмы Texas Instruments в структуру НВ вводится JTAG-интерфейс. Загрузка программ и данных, обмен данными между НВ и Host-ЭВМ осуществляется через высокоскоростной коммуникационный порт, который имеет FIFO буфера в обоих направлениях. Узлы ввода/вывода подключаются через глобальную шину с пропускной способностью до 100 Мбайт/c. Каналы связи с Host-ЭВМ полностью удовлетворяют стандарту ТIM-40, разработанному консорциумом под руководством Texas Instruments. Внутренняя структура интерфейса определяется загруженной в ПЛИС конфигурацией.
Рассмотренные варианты НВ обеспечивают выполнение ЦОС и нейроалгоритмов в реальном масштабе времени, ускорение векторных и матричных вычислений, по сравнению с традиционными вычислительными средствами, в несколько раз и позволяют реализовать нейросеть с числом синапсов до нескольких миллионов.
Еще больше повысить производительность НВ данного типа можно при использовании одного из самых мощных на сегодня сигнальных процессоров TMS320C80, TMS320C6ххх фирмы Texas Instruments.
Примером реализации нейровычислителя на DSP фирмы MOTOROLA является нейровычислитель NEURO TURBO фирмы Fujitsu. Он реализован на основе 4 связанных кольцом 24-разрядных DSP с плавающей точкой МВ86220 (основные параметры: внутренняя точность 30 разрядов, машинный цикл 150 нс, память программ 25 Кслов x2 (внутренняя), 64 Кслов x4 (внешняя), 1,2-мкм КМОП-технология изготовления). Активационная функция нейронов ограничивается в диапазоне от 0 до 1, а возможные значения входов не превышают 16 разрядов, что обуславливает достаточную точность при 24-разрядной архитектуре. Построение нейрокомпьютера на основе кольцевой структуры объединения DSP позволяет снизить аппаратные затраты на реализацию подсистемы централизованного арбитража межпроцессорного взаимодействия.
Нейрокомпьютер NEURO TURBO (рис. 6) состоит из четырех DSP, связанных друг с другом посредством двухпортовой памяти. Каждый из DSP может обращаться к двум модулям такой памяти (емкостью 2 Кслов каждая) и к рабочей памяти (РП) (емкостью 64 Кслов x4 Банка) в своем адресном пространстве. Вследствие того, что доступ к двухпортовой памяти осуществляется случайным образом одним из соседних DSP, передача данных между ними происходит в асинхронном режиме. Рабочая память используется для хранения весовых коэффициентов, данных и вспомогательной информации. Для успешной работы НС необходимо получение сверток во всех элементарных нейронных узлах. Кольцевая структура объединения DSP обеспечивает конвейерную архитектуру свертки, причем передача данных по конвейеру осуществляется посредством ДПП. После того как DSP загружает данные из одной ДПП, он записывает результаты своей работы в смежную ДПП, следовательно, кольцевая архитектура параллельной обработки обеспечивает высокую скорость операции с использованием относительно простых аппаратных решений.
Рис. 6. Структура нейрокомпьютера NEURO TURB0 (фирмы FUJITSU)
Для выполнения функций общего управления используется Host-ЭВМ на основе обычной вычислительной системы. Обмен данными между нейроплатой и Host-ЭВМ производится через центральный модуль ДПП. Загрузка программ в DSP осуществляется посредством памяти команд для каждого DSP. Следовательно, его архитектура полностью соответствует параллельной распределенной архитектуре типа MIMD. Пиковая производительность системы 24 MFLOPS.
Для реализации модели НС иерархического типа фирмой Fujitsu выпущена нейроплата на основе DSP МВ86232, с собственной памятью до 4 Мб, что позволяет осуществлять моделирование НС, содержащей более 1000 нейронов. Структура НС включает в себя входной, промежуточный и выходной уровни (наибольшее число скрытых слоев два (ограничение по памяти)). Для обучения нейрокомпьютера используются оригинальные фирменные алгоритмы: алгоритм виртуального импеданса, алгоритм скорректированного обучения и алгоритм расширенного обучения.
Каждая из рассмотренных типовых структур реализации НС может быть промоделирована на основе рассмотренных выше вариантов построения мультипроцессорных НВ. Так, для НВ на основе TMS320C4x при реализации какой-либо из рассмотренных архитектур (кольцо, иерархическое дерево, гиперкуб и т. п.) достаточно только изменить назначения коммуникационных портов, что обеспечивает гибкость и масштабируемость при исследовании и разработках нейросетевых систем различной архитектуры.
Если приведенное выше обобщенное описание реализации нейровычислительных систем Вас еще не утомило, и Вы горите желанием попробовать что-то реализовать своими руками, то перед Вами встанет вопрос, а где взять "железо". Конечно, если вы работаете в крупном НИИ, его можно сделать и самим, а если вам необходимо уже готовое изделие? На рынке высокопараллельных вычислителей Москвы можно выделить следующие оте- чественные фирмы: во-первых, это АОЗТ "Инструментальные системы" (http://www.insys.ru) и НТЦ "Модуль" (http://www.mudule.ru), которые имеют целую линейку серийно производимых высокопараллельных вычислителей, во-вторых, это фирмы AUTEX Ltd (http://www.autex.ru), L-Card Ltd (http://www.lcard.ru), производящие высокопараллельные вычислители, как правило, под заказ на базе микропроцессоров Analog Devices, и фирма Scan (а точнее Scan Engeeniring Telecom (Воронеж)), представляющая высокопараллельные вычислители на базе DSP фирмы Texas Instruments (http://www.scan.ru). В следующих публикациях мы проанализируем продукцию некоторых из данных фирм в области высокопараллельных вычислителей на конкретных примерах.
Продолжение следует.
Литература
- Проблемы построения и обучения нейронных сетей / под ред. А.И. Галушкина и В.А. Шахнова. М.: Изд-во Машиностроение. Библиотечка журнала Информационные технологии. 1999. ╧ 1. 105 с.
- Галушкин А.И. Некоторые исторические аспекты развития элементной базы вычислительных систем с массовым параллелизмом (80- и 90-е годы) // Нейрокомпьютер. 2000. ╧ 1. С. 6882.
- Аряшев С.И., Бобков С.Г., Сидоров Е.А. Параллельный перепрограммируемый вычислитель для систем обработки информационных сигналов. М.: МИФИ "Нейроинформатика99". Часть 2. С. 2533.
- Кирсанов Э.Ю. Цифровые нейрокомпьютеры: Архитектура и схемотехника / Под ред. А.И. Галушкина. Казань: Казанский Гос. У-т. 1995. 131 с.
- Власов А.И. Аппаратная реализация нейровычислительных управляющих систем // Приборы и системы управления. 1999. ╧ 2. С. 6165.
- Борисов В.Л., Капитанов В.Д. Методика быстрого создания нейроускорителей // Нейрокопьютеры: разработка и применение. 2000. ╧ 1. С. 1224.
- Роберт Хехт-Нильсен. Нейрокомпьютинг: история, состояние, перспективы // Открытые системы. 1998. ╧ 4.
- Власов А.И. Нейросетевая реализация микропроцессорных систем активной акусто- и виброзащиты // Нейрокомпьютеры: разработка и применение. 2000. ╧ 1. С. 4044.
- http://neurnews.iu4.bmstu.ru.
- http://www.module.ru.
- http://www.insys.ru.
- Цыганков В.Д. Нейрокомпьютер и его применение. М.: Сол Систем. 1993.
E-mail: vlasov@iu4.bmstu.ru
EdwardQuoro пишет... Привет всем! Нашел в интернете один ресурс с интересными материалами. Я в восторге. Захотел поделиться
21/03/2021 05:48:53 |
Ваш комментарий к статье | ||||