Нейропроцессоры

Особенности нейросети как вычислительной среды. Возможность работы в мультимикропроцессорных конфигурациях. Применение нейросигнальных процессоров для построения нейросред. Возможности применения аналоговых и гибридных решений для построения нейросред.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 21.01.2015
Размер файла 1,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Этот класс вычислительных систем создавался с ориентацией на применение в области нейросетей. Основная идея построения систолических процессоров состоит использовании специальных обрабатывающих элементов, простых по своим функциям и структуре, эти элементы образуют процессорную матрицу, через которую идет поток данных, изменяемых каждым элементом. При этом может быть достигнута высокая степень параллельности обработки данных, если отработавший элемент сразу же считывает следующую порцию данных для обработки. Недостатком этих систем может быть названа узкая специализация обрабатывающих элементов, это ведет к тому, что систолическая матрица должна быть окружена большим количеством периферийных схем, реализующих дополнительную логику.

Систолическая архитектура вычислительного устройства является решением, агрессивно эксплуатирующим параллелизм "конвейерного" типа. Несмотря на принципиальную дороговизну решения (применение специализированных аппаратных решений), систолы являются одним из самых эффективных методов решения специализированных задач, так как часто обеспечивают на конкретной задаче быстродействие, недостижимое для большинства микропроцессорных архитектур. Значительное удешевление программируемых логических матриц сводит на нет экономическую составляющую вопроса применения и пробуждает интерес исследователей к применению систол в сложных вычислительных задачах.

Систолические системы являются очень специализированными вычислителями и производятся в основном под конкретную задачу. Фактически, задача построения систолического вычислителя сводится к постороению аппаратного конвейера, имеющего достаточно большое время получения результата (т.е. большое количество ступеней) но при этом сравнительно маленькое время между последовательной выдачей результатов, так как значительное количество промежуточных значений обрабатывается на разных ступенях конвейера.

Если провести параллель в физиологии, то систолы больше всего напоминают систему сосудов и сердце, которое постоянно посылает кровь во все артерии, сосуды и капилляры тела.

Систолы отличаются простой и регулярной структурой (по крайней мере описанные в специализированной литературе):

o Вычисления в систолах "ритмичны", последовательны, и происходят в своеобразной ячеисто-циклической манере;

o экономически выгодно построение в небольших партиях;

o с технической точки зрения эксплуатировать можно практически все доступные виды параллелизма;

o модульная структура систол позволяет достаточно просто расширять систолы;

o вычислительная эффективность систол определяется правильным построением конвейера, чаще всего наиболее эффективны простые структуры;

o систолы выгодно используют полосу пропускания каналов доступа к памяти, отличаясь предсказуемым обращением к памяти;

Базовые принципы постороения систолических архитектур:

1. Систола представляет собой сеть связанных вычислительных ячеек, обычно простых;

2. Каждая ячейка содержит в себе буферный входной регистр, защёлкивающий данные и вычислитель, оперирующий с содержимым этого регистра. Выход вычислителя может подаваться на входы других ячеек;

3. Операции в систоле производятся по типу конвейерной обработки;

4. Вычисления в систоле регулируются с помощью общего тактового сигнала;

5. Результатом правильного построения систолы должна быть простая, регулярная разводка с простой топологией связей;

Приведём схему типичной систолы:

Рис. 1 Систола, дающая на выходе скалярное произведение массивов чисел

Структура систолы имеет ряд недостатков:

Общая тактовая частота должна быть такой, чтобы за время одного такта успевали полностью отработать все вычислители, на данном рисунке умножитель явно отрабатывает за в несколько раз большее время, чем сумматор. На выходе сумматора изменение суммы из-за очередной поданной пары значений производится через 2 такта. При конвейеризации устройства умножителя, обычно представляя его как сумматоры, длина конвейера удлиняется (до 9-33 тактов), но частота следования тактового сигнала может быть повышена на порядок. Съём результата производится с выходов сумматора, естественно предусматривается сигнал для его обнуления перед загрузкой очередных массивов данных.

Рассмотрим крайне показательный пример систолы: умножение матриц.

Для примера рассмотрим умножение матриц 3 на 3:

Рис. 2 Умножение матриц 3 на 3

Обычно сквозная система связей не реализуется, поэтому результаты снимаются с выходов ячеек-умножителей с верхнего левого угла до нижнего правого угла (одновременно получаемые результаты показаны толстыми наклонными линиями, соединяющими ячейки).

Некоторые замечания по разработке систол

Процесс разработки ситолической структуры выглядит примерно так:

1. Разрабытывается алгоритм;

2. проектируется архитектура - поиск параллелизма (особенно конвейерного в алгоритме);

3. производится проекция алгоритмы на цифровые вычислительные схемы по следующему принципу:

4. Отладка и доказательство правильности фнуционирования схемы.

Систолический процессор SAND

Чип SAND (Simple Applicable Neural Device) разработан для применения в промышленных и исследовательских системах реального времени. Чип способен реализовывать нейросети с максимальным числом входов 512.

Принцип параллельной работы обрабатывающих элементов показан на рис.

Рис. 21 Параллельная работа обрабатывающих элементов

Вектор входных значений (vector of input activities) подается параллельно на все обрабатывающие элементы. Матрица весов (weight-matrix) разделена на m векторов-строк (line vector), каждый из которых обрабатывается собственным обрабатывающим элементом. В результате работы каждого элемента получается одна из m выходных величин. Таким образом, для слоя нейросети, состоящего из m нейронов, можно использовать m элементов, работающих в параллельном режиме, без обмена информацией.

