Однокристальный цифровой нейропроцессор с переменной разрядностью операндов

Источник: "ПРИБОРОСТРОЕНИЕ". Тематический выпуск. Аппаратно-программные комплексы поддержки нейровычислений 7/1996.

Авторы: Виксне П.Е, Фомин Д.В, Черников В.М

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

  1. Введение
  2. Архитектура и система команд нейрочипа
  3. Aрхитектурныe основы построения нейросистем на базе нейрочипа
  4. Сравнительные характеристики архитектур нейрочипа, TMS320C40 и Intel P55c
  5. Заключение
  6. Литература

1. Введение

Анализ современного состояния разработок в области аппаратной поддержки нейровычислений [1], [2] выявил три направления деятельности - создание аналоговых, цифровых и аналогово-цифровых нейроускорителей. Исходя из реальных возможностей отечественной микроэлектроники, опыта предыдущих работ, удобства работы для будущих пользователей, а также имеющихся средств проектирования, в НТЦ "Модуль" был выбран второй путь создания нейропроцессора, а именно полностью цифрового программируемого процессора - нейрочипа.

Выбор и обоснование принципов построения нейрочипа

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


2. Архитектура и система команд нейрочипа

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

a) Каждый слой нейросети (рис.1) выполняет следующую функцию:

тСМЙЖХЪ ЯКНЪ
где:
Zi - выходной сигнал i-го нейрона (i-й нейрон),
Xj - j-й входной сигнал слоя (j-й синапс),
Ui - смещение i-го нейрона,
Wij - весовой коэффициент j-го входа i-го нейрона,
Yi - сумма взвешенных входов i-го нейрона,
f - функция активации,
N - количество входных сигналов слоя,
M- количество нейронов в слое.
б) Операнды Zi, Xj, Ui и Wij представляются в прямом и дополнительном кодах и могут иметь произвольную разрядность.

в) Количество слоев в нейросети, а также количество нейронов и сигналов в каждом слое могут быть произвольными.

г) Между входами и выходами отдельных слоев нейросети допускаются любые межсоединения. То есть выходной сигнал k-го слоя может поступать на один из входов i-го слоя, где k=1,...,K, i=1,...,K, а K - число слоев нейросети.

яКНИ МЕИПНЯЕРХ

Слой нейросети

тСМЙЖХХ ЮЙРХБЮЖХХ

Простейшие функции активации "f":
a) пороговая, б) насыщения

Рис.1

В основу архитектуры нейрочипа положен оригинальный метод выполнения его базовых операций с помощью операционного узла (OU), представляющего собой однородную вычислительную среду которая позволяет производить операции над синапсами и весами произвольной разрядности (от 1 до 64 бит). Следует отметить, что принцип переменной разрядности операндов применен в нейропроцессоре фирмы Philips L-neuro 1.0 [3], однако этот нейропроцессор использует представление данных в последовательном коде., что значительно снижает производительность, кроме того, разрядность обрабатываемых данных может выбираться только из фиксированного набора 1, 2, 4, 8, 16. Функция активации L-neuro 1.0 реализована вне чипа, что тоже отрицательно сказывается на производительности. Производительность в процессе вычислений L-neuro 1.0 чипа - 100 MCPS для 1 битного варианта и 26 MCPS для 8 битного варианта.

Взвешивание и сложение синапсов

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

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

Работа OU в данном режиме иллюстрируется ниже на примере реализации функций фрагмента нейросети, включающего 2 нейрона и 3 синапса (рис.2), на OU с m=19 (суммарная разрядность выходов) и n=12 (суммарная разрядность входов). В данном примере операнды имеют следующие разрядности: X1-3, X2-4, X3-5, U1-10, U2-9, Y1-10, Y2-9, W1-5, W12-4, W13-3, W21-4, W22-3, W23-2.

тПЮЦЛЕМРШ ЯКНЪ

Рис.2 Фрагменты слоя нейросети.

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

Такая настройка как бы разбивает OU на РхR подматриц (рис.3), где Р - количество нейронов, а R - количество синапсов в реализуемом фрагменте нейросети. Для рассматриваемого примера Р=2, R=З. Будем считать, что подматрица с координатами (p,r) соответствует р-му нейрону (р=1,...,Р) и r-му синапсу (г=1,...,R). Тогда каждая подматрица с координатами (р,1) вычисляет функцию X1Wpl+Up, а каждая подматрица с координатами (р,t) формирует произведение XtWpt и прибавляет к нему результат, полученный на выходе подматрицы с координатами (р,t-1), где t=2,...,R.

Таким образом, на выходе подматрицы (р,R) формируется результат операции.
тНПЛСКЮ

пЮГАХЕМХЕ ЛЮРПХЖШ

Рис.3 Разбиение матрицы на подматрицы

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

