- •Московский государственный технический университет
- •Аэрокосмический факультет
- •Нейропроцессоры
- •2006 Г.
- •Краткая историческая справка.
- •Поняте нейросети.
- •Особенности нейросети как вычислительной среды.
- •Применение процессоров общего назначения для построения нейросред.
- •Применение dsp для построения нейросред.
- •Dsp фирмы Analog Devices.
- •Быстрая выборка и исполнение команд.
- •Возможность работы в мультимикропроцессорных конфигурациях.
- •Мощные блоки вычислений.
- •Simd-режим выполнения операций.
- •Применение плис для построения нейросред.
- •Применение аналоговых и гибридных решений для построения нейросред.
- •Сбис etann 80170nx.
- •Сбис clnn32/clnn64 фирмы Bellcore.
- •Применение систолических процессоров для построения нейросред.
- •Некоторые замечания по разработке систол
- •Систолический процессор sand.
- •Систолический процессор cnaps
- •Применение нейросигнальных процессоров для построения нейросред. Нейросигнальный процессор nm6403.
- •Структура нейропроцессора nm6403.
- •Возможности создания многопроцессорных вычислителей на базе nm6403.
- •Реализация нейронной сети на нейропроцессоре nm6403.
- •Задачи, для решения которых используют нейросети.
- •Сравнение быстродействия различных решений.
- •Основные достоинства и недостатки различных решений
- •Литература:
Возможность работы в мультимикропроцессорных конфигурациях.
DSP архитектуры SHARC могут организовывать мультимикропроцессорные системы двумя способами: через содинения <<точка-точка>> (Data Flow Microprocessing) и кластерное соединение (Cluster Microprocessing).
Рис. 6: Соединение <<точка-точка>>
Рис. 7: Кластерное соединение
Вид конфигурации первого типа показан на рис.6. В этом случае обмен информацией идет через два имеющихся 8-ми битных двунаправленных порта связи (link ports). Такая система позволяет пропускать поток данных через все микропроцессоры, осуществляя последовательную обработку. Применительно к нейросетям, таким образом значительно ускорить обработку, распределив слои сети по отдельным узлам. После того, как текущий узел рассчитал выход <<своих>> слоев он может передать его на дальнейшую обработку следующему процессору и принять следующие входные данные. Каждый порт может передавать до 8-ми бит данных за каждый такт.
Такое разбиение на последовательные блоки значительно ускоряет работу сети при наименьшем росте стоимости. Этот тип мультимикропроцессорных систем наиболее прост для построения и наиболее компактен при размещении на плате.
Кластерная система показана на рис. 7. Эта система более гибка, чем предыдущая, так как наращивание числа DSP и внешней памяти возможно без существенного изменения алгоритмов. Кластерная система включает несколько DSP, подключенных к общим шинам, с поддержкой межпроцессорного доступа к памяти и обращения к общей разделяемой памяти.
В кластерной конфигурации узким местом является общая шина, так как только два DSP могут участвовать в передаче информации в течение каждого цикла - остальные DSP ожидают освобождения шины. Поэтому в кластерной конфигурации задействованы порты связи для передачи данных без блокирования общей шины.
Рис. 8: Примеры мультимикропроцессорных конфигураций.
Часто применяется кольцевая топология, которая является частным случаем соединения <<точка-точка>>, и смешанная топология <<расширяемый кластер>> (Expanding Cluster), вид которых показан на рис.7.
Мощные блоки вычислений.
Обрабатывающие элементы PEx и PEy (Processing Elements) производят независимую вычислительную обработку. Каждый PE содержит регистровый файл и три вычислительных блока: арифметико-логическое устройство, умножитель и устройство сдвига. Вычислительные инструкции для этих элементов могут выполняться за один цикл, вычисления могут проводиться с фиксированной и плавающей запятой.
Рис. 9: Структура обрабатывающего элемента.
Структура обрабатывающего элемента показана на рис.9. Данные для и их вычислительных блоков идут через регистровый файл. Регистровый файл подключен к шинам данных памяти программ и данных. Умножитель и АЛУ поддерживают следующие форматы обрабатываемых чисел:
32 битное число с плавающей запятой. Используется 23 битная мантисса, 8 бит порядка и бит знака. Оставшиеся 8 бит не используются и устанавливаются в ноль.
40 битное число с плавающей запятой. Это формат повышенной точности, содержащий дополнительные 8 бит мантиссы. То есть используется 31 бит мантиссы, 8 бит порядка и бит знака.
16 битное число с плавающей запятой. Используется 11 бит мантиссы, 4 бита экспоненты и бит знака. Устройство сдвига поддерживает команды, осуществляющие преобразования типов между 32 битными и 16 битными числами с плавающей запятой. Выполнение этих команд занимает один цикл.
32 битное число с фиксированной запятой. Числа с фиксированной запятой всегда занимают 32 бита.
Поддерживается два режима округления: округление к нулю, округление к ближайшему.
АЛУ поддерживает следующие арифметические и логические операции:
Сложение, вычитание, нахождение среднего для чисел с плавающей и фиксированной запятой
Двоичный логарифм, масштабирование, извлечение мантиссы для чисел с плавающей запятой
Логические операции 'И', 'ИЛИ', 'НЕ', 'исключающее ИЛИ'
Функции: 'abs', 'pass', 'min', 'max', 'clip', 'compare'
Преобразование форматов
x, [1/(x)]
Умножитель может принимать в качестве операндов 32 или 40 битные числа с плавающей запятой и выдавать результат в формате 32 или 40 битного числа с плавающей запятой или принимать операнды в формате 32 битного числа с фиксированной запятой и выдавать 80 битный результат. Умножитель может выполнять следующие инструкции:
Умножение чисел
Умножение с накоплением и возможным округлением чисел с фиксированной запятой
Округление регистра результата
Очистка регистра результата
Отличительной особенностью обрабатывающего элемента является возможность параллельной работы АЛУ, регистрового файла и умножителя (блок сдвига в параллельных операциях не участвует). Параллельные вычисление занимают только один цикл, хотя задействуют несколько блоков. Таким образом, за один цикл можно выполнить инструкцию АЛУ и умножителя и даже две инструкции АЛУ. Параллельная работа накладывает ограничения на то, в каких регистрах находятся операнды. Рис. показывает это ограничение.
Рис. 10: Закрепление операндов при параллельном выполнении инструкций.