Существенным недостатком этого решения является необходимость иметь m блоков памяти для матрицы весов (для каждого блока). Это приводит к большому числу компонентов и высокой стоимости схемы. Можно использовать один общий блок памяти, но тогда доступ к этому блоку должен происходить на крайне высокой скорости (в m раз больше, чем в предыдущем случае). Современные чипы памяти не способны обеспечить такие скорости.

Эффективное решение этой проблемы возможно, если количество весов равно количеству входных величин (длине входного вектора). При этом рассматривается не один входной вектор, а их последовательность. Входной вектор заменяется матрицей входных значений из m колонок.

Рис. 22 Пример обработки данных (m = 4 входных вектора)

На рис. 22 показан пример обработки данных для m = 4. Четыре обрабатывающих элемента производят обработку сразу четырех входных векторов. Значения, уже переданные в чип SAND показаны на рисунку заштрихованными. Четыре обрабатывающих элемента показаны кругом, пятиугольником, восьмиугольником и квадратом. За каждый цикл перемножаются два одинаково выделенных элемента. За каждый цикл из памяти необходимо передавать только один весовой коэффициент и одно входное значение (остальные значения уже выбирались ранее). Четыре цикла обрабатывающий элемент работает с одним и тем же весовым коэффициентом, каждый четвертый цикл вес обновляется. Таким образом на шине весов наблюдается непрерывный поток значений-весов. Входные значения передаются от одного обрабатывающего элемента к следующему через внутренние регистры. Каждый цикл происходит передача очередного входного значения, поэтому на входной шине также наблюдается непрерывный поток значений.

Рис. 23 Структура чипа SAND

Архитектура кристалла SAND показана на рис. 23. Он содержит четыре параллельных обрабатывающих элемента PE (Processing Elements), каждый из которых снабжен АЛУ и блоками отсечения (auto-cut). АЛУ используется для умножения векторов. Так как АЛУ накапливает входные значения, выходная шина имеет разрядность 40 бит (это ограничивает число входных нейронов до 512). Блок отсечения приводит снижает разрядность до 16 с контролем переполнения и потери точности. Окно, выбирающее 16 бит из 40 может быть смещено пользователем по его усмотрению.

Для некоторых задач необходим модуль постобработки (Post-Processing Min-Max Search), который проводит поиск минимума или максимума. Функция активации реализована в виде внешнего чипа, содержащего таблицу поиска. Некоторые типы нейросетей нуждаются не только в нелинейной функции активации, но и в линейной функции f(x) = x. Поэтому чип имеет два выхода: address - адрес в таблице поиска и data - линейное выходное значение. Для более быстрого вычисления блоки сложения и умножения размещены последовательно, образуя конвейер. Входные значения вначале умножаются на соответствующие веса, а затем складываются с предыдущими значениями.

Систолический процессор CNAPS

Данная архитектура разработана компанией Adaptive Solutions, она представляет собой SIMD мультипроцессор общего назначения, разработанный для нейроприложений. Так как чип представляет собой не узкоспециализированное устройство, а микропроцессор общего назначения, то становится возможным реализовать широкий спектр алгоритмов обучения и функционирования нейросети. Чип имеет действительно большую емкость памяти весов, позволяя хранить 2M 1 битных весов, или 256K 8 битных весов, или 128K 16 битных весов, поровну распределенных между 64 процессорами. Чипы могут образовывать мультимикропроцессорные системы различной конфигурации.

Базовым элементом системы CNAPS является чип N6400, который состоит из 64 обрабатывающих элементов, соединенных широковещательной шиной в режиме SIMD. Принципиальная структура системы CNAPS показана на рис.. Типовая система содержит управляющий чип (Sequencer) и четыре процессора N64000 (хотя есть системы с 8 процессорами).

Рис. 24 Структура системы CNAPS

Рис. 25 Обрабатывающий узел процессора N64000

Обрабатывающие элементы (Processing nodes, PN) разработаны как обычные цифровые сигнальные процессоры, включающие сумматор и умножитель, выполняющие арифметические операции над числами с фиксированной запятой. Структура обрабатывающего узла PN показана на рис. 25. Каждый PN содержит 4 Кбайта локальной статической памяти, которая используется для хранения весовых коэффициентов. Размер локальной памяти является узким местом для больших нейросетей, так как при нехватке памяти происходит обмен по широковещательной шине. Производительность падает катастрофически, когда 64 процессорных узла ведут обмен по общей шине.

Так как N64000 работает как микропроцессор общего назначения, то CNAPS может реализовать широкий класс нейросетевых алгоритмов. Для этой архитектуры создан инструментальный набор, который включает C-компилятор с надстройками, позволяющими получать код, использующий все преимущества параллельной архитектуры.

Применение нейросигнальных процессоров для построения нейросред. Нейросигнальный процессор NM6403

Появление нейросигнальных процессоров связано с успешным применением цифровых сигнальных процессоров. Возможности DSP не полностью соответствуют задачам, которые возникают при моделировании нейронных сетей. Нейросигнальные процессоры в настоящее время являются наиболее быстродействующим средством построения нейросистем.