Таким образом, количество нейронов, одновременно обслуживаемых OU, зависит от числа синапсов, их разрядности и значений весовых коэффициентов. Суммарная разрядность Yp не должна превышать значения m. Количество синапсов, одновременно обрабатываемых OU, разрядностью синапсов. Суммарная разрядность Х не должна превышать значения n. Настройка нейрочипа на работу с конкретными величинами разрядности синапсов и весов производится путем загрузки в специальные регистры управляющей информации как перед началом работы, так и в процессе вычислений. Это позволяет динамически изменять разрядность обрабатываемых данных, а следовательно скорость и точность вычислений от слоя к слою, от нейрона к нейрону, от синапса к синапсу.

В случае работы нейрочипа с одинаковой разрядностью синапсов и весов которая составляет 8 бит, за один процессорный такт OU производит 24 операции умножения с накоплением, что при частоте тактовых импульсов 30 MHz составит 720 MCPS (миллионов соединений в секунду). Другими словами, за один процессорный такт производится вычисление участка нейросети, состоящего из 3 нейронов по 8 синапсов каждый, разрядности нейронов и синапсов составляют при этом один байт.

Структура нейрочипа

Общая структура нейрочипа приведена на рис.4.


яРПСЙРСПЮ МЕИПНВХОЮ

Рис.4 Общая структура нейрочипа

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

Основные регистры

В нейропроцессоре имеется следующий набор 32-разрядных регистров:

Система команд нейрочипа

Нейрочип работает с командами фиксированной длины по 32 разряда, которые можно разделить на 4 основные группы: команды скалярного процессора по обработке операндов, команды векторного процессора, команды управления и команды пересылки.

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

Система прерываний.

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


3. Aрхитектурныe основы построения нейросистем на базе нейрочипа

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


2-МЮОПЮБКЕММШИ ЙНМБЕИЕП

а)

2-ЛЕПМЮЪ ПЕЬЕРЙЮ

б)

2-МЮОПЮБКЕММНЕ ЙНКЭЖН
в)

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

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

Примеры такого подхода можно увидеть на рис.6:


дЕПЕБН

а)

3-ЛЕПМЮЪ ПЕЬЕРЙЮ

б)

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

Используемый интерфейс с памятью определяет 3 основные группы архитектур систем на основе нейрочипа (см. рис.7):


яНБЛЕЯРМН ХЯОНКЭГСЕЛЮЪ ОЮЛЪРЭ

а)

пЮЯОПЕДЕКЕММЮЪ ОЮЛЪРЭ
б)

яЛЕЬЮММЮЪ ОЮЛЪРЭ
в)

Рис.7. Сети с совместно используемой/распределенной памятью:
а) aрхитектура с совместно используемой памятью,
б) архитектура с распределенной памятью,
в) смешанная архитектура

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

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


4. Сравнительные характеристики архитектур нейрочипа, TMS320C40 и Intel P55c

Для сравнения были взяты коммерчески доступные процессоры, имеющие в своем составе операционные устройства, способные выполнять несколько сложений (TMS320C4x) [4] и умножений с накоплением (Intel P55C) [5] за один такт.

Архитектура нейрочипа нацелена на определенный класс задач матрично-матричных операций и дает на них значительное ускорение (до сорока раз, в тактах). На задачах класса вектор-матрица не достигается эффективное использование всех функциональных возможностей операционного узла векторного процессора, однако и эти задачи выполняются на нейрочипе в 4-8 раз быстрее чем на процессорах сравнения. И, наконец, на задачах векторно-векторных вычислений нейрочип дает результаты сравнимые с результатами TMS320C40 и худшие по сравнению с Intel P55C.
  1. Матрично-матричные операции (в тактах):
  2. Векторно-матричные операции (в тактах)
  3. Векторно-векторные операции (в тактах):
Если исходить из предположения, что основная операция для нейронных сетей это умножение вектора на матрицу получатся, что ускорение на данном классе задач достигает 4-6 раз. Для задач обработки изображений основной операцией является операция свертки и хорошие показатели на операции свертки дают основания полагать, что ускорение составит 3-10 раз, в зависимости от размера маски.


5. Заключение

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

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


6. Литература

  1. Jan N.H Heemskerk. Neurocomputers for Brain-Style Processing. Design, Implementation and Application. PhD thesis. Unit of Experimental and Psychology Leiden University, The Netherlands. 1995
  2. Clark S. Lindsey, Thomas Lindblad. Survey of neural network hardware. Physics Dept.-Frescati, Royal Institute of Technology. Sweden. SPIE Vol. 2492. May 1995.
  3. Mauduit 1992: N. Mauduit, M. Duranton, J. Gobert, "L-Neuro 1.0: A Piece of Hardware LEGO for Building Neural Network Systems", IEEE Trans. of Neural Networks, vol.3, no.3, pp.414-422, May 1992.
  4. Texas Instruments. TMS320C4x User's Guide. 1993.
  5. Intel Corporation. MMX-Technology Overview.