Однако бинаризованные нейронные сети по своей природе являются цифровыми объектами, которые полагаются, как уже отмечалось ранее, на простое логическое управление: операции XNOR и суммы с низкой шириной бита. Поэтому здесь мы исследуем их реализацию с помощью чисто цифровых схем. Эта концепция также недавно появилась в работах Нацуи и др. и Джакомина и др., а также в нашей предварительной версии этой работы. В нашей работе впервые представлены измерения на массиве физической памяти, включающие эффект битовых ошибок.
Первая реализация заключается в том, что операции XNOR могут быть реализованы непосредственно в усилителях чувств.
Для этого мы следим за новаторской работой Чжао и др., которая показывает, что предусилитель чувств может быть обогащен любой логической операцией. В нашем случае мы можем добавить четыре дополнительных транзистора в разрядные ветви предзарядного усилителя ощущений. Эти транзисторы могут предотвращать разряд и позволяют реализовать операцию XNOR между входным напряжением X и значением, сохраненным в дополнительных устройствах OxRAM, за одну операцию.
На основе массива базовой памяти с PCSA, обогащённого XNOR, мы спроектировали всю систему, реализующую Бинаризованную Нейронную Сеть.
Она навеяна чисто КМОП-архитектурой, адаптированной к ограничениям OxRAM.
Проект состоит из повторения базовых ячеек, организованных в матрице из N по M ячеек. Эти базовые ячейки включают блок памяти OxRAM размером n × n с PCSA, обогащенным XNOR, и логикой POPCOUNT. Вся система, нацеленная на вычисление активации нейронов, обладает определенной реконфигурируемостью для адаптации к различным топологиям нейронных сетей: она может быть использована как в "параллельной к последовательной", так и в "последовательной к параллельной" конфигурации.
- Параллельно с последовательной конфигурацией можно работать со слоями, содержащими до 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), извлеченные из моделирования практических задач, чтобы полученные значения энергии реально отражали работу системы.
Продолжение...