Ядро нейросигнальных процессоров представляет собой типовой сигнальный процессор, а реализованная на кристалле дополнительная логика обеспечивает выполнение нейросетевых операций. Примером нейросигналного процессора является NM6403, реализующий архитектуру NeuroMatrix.

Структура нейропроцессора NM6403

Ядро nm6403 состоит из двух базовых блоков: 32-битного RISC процессора и 64 битного векторного процессора, обеспечивающего выполнение векторных операций над данными переменной разрядности. Имеются два идентичных программируемых интерфейса для работы с внешней памятью различного типа и два коммуникационных порта, аппаратно совместимых с портами DSP TMS320C4x, для построения многопроцессорных систем. Общая структура нейропроцессора показана на рис. refnm6403.

Рис. 12 Общая структура нейропроцессора NM6403

Нейропроцессор предназначен для обработки 32 разрядных скалярных данных и данных программируемой разрядности (с упаковкой в 64 разрядные слова). Основными узлами нейропроцессора являются:

· RISC core. Ядро нейропроцессора, выполняющее операции сдвига, арифметико-логические операции над 32 разрядными данными, формирующее адреса команд и данных, выполняющее управление работой нейропроцессора.

· VCP. Векторный сопроцессор, выполняющий арифметические и логические операции над 64 разрядными векторами упакованных данных переменной разрядности.

· LMI и GMI. Два идентичных блока программируемого интерфейса с локальной и глобальной 64 разрядными внешними шинами, к каждой из которых может быть подключен блок внешней памяти, содержащий до 231 32 разрядных ячеек. Обмен с внешней памятью может осуществляться 32 или 64 разрядными словами. Адресация осуществляется страничным способом, при котором на одну 15 разрядную адресную шину в режиме разделения времени выдаются как младшие, так и старшие разряды адреса. Причем старшие разряды адреса выдаются только при переходе к выборке новой страницы памяти.

· CP0 и CP1. Два идентичных коммуникационных порта, полностью совместимых с коммуникационным портом сигнального процессора TMS320C4x.

Нейропроцессор содержит пять внутренних шин:

· LOCAL ADDRESS BUS и GLOBAL ADDRESS BUS. Шины, служащие для пересылки адресов команд и данным, сформированных RISC-ядром и адресов данных, сформированных коммуникационными портами в режиме ПДП.

· OUTPUT DATA BUS. Шина, служащая для пересылки данных, подлежащих записи в локальную или глобальную внешнюю память из RISC-ядра, векторного сопроцессора и коммуникационных портов в блоки программируемого интерфейса.

· INPUT BUS #1 и INPUT BUS #2. Шины, предназначенные для пересылки данных и команд, считанных из локальной или глобальной внешней памяти, из блоков программируемого интерфейса в любой из основных узлов нейропроцессора. В программном режиме работы пересылка скалярных данных осуществляется только по шине INPUT BUS #2, а пересылка векторных данных - только по шине INPUT BUS #1. Пересылка данных в режиме ПДП и пересылка команд могут осуществляться по любой из этих шин.

Рис. 13 Ядро нейропроцессора NM6403

Структура ядра нейропроцессора представлена на рис. 13. Регистровое АЛУ (RALU) служит для оперативного хранения до восьми 32 разрядных скалярных данных и выполнения над ними операций сдвига, одно и двухоперандных арифметических и логических операций. При выполнении операций в RALU формируются признаки, которые используются при выполнении условных команд. Данные, хранящиеся в RALU, могут также использоваться в качестве адресов и смещений при выполнении команд обращения к памяти и команд управления.

RALU содержит:

· Регистры общего назначения GR0,..., GR7, которые образуют регистровый файл;

· ALU выполняющее за один такт одну из арифметических или логических операций над содержимым любых регистров общего назначения. Арифметические операции выполняются над данными, представленными в дополнительном коде;

· SHIFTER - устройство сдвига, выполняющее за один такт циклический, логический или арифметический сдвиг на любое число разрядов вправо или влево содержимого любого регистра общего назначения, выдаваемого на шину первого операнда ALU.

DAG1 - первый генератор адресов данных служит для формирования адресов данных при выполнении команд обращения к памяти и адресов переходов при выполнении команд управления. Кроме того, DAG1 обеспечивает оперативное хранение и модификацию до четырех 32 разрядных адресов данных, адресов переходов или смещений адресов переходов. DAG1 содержит:

· Адресные регистры AR0,..., AR3, образующие регистровый файл;

· AU1 - первое арифметическое устройство для выполнения арифметических операций при вычислении адреса или модификации одного из регистров AR0,..., AR3;

· MUX - мультиплексор для выдачи на одну из внутренних адресных шин нейропроцессора информации с выходов AU1 или с шины первого операнда AU1.

Второй генератор адресов данных DAG2 по своей структуре и выполняемым функциям аналогичен DAG1. Его специфика заключается в том, что один из его адресных регистров AR7(SP) дополнительно выполняет функции системного указателя стека.

Генератор адресов команд (PROGRAMM SEQUENCER), служит для формирования адреса очередной 64 разрядной команды или очередной пары 32 разрядных команд на линейных участках программы, когда вычисление адреса каждой следующей команды осуществляется путем инкремента адреса текущей команды.

Генератор адресов команд включает в себя следующие блоки:

