с массовым параллелизмом насчитывает уже
История развития вычислительных систем с массовым параллелизмом насчитывает уже не один десяток лет. Пожалуй, эта одна из небольшого числа областей науки и техники, где отечественные разработки находятся на уровне мировых достижений, а в некоторых случаях и превосходят их. Шли годы, изменялась элементная база и подходы к архитектуре построения современных суппервычислителей, появлялись новые направления, к числу которых можно отнести и нейрокомпьютеры.
Что же следует понимать под термином нейрокомпьютер? Вопрос достаточно сложный. Нейросетевая тематика, как таковая, является междисциплинарной, ей занимаются как разработчики вычислительных систем и программисты, так и специалисты в области медицины, финансово-экономические работники, химики, физики и т.п. То, что понятно физику, совершенно не принимается медиком и наоборот - все это породило многочисленные споры и целые терминологические войны по различным направлениям применения всего где есть приставка нейро-. Приведем некоторые наиболее устоявшиеся определения нейрокомпьютера [1,2,4,6], принятые в конкретных научных областях:
Общие принципы построения нейронных сетей были заложены в начале второй половины 20 века в работах таких ученых, как: Д. Хебб, М. Минский, Ф. Розенблат. Первые нейросети состояли из одного слоя искусственных нейронов-персептронов. М. Минским были строго доказаны ряд теорем определяющих принципы функционирования нейронных сетей. Несмотря на многочисленные преимущества персептронов: линейность, простота реализации параллельных вычислений, оригинальный алгоритм обучения и т.п., М. Минским вместе с соавторами было показано, что реализованные на его основе однослойные нейронные сети не способны решить большое число разнообразных задач. Это вызвало некоторое ослабление темпов развития нейросетевых технологий в 60-е годы. В дальнейшем многие ограничения по использованию нейросетей были сняты с разработкой многослойных нейронных сетей, определение которых было впервые введено Ф.Розенблатом: "под многослойной нейронной сетью понимается такое свойство структуры преобразования, которое осуществляется стандартной разомкнутой нейронной сетью при топологическом, а не символьном описании".
Элементной базой нейровычислительных систем второго и третьего направлений (см. часть 1) являются соответственно заказные кристаллы (ASIC), встраиваемые микроконтроллеры (mС), процессоры общего назначения (GPP), программируемая логика (FPGA - ПЛИС), транспьютеры, цифровые сигнальные процессоры (DSP) и нейрочипы [1]. Причем использование, как тех, так и других, позволяет сегодня реализовывать нейровычислители, функционирующие в реальном масштабе времени, однако наибольшее использование при реализации нейровычислителей нашли ПЛИС, DSP и конечно нейрочипы.
Как отмечено в [2], транспьютеры (T414, T800, T9000) и в частности транспьютероподобные элементы являются важным для построения вычислительных систем с массовым параллелизмом, а их применение постепенно сдвигается в сторону коммутационных систем и сетей ЭВМ, хотя еще остаются примеры реализации на них слоев некоторых ЭВМ с массовым параллелизмом в виде решеток процессорных элементов. Подробнее о транспьютерных системах и их применении при построении вычислительных систем с массовым параллелизмом можно узнать в [3].
DSP (Digital Signal Processor-цифровой сигнальный процессор), обладая мощной вычислительной структурой, позволяют реализовать различные алгоритмы обработки информационных потоков. Сравнительно невысокая цена, а также развитые средства разработки программного обеспечения позволяют легко применять их при построении вычислительных систем с массовым параллелизмом.
Стремительный переход современных систем управления на цифровые стандарты, привел к необходимости обрабатывать с высокой скоростью достаточно большие объемы информации. Сложная обработка и фильтрация сигналов, например, распаковка сжатых аудио- и видеоданных, маршрутизация информационных потоков и т.п., требует применения достаточно производительных вычислительных систем. Подобные системы могут быть реализованы на различной элементной базе, но наибольшее распространение получили устройства с применением цифровых сигнальных процессоров и ПЛИС.
Программируемая логика способна работать на более высоких частотах, но поскольку управление реализовано аппаратно, то изменение алгоритмов работы требует перепрограммирования ИС. Низкая тактовая частота DSP пока ограничивает максимальную частоту обрабатываемого аналогового сигнала до уровня в 10-20 МГц, но программное управление позволяет достаточно легко изменять не только режимы обработки, но и функции, выполняемые DSP. Помимо обработки и фильтрации данных DSP могут осуществлять маршрутизацию цифровых потоков, выработку управляющих сигналов и даже формирование сигналов системных шин ISA, PCI и др.
Оценивать быстродействие тех или иных устройств на основе DSP и ПЛИС принято по времени выполнения типовых операций цифровой обработки сигналов (Фильтр Собеля, БПФ, преобразование Уолша-Адамара и др.). Однако оценки производительности нейровычислителей используют другие показатели:
Элементной базой нейровычислительных систем второго и третьего направлений (см. часть 1, часть 2) являются соответственно транспьютеры, цифровые сигнальные процессоры (DSP), ПЛИС и нейрочипы. Причем использование, как тех, так и других, позволяет сегодня реализовывать нейровычислители, функционирующие в реальном масштабе времени.
Элементной базой перспективных нейровычислителей являются нейрочипы. Их производство ведется во многих странах мира, причем большинство из них на сегодня ориентированны на закрытое использование (т.е. создавались для конкретных специализированных управляющих систем). Основные характеристики коммерчески доступных нейрочипов приведены в таблице 1 [1-8].
Прежде чем перейти рассмотрению наиболее интересных нейрочипов остановимся на их классификации.
По типу логики их можно разделить на цифровые, аналоговые и гибридные.
По типу реализации нейроалгоритмов: с полностью аппаратной реализаций и с программно-аппаратной реализацией (когда нейроалгоритмы хранятся в ПЗУ).
По характеру реализации нелинейных преобразований: на нейрочипы с жесткой структурой нейронов (аппаратно реализованных) и нейрочипы с настраиваемой структурой нейронов (перепрограммируемые).
По возможностям построения нейросетей: нейрочипы с жесткой и переменной нейросетевой структурой (т.е. нейрочипы в которых топология нейросетей реализована жестко или гибко).
Процессорные матрицы (систолические процессоры) - это чипы, обычно близкие к обычным RISC процессорам и объединяющее в своем составе некоторое число процессорных элементов, вся же остальная логика, как правило, должна быть реализована на базе периферийных схем.
В отдельный класс следует выделить так называемые нейросигнальные процессоры, ядро которых представляет собой типовой сигнальный процессор, а реализованная на кристалле дополнительная логика обеспечивает выполнение нейросетевых операций (например, дополнительный векторный процессор и т.п.).
Обобщенная классификация нейрочипов приведена на рис.1.
Рис.1. Обобщенная классификация нейрочипов.
Рассмотрев в предыдущих разделах основы нейроматематики и элеентную базу неровычислителей остановимся более подробнее на анализе структурно-функционального построения нейровычислительных.
Как было отмечено в первой части обзора, нейрокомпьютер - это вычислительная система с MSIMD архитектурой, т.е. с параллельными потоками одинаковых команд и множественным потоком данных. На сегодня можно выделить три основных направления развития вычислительных систем с массовым параллелизмом (ВСМП):
№ | Наименование направления | Описание |
1 | ВСМП на базе каскадного соединения универсальных SISD, SIMD, MISD микропроцессоров. | Элементная база - универсальные RISC или CISC процессоры: Intel, AMD, Sparc, Alpha, Power PC, MIPS и т.п. |
2 | На базе процессоров с распараллеливанием на аппаратном уровне. | Элементная база - DSP процессоры: TMS, ADSP, Motorola, ПЛИС. |
3 | ВСМП на специализированной элементной базе | Элементная база от специализированных однобитовых процессоров до нейрочипов. |
Как отмечено в первой части обзора: нейросетевые системы, реализованные на аппаратных платформах первого направления (пусть и мультипроцессорных) будем относить к нейроэмуляторам - т.е. системам реализующим типовые нейрооперации (взвешенное суммирование и нелинейное преобразование) на программном уровне. Нейросетевые системы, реализованные на аппаратных платформах второго и третьего направления в виде плат расширения стандартных вычислительных систем (1-го направления) - будем называть нейроускорителями и системы, реализованные на аппаратной платформе третьего направления в виде функционально законченных вычислительных устройств, следует относить к нейрокомпьютерам (все операции выполняются в нейросетевом логическом базисе). Нейроускорители можно разделить на два класса "виртуальные" (вставляемых в слот расширения стандартного РС) и "внешние" (соединяющиеся с управляющей Host ЭВМ по конкретному интерфейсу или шине) [2-5]. Рассотрим принципы реализации и основные структурно-функциональные особенности нейровычислителей второго и третьего типа на конкретных примерах.