Нейроцессор - Пакетная архитектура нейроморфного процессора на традиционных CPU/GPU ядрах (без мемристоров)

Слайд 1. Пакетная архитектура нейропроцессора на традиционных ядрах (без мемристоров)

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

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

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

Слайд 5. Метафора пакетной передачи. Представим, что «нейроны» - это вычислительные системы эмулирующие работу небольшой нейронной сети (10-20 узлов), которые посылают друг другу «сигналы» в виде пакетов данных через общую шину данных. Каждый «нейрон» может послать пакет любому другому «нейрону». Аналогично, такие пакеты могут быть «обернуты», инкапсулированы и в виртуальной среде, например Internet Protocol (IP), переданы в другие нейронные сети.

Слайд 6. Такой «нейрон» может быть эмулирован простыми ядрами микроконтроллеров (без мемристоров, и даже необязательно с GPU), соединенными с общей шиной, в которой есть (например, для совместимости с IP ) – 32 адресные линии «ОТ», 32 адресные линии «КОМУ», 8 или 16-битная шина данных. Также добавлены служебные линии режима обучения (Teach mode forward line) , режима обратного распространения ошибки (back propagation line) и линия «Передача/занято» (Transfer/Busy line).

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

Режим 1 Программирование сети.

Слайд 8. Внешним управлением устанавливается режим обучения. На шину выгружается программный код эмуляции нейронной сети с адреса FROM:#00000000. Ядра контроллеров запрограммированы таким образом, что в режиме обучения код с данного адреса воспринимается как программный.

Слайд 9. Если адрес «TO:» является широковещательным, (TO:#FFFFFFFF), то код загружается во все микроконтроллеры. Возможно использование сетевых масок вида #AB.CD.EE.00, которое, аналогично маскам IP, будет загружать только часть ядер, чей адрес соответствует данной маске. Это позволяет загружать в контроллеры различные эмуляторы нейронных сетей (CNN, RNN/LSTM и т.д.), создавая тем самым слои с различными видами нейронов, тем самым создавая гибкую архитектуру сети.

Режим 2. Режим обучения «растущие аксоны»

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

Слайд 11. Конкретное ядро – «нейрон» «слушает» от шины пакеты-сигналы от других «нейронов», как дендриты принимают сигнал от аксонов нейронов. Алгоритм нейронной сети в данном ядре аккумулирует информацию и запоминает какие пакеты с каких адресов (сигналы от каких «нейронов») приходили.

Слайд 12. Когда конкретный «нейрон» от полученных данных «включается», он:
1. Ожидает освобождения линии передачи Transfer/Busy и занимает ее,
2. Посылает от своего адреса широковещательный пакет (всем «нейронам») с рассчитанной величиной (или просто «1»),
3. Освобождает линию Transfer/Busy,
4. Другие нейроны принимают эти пакеты и запоминают адрес источника и значения и начинают обрабатывать этот сигнал своей нейронной сетью ( см. пред. Слайд)
Таким образом, «нейроны» пытаются установить связи «все со всеми» - «прорастить аксоны» друг к другу. Для оптимизации работы, зоны установления связей можно ограничивать «слоями», «областями», накладывая маски на адресацию пакетов.

3. Режим обратного распространения ошибки.

Слайд 13. После режима прямого обучения включается режим обратной ошибки (Back propagation line is ON). В этом режиме на выход всей системы подаются значения обучающей выборки.

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

Слайд 15.Оставшимся «нейронам» ( от которых пришли пакеты-сигналы с наиболее верными значениями) высылаются пакеты с корректирующим значением.

Слайд 16. Соответственно, «нейроны», принявшие на свой адрес пакет со значением обратной ошибки, повторяют предыдущие 2 шага и корректируют свой набор «надежных источников».
Таким образом, происходит обучение сети, и выстраиваются связи аналогично аксонам-дендритам в природных нейронных сетях – пакеты от «нейронов», которые лучше всего предсказывают значения обучающей выборки получают больший вес, а с меньшей вероятностью предсказания – меньший. Однако, если какой- то нейрон будет испытывать «дефицит» информации ( у него на входе будет слишком мало пакетов для срабатывания), то он может в режиме «прослушивания» (Слайд 10) найти новые источники, что обеспечивает гибкость сети.

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

Слайд 18. Каждый «нейрон» принимает пакеты от «нейронов», с наибольшим весом, полученным при обучении и обрабатывает своей нейронной сетью.

Слайд 19. При срабатывании, «нейрон» ожидает освобождения шины, захватывает её, рассылает от своего адреса широковещательный пакет (или на определенный сегмент сети, если это ограничено сетевой маской).
Тем самым, после обработки срабатывания всех «нейронов» данного участка сети формируются пакеты данных, которые могут быть обработаны или переданы для обработки в другую часть нейронной сети.

Масштабирование и экономика

Слайд 20 Потоки данных в коре мозга.
Собственно, какое количество такого рода узлов достаточно для эмуляции работы коры головного мозга человека? Если посчитать, потоки данных в коре конечно велики, но вполне обрабатываемы современными технологиями. Можно сказать, что в области одной доли коры передаются – гигиабиты в секуднду данных.

Слайд 21 Как так?
Во всей коре ~14 миллиардов нейронов, значит в одном полушарии – 7 млрд. Тогда можно сказать, что в каждой доле коры порядка 1 млрд. нейронов. Если взять что характерные частоты работы мозга 7-14 Гц, и одновременно «срабатывают» не более 10% нейронов (реально 5-7%), то поток данных в пределах одной доли коры составит порядка 1 Гигабита в секунду, то есть скорость работы офисной сети.

Слайд 22. То есть, для обработки такого потока данных мы можем использовать множество достаточно простых ядер, обойдя «узкое место фон Неймана», соединенных среднескоростной, по современным меркам шиной.

Слайд 23. – для сравнения - скорости шины PCI express – До 16 Гбит/с

Слайд 24. – На разработку модели архитектуры и программного обеспечения такой системы потребуется 1-2 года и 2-3 миллиона долларов для коллектива из 20 разработчиков. Запуск производства и изготовление системы, эмулирующей кору головного мозга обойдется в 400-600 миллионов долларов.

Слайд 25. Возможные применения:
нейрокарты для компьютеров, "нейромозги" для роботов и т.д.

Слайд 26 Сильный искусственный интеллект
Используя 32 битную адресацию мы можем увязать до 4 млрд. ядер, а если в каждом ядре эмулировать по 10 нейронов, то, собирая до 1000 ядер на чипе мы вполне можем собрать кортекс из 14 млрд нейронов на 14 000 компьютерах на 350 стойках

Слайд 27.
для передачи между сегментами сети достаточно поддерживать поток порядка 0,4 Гб/с то есть скорости обычного офисного коммутатора на $200 .

Слайд 28 Вся эта система будет потреблять до 400 МВт в режиме обучения и 40 МВт в рабочем режиме.

Слайд 29 Стоимость такого проекта составит 400-600 миллионов долларов

Слайд 30 Для полного раскрытия потенциала нейронных сетей недостаточно эмуляции на традиционной архитектуре фон Неймана, нужна собственная архитектура процессора.