· PC. Счетчик команд, предназначенный для хранения адреса текущей выбираемой из памяти 64 разрядной команды (или пары 32 разрядных команд) и вычисления адреса следующей команды (или пары 32 разрядных команд) путем увеличения его содержимого на два. Выходы PC подключены к шине OUTPUT BUS, что делает данный регистр программно доступным для чтения.

· MUX. Мультиплексор для выдачи на одну из внутренних адресных шин увеличенного на два содержимого счетчика команд PC или содержимого указателя стека AR7(SP).

Блок управления (CONTROL UNIT) выполняет предварительный анализ и дешифрацию команд, выбранных из внешней памяти, формирует сигналы управления всеми узлами нейропроцессора в процессе конвейерного выполнения команд, обрабатывает все запросы на внутренние и внешние прерывания, осуществляет арбитраж.

Рис. 14 Векторный сопроцессор

Векторный сопроцессор (VCP) является основным вычислительным узлом нейропроцессора особенно для нейросетевых приложений. VCP ориентирован на обработку данных произвольной разрядности от 1 до 64 разрядов, упакованных в 64 разрядные слова. Возможность выбора разрядности обрабатываемых данных является отличительной чертой нейропроцессора NM6403. Основными узлами VCP являются:

· OU. Операционное устройство, служащее для выполнения арифметических и логических операций над 64 разрядными словами упакованных данных [(X)/vec] = < X1,?, XK > и [(Y)/vec] = < Y1,?, YI >, которые подаются на входы X и Y, и матрицей весов WOPER, которая подается на входы W1,?,WJ в виде J 64 разрядных слов упакованных весовых коэффициентов [(W1)/vec] = < W11?W1I >,?, [(WJ)/vec] = < W11?WJI >. Результат каждой операции формируется на выходе R в виде 64 разрядного слова упакованных данных [(R)/vec] = < R1,?, RI >.

· RCS.Циклический сдвигатель вправо, пропускает данные без изменений или циклически сдвигаются вправо на один разряд. За один такт выполняется сдвиг одного слова как единого операнда, не зависимо от количества данных в слове.

· SU1, SU2.Узлы, аппаратно реализующие функцию насыщения, они служат для вычисления функции активации над 64 разрядными словами упакованных данных. Общий вид реализуемой функции активации показан на рис.

Рис. 15 Реализуемая функция активации

Функция активации применяется к входному вектору [(X)/vec] до выполнения операции.

· SWITCH 3? 2. Коммутатор 3 в 2 обеспечивает выбор двух источников векторных данных, поступающих на входы исполнительных узлов VCP. На вход каждого нелинейного преобразователя могут поступать следующие вектора:

o вектора данных с нулевыми значениями всех разрядов

o содержимое RAM с шины векторных данных VCP (VECTOR DATA BUS)

o содержимое AFIFO по цепи обратной связи VCP

o вектора данных из внешней памяти

· WBUF и WOPER. Память весовых коэффициентов, состоящая из двух матриц ячеек памяти, каждая из которых имеет емкость 32x64 бита и позволяющая хранить матрицу весрв в виде J 64 разрядных слов упакованных весовых коэффициентов. WOPER служит для хранения матрицы весов, используемых в операциях взвешенного суммирования в OU. WBUF служит для подкачки из WFIFO новой матрицы весов на фоне выполнения текущих операций взвешенного суммирования с использованием прежней матрицы весов, хранящейся в WOPER.

· WFIFO.Этот блок используется в качестве накопительного буфера в процессе подкачки матрицы весов в WBUF из внешней памяти. Емкость буфера составляет 32x64 бит, запись и чтение ведется 64 разрядными словами.

· AFIFO.Этот блок используется в качестве аккумулятора и служит для хранения 32x64 бит результата последней векторной операционной команды.

· RAM.Векторный регистр типа FIFO емкостью 32x64 бита. Отличие от обычного буфера FIFO состоит в том, что после чтения из RAM его содержимое не меняется.

Возможности создания многопроцессорных вычислителей на базе NM6403

Нейропроцессор NM6403 имеет следующие аппаратные средства, предназначенные для построения многопроцессорных систем на его основе:

· два байтовых коммуникационных порта CP0 и CP1, каждый из которых позволяет осуществить обмен между нейропроцессором и другой системой со скоростью 20 Мбайт/с.

· два программируемых интерфейса с 64 разрядными внешними шинами (локальной и глобальной), каждый из которых поддерживает три различных мультипроцессорных конфигурации внешней шины. Подключение к одной шине нескольких нейропроцессоров позволяет им обмениваться информацией через общую память, расположенную на этой же шине. Подключение к одной шине двух нейропроцессоров осуществляется без использования дополнительной управляющей аппаратуры. Скорость обмена данными через общую шину может достигать 400 Мбайт/с.

Каждая из двух внешних шин поддерживает как однопроцессорный, так и многопроцессорный режим работы, если к общей памяти подключены два процессора, то арбитраж для доступа к ней осуществляется между ними без использования внешнего контроллера.

Возможны три типа конфигурации внешней шины для многопроцессорного режима:

· Банк 0 - общий, банк 1 - общий (конфигурация 1, рис. ). Доступ к памяти в каждый момент времени разрешен лишь одному процессору.

Рис. 16 Конфигурация 1 шины

· Банк 0 - свой, банк 1 - общий (конфигурация 2, рис. ). Каждый процессор имеет свой банк памяти, к которому другой не имеет доступа. Общий банк доступен через буферы, обращение к нему идет поочередно.

