Найти тему
Мария Опарышева

Цифровое биологически правдоподобное внедрение бинаризированных нейронных сетей (Часть 6)

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

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

Для этого мы следим за новаторской работой Чжао и др., которая показывает, что предусилитель чувств может быть обогащен любой логической операцией. В нашем случае мы можем добавить четыре дополнительных транзистора в разрядные ветви предзарядного усилителя ощущений. Эти транзисторы могут предотвращать разряд и позволяют реализовать операцию XNOR между входным напряжением X и значением, сохраненным в дополнительных устройствах OxRAM, за одну операцию.

На основе массива базовой памяти с PCSA, обогащённого XNOR, мы спроектировали всю систему, реализующую Бинаризованную Нейронную Сеть.

Она навеяна чисто КМОП-архитектурой, адаптированной к ограничениям OxRAM.

Проект состоит из повторения базовых ячеек, организованных в матрице из N по M ячеек. Эти базовые ячейки включают блок памяти OxRAM размером n × n с PCSA, обогащенным XNOR, и логикой POPCOUNT. Вся система, нацеленная на вычисление активации нейронов, обладает определенной реконфигурируемостью для адаптации к различным топологиям нейронных сетей: она может быть использована как в "параллельной к последовательной", так и в "последовательной к параллельной" конфигурации.

https://pixabay.com/ru/photos/%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-%D0%B2-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5-5028024/
https://pixabay.com/ru/photos/%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-%D0%B2-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5-5028024/
  • Параллельно с последовательной конфигурацией можно работать со слоями, содержащими до n × N входных нейронов и до n × M выходных нейронов.

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

Дополнительная логика, называемая "деревом попконтов" и активируемая только в данной конфигурации, вычисляет полную операцию с значением POPCOUNT над столбцом, последовательно добавляя пятиразрядные частичные значения POPCOUNT. Значение активации нейрона получается путем вычитания полного значения POPCOUNT внизу столбца из порогового значения, хранящегося в отдельном массиве памяти; подписанный бит результата дает значение активации. При следующем цикле тактовых импульсов выбираются следующие строки в массивах памяти OxRAM и вычисляются активации следующих M нейронов.

  • Последовательная и параллельная конфигурация (не представленная), напротив, может быть выбрана для работы с нейронным слоем сети с нейронами до n2 входов и до нейронов выхода NM.

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

Вся система была разработана с использованием синтезируемого SystemVerilog. Блоки памяти описаны в поведенческом SystemVerilog. Мы синтезировали систему, используя 130-нм конструктивный комплект, используемый для изготовления, а также используя конструктивный комплект усовершенствованного коммерческого 28-нм процесса для масштабирования проекции.

Все симуляции, представленные в разделах результатов, были выполнены с использованием симуляторов Cadence Incisive. Оценки энергопотребления на уровне системы были получены с помощью инструмента Cadence Encounter. Мы использовали файлы Value Change Dump (VCD), извлеченные из моделирования практических задач, чтобы полученные значения энергии реально отражали работу системы.

Продолжение...

Часть 1

Часть 2

Часть 3

Часть 4

Часть 5

Наука
7 млн интересуются