Рис. 17 Конфигурация 2 шины

· Банк 0 - свой, банк 1 - чужой (конфигурация 3, рис. ). Каждый процессор имеет свой банк памяти, но существует возможность каждому процессору обратиться к чужому банку через буфер.

Рис. 18 Конфигурация 3 шины

Хотя возможности построения мультимикропроцессорных систем на базе NM6403 довольно ограничены (по сравнению с рассмотренным выше семейством цифровых сигнальных процессоров), но все же они являются вполне достаточными для создания нейроприложений повышенной производительности. Примеры мултимикропроцессорных структур приведены на рис.

Рис. 19 Линейная (кольцевая) и матричная мультимикропроцессорные структуры

Реализация нейронной сети на нейропроцессоре NM6403

Рис. 20 Модель слоя сети NM6403

Обработка реакции сети на входное воздействие происходит в нейропроцессоре последовательно, слой за слоем. На рис. 20 показана модель нейронной сети, эмулируемой NM6403. В общем случае каждый слой нейросети имеет N нейронных входов и состоит из M нейронов. При этом каждый нейрон выполняет взвешенное суммирование с учетом смещения данного нейрона:

Затем каждый нейрон вычисляет функцию насыщения от результата взвешенного суммирования:

OUTm = FQm(Ym).

Все входные данные, весовые коэффициенты, пороговые значения и результаты представляются в дополнительном коде.

Процессор NM6403 создавался как универсальное средство для реализации нейросред. При его использовании пользователь может программно задавать множество параметров нейронной сети:

· число слоев;

· число нейронов и нейронных входов в каждом слое;

· разрядность данных на каждом нейронном входе;

· разрядность каждого весового коэффициента;

· разрядность выходного значения каждого нейрона;

· параметр функции насыщения для каждого нейрона.

Для эмуляции нейронной сети каждый ее слой разбивается на последовательно обрабатываемые фрагменты. Данное разбиение осуществляется следующим образом. Множество нейронных входов слоя разбивается на группы входов так, чтобы суммарная разрядность данных, подаваемых на каждую группу входов, была равна разрядности нейропроцессора - 64. Множество нейронов слоя разбивается на группы нейронов так, чтобы суммарная разрядность результатов взвешенного суммирования для каждой группы также была равна 64. Таким образом выделяются фрагменты сети двух типов с разным функциональным назначением: первый тип фрагментов осуществляет взвешенное суммирование, а второй - вычисление функции активации.

Эмуляция слоя нейронной сети на нейропроцессоре NM6403 состоит из последовательно выполняемых макроопераций, каждая из которых эмулирует один фрагмент слоя. Число выполняемых макроопераций равно числу фрагментов в слое. Обработка данных ведется нейропроцессором в пакетном режиме - по T наборов входных данных в каждом пакете. Пакет данных, подаваемых на группу нейронных входов слоя нейронной сети представляет собой вектор Xn = < X1,?, Xn >, каждый элемент которого является вектором упакованных данных. Разрядность каждой из упакованных величин может принимать любое четное значение в диапазоне от 2 до 64, то есть количество элементов вектора может быть любым от 1 до 32. Ограничением является то, что суммарная разрядность всех данных, упакованных в одном векторе, должна быть равна 64.

При эмуляции фрагмента первого типа нейропроцессор выполняет следующую операцию для каждого набора входных данных: Yn = Yn-1+XnЧWn. В качестве Y0 выступает смещение V0.

64 разрядные выходные векторы содержат упакованные данные с разрядностью от Nmin до 64. Значение минимальной разрядности каждого элемента в этих векторах зависит от суммарного числа нейронных входов в слое и вытекает из необходимости избегать арифметического переполнения при сложении чисел:

Выполнение операции взвешенного суммирования над всеми векторами задается одной командой <<vsum>> нейропроцессора. Выполнение этой команды зависит от количества значений в обрабатываемом векторе, за один такт обрабатывается один компонент вектора.

При эмуляции фрагмента второго типа для группы нейронов процессор формирует вектор Xn = < OUT1,?, OUTm >, каждый элемент которого является вектором упакованных данных. Компонентами вектора OUTi являются результаты вычисления функции насыщения над элементом Yi вектора Y:

OUTi,j = FQm(Yi).

Вычисление функций насыщения для всех элементов всех векторов задается одной командой <<activate>> нейропроцессора. Время выполнения этой команды также составляет один такт на компонент.

Ориентация нейропроцессоров на создание нейросред значительно упрощает создание высокопроизводительных нейросетевых приложений. Разработчики нейропроцессоров создают библиотеки алгоритмов для наиболее распространенных типов нейросетей, что делает их особенно привлекательными для построения нейросред.

Задачи, для решения которых используют нейросети

Нейронные сети используются для решения разнообразных задач во многих отраслях человеческой деятельности, вот некоторые из них:

· Экономика и бизнес. Здесь нейросети применяются для предсказания рынков, оценки риска невозврата кредитов, предсказания банкротств, оценки стоимости недвижимости, автоматического рейтингования, оптимизации товарных и денежных потоков, автоматического считывания чеков и форм. Нейросети в этой области реализуются в основном в виде программных комплексов для рабочих станций на базе процессоров общего назначения. Но объем данных, подлежащий анализу очень велик, а ценность, которую представляют результаты анализа, значительна, поэтому часто используются специальные нейроускорители, выполненные в виде модулей расширения.

· Медицина. В этой области нейрокомпьютеры выполняют обработку медицинских изображений, мониторинг состояния пациентов, диагностику, факторный анализ эффективности лечения, очистку показаний приборов от шумов. В медицине есть необходимость в построении специфических нейровычислителей, мобильных систем, сверхминиатюрных персональных нейродатчиков.

· Авиация. С помощью нейросистем производится автоматическое пилотирование, распознавание сигналов радаров, адаптивное пилотирование сильно поврежденного самолета. Условия, в которых работают авиаприборы, накладывают сильные ограничения на их размер, быстродействие, помехозащищенность. Это создает благоприятные условия для внедрения современных аппаратных решений для нейросред.

· Связь. В области средств связи нейроалгоритмы осуществляют сжатие видео-информации, быстрое кодирование/декодирование, оптимизацию сотовых сетей и схем маршрутизации пакетов. Особые требования в этой сфере предъявляются к возможности создания автономных, мобильных решений, допускающих встраивание в переносные видеокамеры, сотовые телефоны и др.

· Безопасность и охранные системы. В этой области уже довольно эффективно действуют системы идентификации личности, распознавания голоса, лиц в толпе, распознавания автомобильных номеров, анализа аэрокосмических снимков, мониторинга информационных потоков, обнаружения подделок.

Автоматизация производства. В этой области нейрокомпьютеры могут использоваться для оптимизации режимов производственного процесса, комплексной диагностики качества продукции (с помощью ультразвука, оптики, гамма-излучения), мониторинга и визуализации многомерной диспетчерской информации, предупреждения аварийных ситуаций, в робототехнике. Это наиболее перспективное направление для применения нейросистем, требующее серийных решений, достаточно гибких для разнородных производств

Вывод

Сравнение быстродействия различных решений

Сравнительная оценка производительности аппаратуры для реализации нейросред затруднительна. Это связано с тем, что разные архитектуры имеют очень большие различия в разрядности входных и выходных величин, разрядности весовых коэффициентов, топологии реализуемой нейросети, виде обрабатываемых величин (с плавающей или фиксированной запятой) и многих других важных параметрах. Кроме того, нет общепринятых оценок производительности, которые давались бы любым производителем. Для каждого чипа есть только некоторые показатели производительности, которые считаются разработчиками наиболее значимыми.

Тем не менее, для области нейросетевой обработки данных характерны следующие показатели быстродействия:

· CPS (connections per second). Число соединений (умножений с накоплением) в секунду.

· CPSPW (CPS per weight). CPPSPW = CPS/NW, где NW - число синапсов в нейроне. Фактически эта величина показывает число подсчетов выходов нейронов (количиство вычислений функций активации) в секунду.

· CPPS. CPPS = CPSЧBWЧBS, где BW, BS - разрядность весов и синапсов соответственно. Этот показатель учитывает разрядность и поэтому более правдоподобен для сравнения разнородных архитектурных решений.

· MMAC (multiplications and additions per second). Этот параметр обычно указывается для средств обработки сигналов (цифровых сигнальных процессоров и ПЛИС). Он не полностью соответствует показателю CPS.

· Время обработки. Этот показатель равен промежутку времени между поступлением входного сигнала и получением выходного сигнала нейросети.

Сравнение показателей производительности рассметренных в данной работе аппаратных решений представлено в талице.

Таблица 2

Производительности нейроархитектур

Название

Производительность

Описание

Intel 80170NX ETANN

2G MAC

Аналоговая схема, 6 бит веса

Bellcore CLNN32

100M CUPS, T = 3 мкс

Гибридная схема, 4 бит веса

НТЦ <<Модуль>> NM6403

1.2G MAC

Для 32 бит данных, нейросигнальнный процессор

Datafactory SAND

200M CPS

Систолический процессор

Datafactory MiND

800M CPS

Плата ускорителя с 4 чипами SAND

Adaptive Solutions CNAPS

2.56G MAC, 293M CUPS

Систолический процессор с 64 внутренними процессорами

Adaptive Solutions CNAPS Server II card

10.24G MAC

Карта ускорителя с 4 чипами CNAPS

Скан Инжиниринг Телеком XDSP-680

220M MAC

4 FPGA-чипа

Analog Devices ADSP-2106x

700M FLOPS

К сожалению, приведенные данные не позволяют однозначно судить о быстродействии различных нейроустройств, хотя и позволяют сделать некоторые выводы. Например, виден линейный рост производительности систем на основе систолических процессоров с увеличением числа таких процессоров (этот факт с очевидностью следует из логики функционирования систолических процессоров). Но надо учитывать, что также линейно растет задержка между получением входных данных и выдачей выходного сигнала нейросети.

Аналоговая микросхема Intel 80170NX ETANN показывает довольно высокое быстродействие, но из таблицы видно (особенно если учесть малую разрядность обрабатываемых данных), что другие решения имеют более высокую производительность. Для однобитовых данных нейросигнальный процессор NM6403 имеет производительность 11.52G MAC.

Для цифровых сигнальных процессоров и ПЛИС-систем оценка затруднена, так как нет конкретных данных о производительности нейроалгоритмов на устройствах этого типа. В современных DSP-процессорах из-за возможности одновременного выполнения нескольких инструкций о производительности можно говорить лишь в применении к конкретному алгоритму.

Для DSP-чипов характерна оценка производительности по времени выполнения стандартных для обработки сигналов преобразований. В таблице представлены такие оценки для процессоров общего назначения, DSP компании Texas Instruments и нейросигнального процессора NM6403.

Таблица 3

Выполнение стандартных преобразований

Преобразование

Intel Pentium II 300 МГц

Intel PentiumMMX 200 МГц

TI TMS320C40 50 Мгц

НТЦ <<Модуль>> NM6403 40 Мгц

Фильтр Собеля (размер кадра 384X288 байт), кадров/с

-

21

6.8

68

Быстрое преобразование Фурье (256 точек, 32 разряда), мкс

200

-

464

102

Преобразование Уолша-Адамара (21 шаг, вх. данные 5 бит), с

2.58

2.80

-

0.45

Данные таблицы 3 показывают, что специализированные процессоры могут составить конкуренцию распространенным процессорам общего назначения при гораздо более экономичных параметрах. Но если учесть темпы роста производительности процессоров общего назначения, то очевидно, что за счет своих вычислительных возможностей рабочие станцие могут эффективно реализовывать нейроалгоритмы. Можно сделать вывод, что необходимость в платах нейроускорителей в скором времени отпадет, хотя специализированные нейровычислители будут превосходить в производительности платформы общего назначения.

Основные достоинства и недостатки различных решений

Достоинства

Недостатки

Процессоры общего назначения

· Гибкость

· Наличие высокоуровневых библиотек и средств реализации

· Совместимость с другими процессорами

· Большие объемы памяти

· Высокая разрядность

· Высокая стоимость систем

· Архитектурная избыточность

· Большое энергопотребление и тепловыделение

· Необходимость множества периферийных схем

· Сложность построения многопроцессорных систем

Цифровые сигнальные процессоры

· Гибкость

· Простота построения систем

· Наличие стандартных библиотек

· Отсутствие совместимости с чипами других семейств

· Отсутствие готовых решений

· Сложность построения мультимикропроцессорных систем

Нейросигнальные процессоры

Все достоинства DSP.

· Высокая производительность для нейроалгоритмов

· Наличие стандартных решений

· Отсутствие совместимости

· Ориентация на конкретный вид нейросети

Достоинства

Недостатки

Систолические процессоры

· Высокая производительность для нейроалгоритмов

· Наличие стандартных решений

· Простота масштабирования системы

· Отсутствие совместимости

· Увеличение задержки с ростом числа процессоров в системе

· Отсутствие гибкости

ПЛИС-системы

· Аппаратная реализация нейроалгоритмов

· Наличие высокоуровневых средств построения систем

· Совместимость на уровне языка описания схемы

· Простота реализации системы

· Возможность модификации архитектуры

· Неполное использование ресурсов чипа

· Огранниченность ресурсов чипа

Реализация нейросети на заказном кристалле

· Наивысшая производительность

· Ориентация на конкретную систему

· Отсутствие совместимости

· Высокая стоимость реализации

· Большое время реализации

Литература

1. Проблемы построения и обучения нейронных сетей / под ред. А.И.Галушкина и В.А.Шахнова. М. Изд-во Машиностроение. Библиотечка журнала Информационные технологии №1. 1999. 105 с.

2. А.И.Галушкин Некоторые исторические аспекты развития элементной базы вычислительных систем с массовым параллелизмом (80- и 90- годы) // Нейрокомпьютер, №1. 2000. С. 68-82.

3. А.Н.Горбань, Д.А.Россиев Нейронные сети на персональном компьютере. - Новосибирск: Наука. Сибирская издательская фирма РАН, 1996. 276 с.

4. Э.Ю. Кирсанов Цифровые нейрокомпьютеры: Архитектура и схемотехника / Под ред. А.И.Галушкина. Казань: Казанский Гос. У-т. 1995. 131 с.

5. А.И. Власов. Аппаратная реализация нейровычислительных управляющих систем //Приборы и системы управления. 1999, №2, С. 61-65.

6. Роберт Хехт-Нильсен Нейрокомпьютинг: история, состояние, перспективы // Открытые системы. N4. 1998.

7. А.И. Власов Нейросетевая реализация микропроцессорных систем активной акусто- и виброзащиты// Нейрокомпьютеры:разработка и применение, №1, 2000. С. 40-44.

8. http://neurnews.iu4.bmstu.ruu.

9. http://www.module.ru.

10. П.А. Шевченко, Д.В.Фомин, В.М. Черников, П.Е. Виксне Применение микропроцессора NM6403 для эмуляции нейронных сетей // Нейрокомпьютеры и их применение 99. М.: ИПУ РАН, 1999. С. 81-90.

11. C.Lindsey, T.Lindblat. Survey of neural network hardware. SPIE. Vol 2492. PP.1194-1205.

12. K.Tahir Shah Automata, neural networks and parallel machines: some emerging principles. World Scientific. 1999.

Размещено на Allbest.ru

...

Подобные документы

  • Рассмотрение способов применения и основных понятий нейронных сетей. Проектирование функциональной структуры автоматизированной системы построения нейросети обратного распространения ошибки, ее классов и интерфейсов. Описание периода "бета тестирования".

    дипломная работа [3,0 M], добавлен 02.03.2010

  • Особенности создания параллельных вычислительных систем. Алгоритм построения нитей для графа и уплотнения загрузки процессоров. Построение матрицы следования. Подсчет времени начала и конца работы нити. Логические функции взаимодействия между дугами.

    курсовая работа [1012,4 K], добавлен 11.02.2016

  • Принцип работы нейросетей и модели синтеза. Ключевые моменты проблемы распознавания речи. Система распознавания речи как самообучающаяся система. Описание системы: ввод звука, наложение первичных признаков на вход нейросети, модель и обучение нейросети.

    курсовая работа [215,2 K], добавлен 19.10.2010

  • Процессоры AMD Athlon 64X2, их параметры и характеристики, возможности разгона. Двухъядерные процессоры Intel и их особенности, совместимость новых процессоров с материнскими платами. Методика, последовательность и результаты тестирования процессоров.

    статья [31,6 K], добавлен 03.05.2010

  • Использование библиотеки готовых компонентов как основы процесса построения моделей организационных систем. Характеристика качественных методов принятия решений. Применение порядковой классификации в процессе UFO-моделирования систем телемеханики.

    магистерская работа [732,7 K], добавлен 26.04.2011

  • Исследование функциональных возможностей табличных процессоров в информационном обеспечении управления. Структура информационной системы на предприятии. Понятие электронных таблиц и табличных процессоров. Тенденции развития табличных процессоров.

    курсовая работа [45,4 K], добавлен 15.03.2012

  • История Intel, выпуск оперативной памяти для компьютера. Главные особенности построения бренда компании. Модели процессоров, выпускаемые корпорацией Intel. Виды подложек, используемых при производстве микросхем. Краткая история процессоров Pentium.

    реферат [28,8 K], добавлен 13.02.2013

  • Современные технологии принятия решений. Система управления предприятием и прибылью. Бизнес версия программного комплекса "Касатка" для высших учебных заведений, ее основная концепция, назначение и возможности. Принципы построения работы с программой.

    презентация [71,4 K], добавлен 03.11.2011

  • Микропроцессорные системы обработки данных. Специальные алгоритмы-планировщики для распределения операторов параллельных алгоритмов по процессорам вычислительной сети. Алгоритм построения и уплотнения нитей. Интерфейс программы, результаты работы.

    курсовая работа [1,8 M], добавлен 22.02.2011

  • Применение и развитие измерительной техники. Сущность, значение и классификация информационных измерительных систем, их функции и признаки. Характеристика общих принципов их построения и использования. Основные этапы создания измерительных систем.

    реферат [25,9 K], добавлен 19.02.2011

  • Разработка вычислительной системы, предназначенной для реализации заданного алгоритма обработки входных цифровых данных. Особенности ее построения на базе процессора x86 (К1810) в минимальном режиме. Описание микропроцессорного комплекта серии К1810.

    курсовая работа [318,4 K], добавлен 15.08.2012

  • Определение назначения и области применения электронных таблиц и табличных процессоров. Особенности функционирования конкретных табличных процессоров: OpenOffice.org Calc, Microsoft Excel 2007, Zoho Sheet, EditGrid: интерфейс, вкладки, выпадающие списки.

    дипломная работа [3,0 M], добавлен 01.01.2011

  • История и перспективы развития производства процессоров компьютеров. Основы работы центрального процессора. Характеристика многоядерных процессоров. Ведущие производители: Intel и AMD, их планы по выпуску новых процессоров. Советы по выбору CPU.

    курсовая работа [2,8 M], добавлен 03.11.2011

  • Анализ моделей и средств построения игровой компьютерной среды предметной области. Разработка алгоритмов построения игровой компьютерной среды. Отладка и экспериментальное тестирование компьютерной игры "Представление знаний в информационных системах".

    дипломная работа [2,9 M], добавлен 12.08.2017

  • Назначение, функции и структура электронных таблиц Microsoft Excel. Методика выполнения расчетов с использованием стандартных функций и построения диаграмм. Пример построения таблицы и диаграммы о размере выплат заработной платы сотрудникам предприятия.

    контрольная работа [1,5 M], добавлен 24.07.2010

  • Понятие и направления анализа акций. Изучение принципов работы нейросети с использованием программы "Нейросимулятор". Создание оптимально работающей нейросети для прогнозирования котировок акций, этапы данного процесса и оценка полученных результатов.

    презентация [42,3 K], добавлен 19.08.2013

  • Характеристика понятия "процессор". История развития процессоров, описание их параметров и устройства, особенности работы. Что такое быстродействие и эффективность работы процессора. Тонкости сборки и вспомогательные устройства. Описание кэш-памяти.

    практическая работа [4,3 M], добавлен 17.01.2011

  • Исследование возможности автоматизации забора и анализа статистических данных из различных систем. Разработка удобного и масштабируемого программного продукта для автоматизации построения маркетинговых отчетов. Защита внутрикорпоративной информации.

    дипломная работа [3,0 M], добавлен 28.01.2014

  • Анализ существующих решений для построения сети. Настройка и установка дополнительных программ. Сравнение платформ программного маршрутизатора. Установка DHCP и DNS серверов. Выбор монтажного оборудования. Создание и настройка Active Directory.

    дипломная работа [4,8 M], добавлен 24.03.2015

  • Составляющие информационных систем: определение, соотношение, изменчивость, выбор подхода к проектированию. Принципы построения корпоративных систем. Обзор технических решений для построения локальных вычислительных систем. Схемы информационных потоков.

    курсовая работа [571,6 K], добавлен 16.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.