TSC! Russia BOINC-manager
Статус: Не в сети Регистрация: 19.01.2010 Откуда: Санкт-Петербург
matocob писал(а):
Т.е. TrueNorth это куча нейронов, но только для одного конкретного типа нейросети (показавшейся разработчикам наиболее эффективной/перспективной), а Loihi это чип позволяющий моделировать разные нейросети, перестраивая их под конкретные задачи.
Что-то попахивает прожектёрством. Моделировать разные нейросети ни один нейропроцессор не в состоянии. По причине ограничений топологии сети. Следовательно, речь может идти о моделировании сетей определённого класса.
Он ориентирован в первую очередь на моделирование спайковых(импульсных) нейронных сетей(Spiking neural network, SNN). Но можно моделировать и рекурентные нейронные сети и Sparse Convolutional Neural Networks (SCNN) и другие виды. А топология у него произвольная программируемая. Тут нет ни жестко (в железе) заданной топологии самой сети, ни жестко предопределенных правил функционирования нейронов.
Судя по пресс-релизу Интел там есть куча относительно универсальных программируемых микроядер с небольшими объемами (но зато быстрой - на уровне кэша) встроенной памяти работающих асинхронно и куча интерконнектов с соседними микроядрами(mesh network) для обмена импульсными сигналами (спайками). Меняя микропрограмму в каждом таком ядре можно менять как правила функционирования нейронов моделируемых на нем так и топологию связей с другими нейронами в очень широких пределах.
Ограничения конечно есть, чудес не бывает - производительность отдельного микроядра ограничивает сложность микропрограммы моделирующей работу нейронов, а объем локальной памяти интегрированной в каждое такое ядро ограничивает максимальное кол-во моделируемых синапсов и предельную сложность топологии сети которую можно реализовать. Общее кол-во озвучено (130к нейронов/130М синапсов), есть еще и какие-то ограничения накладываемые параметрами одного микроядра (например сколько максимально синапсов может приходиться на один нейрон), которые пока не опубликованы. Но в рамках этих ограничений можно моделировать практически любую нейронную сеть, т.к. вид сети и ее топология меняется простой сменой программы.
В этом плане это конкрурент не TrueNorth, а скорее продолжение/развитие идей впервые реализованных в нейроморфной архитектуре SpiNNaker
И относительно нее скачок очень большой - там была симуляция работы 16 тыс. нейронов и до 16М синапсов на одном чипе (по 1к на ядро, 16+2 ядра на чипе). Тут на 1м чипе моделируется практически в 10 раз больше: 130к нейронов/130М синапсов. Впрочем неудивительно и не особо впечатляет, с учетом того, что исходный SpiNNaker на древнем 130нм тех процессе делался. От одного простого портирования с 130нм на 14нм можно было ожидать даже большего. Возможно это просто обкатка технологии и архитектуры и следующая версия если будет востребована будет уже в разы мощнее.
Кстати то что журналист приплел, что Intel начала работать над этим чипом в 2011 году, потому что тогда был лишь анонсирована разработка TrueNorth довольно сомнительно. Скорее они начали эту работу, потому что как раз так же в 2011 году была выпущена первая уже рабочая версия чипов SpiNNaker. Не какой-то анонс, а уже реальные рабочие нейроморфные чипы. И уже тогда можно было посмотреть их в работе и оценить перспективность и реализуемость такого подхода. Видимо в Ител сочли его перспективным и начали разработку собственного чипа, с поправкой на свои гораздо большие технологические возможности.
Member
Статус: Не в сети Регистрация: 31.07.2006 Откуда: Академгородок П Фото: 124
Mad'Max писал(а):
Тут нет ни жестко (в железе) заданной топологии самой сети, ни жестко предопределенных правил функционирования нейронов.
С чего вы решили, что это есть в TrueNorth? Подобные архитектуры строятся на так называемых однородных вычислительных средах. Это матрица из простых ядер, состоящих из сумматора и планировщика + собственная память каждого ядра. У TrueNorth матрица состоит из 4096 блоков (64х64) со 100 кБит памяти на каждый блок (ядро). В принципе, на таких архитектурах возможна реализации довольно обширного класса сетей, но всё упирается в топологию эмулируемой сети. Чем сложнее топология, тем быстрее падает частота эмуляции. Например, каждое ядро TrueNorth эмулирует 256 синаптических связей с частотой 1 кГц. Intel обещает "адаптивную разрежённость". На самом деле, очередной костыль чтобы выбраться из прокрустова ложа коннекционизма - быстродействие падает как n^3, где n - число синапсов. Ну и экскурс в историю, хоть и познавателен, но всё же малополезен. Интел всего лишь увидела открытие нового направления, где за ускорение расчётов готовы платить. Насколько у Интел получится отвоевать свою долю рынка покажет время, пока их разработки в этом направлении не впечатляют.
TSC! Russia BOINC-manager
Статус: Не в сети Регистрация: 19.01.2010 Откуда: Санкт-Петербург
Из диаграмм и описаний архитектуры TrueNorth которые публиковались после его выхода. Давно правда уже было, около 2х лет назад читал.
Насколько помню, там реализована жесткая, фиксированная вычислительная архитектура. По сути это ASIC/DSP, а не пусть и простые вычислительные ядра. Там "ядро" это фиксированные стандартные блоки 256 входов, 256 выходов и 256х256 сетка связей имитирующих синапсы (получаются фиксированные 256 синапсов на каждый нейрон). Алгоритмы обработки, т.е. преобразования входных сигналов в выходные тоже зашиты изначально в железе, изменяются (программируются) только данные, но не алгоритмы, хотя вроде что-то писали о возможности выбора (из набора заложенного изначально проектировщиками).
И не увеличить ни уменьшить то же кол-во синапсов тут нельзя. Ну точнее уменьшить то ниже 256 возможно, но только виртуально - можно задать части связей в синапсах нулевые веса, что с точки зрения симулируемой нейронной сети будет равнозначно отсутствию связи между нейронами. Но с точки зрения архитектуры и железа все и дальше будет обрабатываться так, как если бы у каждого нейрона были фиксированные 256 синапсов. Просто сумматор будет умножать на ноль и складывать нули по таким синапсам. И от их "обнуления" не получить ни прибавки в скорости моделирования, как и нельзя сэкономленную на незадействованных синапсах память ядра использовать для чего-то другого. Все фиксировано 64кб из 100кб в каждом ядре отданы под синапсы(256х256, 1 биту на синапс, что тоже конечно примитив полный и во многих случаях недостаточно) и ни для чего другого ее задействовать нельзя.
Тогда как в архитектуре Интел количество синапсов и топология связей программируемая, а ресурсы внутри каждого ядра перераспределяемые. Можно сделать скажем большую часть нейронов в ядре по 100 синапсов, а на несколько несколько (отвечающих за связность) повесить по 5000 синапсов. TrueNorth в принципе такую топологию реальзовать не может, а Loihi может - у него ограничением выступает только объем памяти внутри 1 ядра, которую можно использовать и перераспределять произвольно под конкретную задачу.
Или же можно оставить по 100 синапсов, но зато в разы ускорить обработку (частоту симуляции) для моделирования сетей не требующих высокой связности.
Как и алгоритмы обработки сигналов - что-то вроде шейдеров для ГПУ можно писать, реализуя практически произвольный алгоритм.
Цитата:
На самом деле, очередной костыль чтобы выбраться из прокрустова ложа коннекционизма - быстродействие падает как n^3, где n - число синапсов.
Так в асинхронных импульсных НС как раз не падает. В них главным ограничителем выступает количество одновременно(параллельно) активных нейронов, выдающих импульсы(спайки), которые в текущей железной реализации превращаются в пакеты данных с которыми должны справляться роутеры и интерконнекты между ядрами.
А вот как раз по количеству синапсов эта архитектура масштабируется практически линейно - вбухал в 10 раз больше транзисторов в чип и можно почти в 10 раз большее количество синапсов моделировать с той же скоростью. Никаких n^3 нет. Т.к. синапсы сами по себе в этой реализации не порождают никаких сигналов, и не занимают пропускную способность каналов связи. Ее потребляют только активные(возбужденные) в данный момент нейроны. А все что нужно для моделирования дополнительных синапсов - дополнительная локальная память ядра (SRAM).
Поэтому и так относительно легко перешли от 256 синапсов на 1 нейрон (Spinnaker, TrueNorth) к 1024 (в среднем, с возможностью перераспределения внутри одного ядра) синапсов на нейрон в Loihi.
Member
Статус: Не в сети Регистрация: 31.07.2006 Откуда: Академгородок П Фото: 124
Mad'Max писал(а):
256х256 сетка связей имитирующих синапсы
Нет там никакой "сетки связей", есть ячейки ОЗУ, куда пишутся "веса" синапсов. Это и есть топология сети, показывающая, куда и какой интенсивности сигнал следует подавать.
Mad'Max писал(а):
Алгоритмы обработки, т.е. преобразования входных сигналов в выходные тоже зашиты изначально в железе, изменяются (программируются) только данные, но не алгоритмы, хотя вроде что-то писали о возможности выбора (из набора заложенного изначально проектировщиками).
Это реализация в плате с 16-ю нейропроцессорами, а не внутри нейропроцессора, ничто не мешает применить собственную прошивку для работы с данными, которые, кстати, не программируются.
Mad'Max писал(а):
А вот как раз по количеству синапсов эта архитектура масштабируется практически линейно - вбухал в 10 раз больше транзисторов в чип и можно почти в 10 раз большее количество синапсов моделировать с той же скоростью. Никаких n^3 нет.
Потёмкинские деревни какие-то... Предположим, что на ячейку (1 бит) памяти требуется 1 транзистор, тогда на полноценный синапс их потребуется уже 16, если веса представлены числами с половинной точностью. Напоминаю, для эмуляции нейронной сети используется матрица из процессоров. В случае спайков - это DSP, преобразующие веса синапсов в пачки импульсов. Но принципиально это ничего не меняет, вы просто расходуете транзисторный бюджет на обслуживание шины, роль синапсов от этого никуда не девается - они хранят информацию о топологии сети, и роль эту выполняет ОЗУ, которое растёт пропорционально числу связей между нейронами. Так что, в том что нет никаких n^3 вы меня не убедили. Либо сеть специализированная, либо сталкиваемся с необходимостью обслуживать полносвязную нейронную сеть, с экспоненциальной зависимостью между числом связей и её быстродействием.
TSC! Russia BOINC-manager
Статус: Не в сети Регистрация: 19.01.2010 Откуда: Санкт-Петербург
Нету у TrueNorth вообще такого понятия как "веса" синапсов в отличии от более сложных и универсальных реализаций типа SpiNNaker и Loihi. Там тупо 1 бит на каждый синапс, включено/выключено. Связь меду нейронами либо есть, либо ее нет. Сами же писали(правильно) там только 100 кбит памяти на "ядро", каждое из которых обслуживает фиксированные 256 нейронов и фиксированные 64к синапсов. Из этих 100кбит 64кбита выделено на синапсы. Имеем только 1 бит на 1 синапс, которым можно закодировать только состояние вида включено/выключено. При этом эта память (64кб) не перераспределяется, т.е. нельзя задать меньшее кол-во синапсов в ядре, но зато обрабатываемых с большей точностью (ну хотя бы несколько десятков градаций целым числом, 4-6 бит). Все другие структуры и форматы данных там тоже фиксированые - например только 4 бита на синаптическую задержку(эмуляция задержки распространения сигнала между нейронами имеющаяся в биологических НС) или только фиксированные 8 бит на адресацию целевого нейрона (а значит и больше 2^8=256 нейронов в 1 ядре тоже невозможно моделировать, это не вопрос скорости - больше адресация и формат данных не поддерживает), хотя даже в SpiNNaker появившемся намного раньше была сквозная 32 битная адресация нейронов (т.е. до 4 миллиардов нейронов адресуемых непосредственно, без сегментации). И так далее, все задано изначально в архитектуре самого железа причем задано по самому минимуму. Экономили там на всем ради красивых больших чисел (1M нейронов/256М синапсов в 1м чипе).
Для того, чтобы имитировать что-то более приближенное к реальности и сложное на TrueNorth, часто приходится эмулировать один реальный синапс, пачкой таких вот примитивных однобитовых работающих параллельно, что гораздо менее эффективно чем нативная поддержка весов(силы) синаптических связей: 8 однобитных синапсов между нейронами А и Б могут эмулировать только синапс с 9 градаций силы связи между ними, а вот по 8 бит памяти выделенных на веса синапсов в программируемой архитектуре - уже 256 градаций силы связи.
В программируемых архитектурах таких как SpiNNaker вообще практически все в руках программиста решающего поставленную задачу. Есть определенный объем памяти и с ним можно делать что угодно: если надо, то тоже можно эмулировать кучи таких вот примитивных однобитовых синапсов, как в TrueNorth, надо можно учитывать градации силы связей, уменьшив количество (чтобы уложиться в тот же объем локальной памяти). Если достаточно всего несколько градаций то можно кодировать целым числом, скажем по 4 бита. Нужно высокую точность получить? Выделяем по 16 бит на синапс, будут веса представленны вещественным числом с плавающей запятой.
Надо сложный алгоритм обработки сигналов реализовать? - пожалуйста, пиши свой микрокод произвольной сложности. Ну конечно чем сложнее этот код, тем меньшее кол-во нейронов на ядре придется оставить, либо если не снижать их кол-во, то будет снижаться скорость ниже чем моделирование в реальном времени.
Практически как при моделировании на обычном процессоре. Ссобственно ядро там и есть практически обычное универсальное - какие-то простенькие ARM в случае SpiNNaker, у Intel официально пока не озвучено, но вероятно ядра аналогичные используемым в Xeon Phi. Отличие от обычных процессоров только в глубокой аппаратной оптимизации под моделирование именно НС - массивно параллельная архитектура, с распределенной памятью интегрированной мелкими кусочками прямо в вычислительные ядра, а не раздельно как в классических архитектурах.
Но в TrueNorth ничего этого вообще нельзя, шаг в лево, шаг вправо = расстрел (не поддерживается архитектурно).
Цитата:
Потёмкинские деревни какие-то... Предположим, что на ячейку (1 бит) памяти требуется 1 транзистор, тогда на полноценный синапс их потребуется уже 16, если веса представлены числами с половинной точностью. Напоминаю, для эмуляции нейронной сети используется матрица из процессоров. В случае спайков - это DSP, преобразующие веса синапсов в пачки импульсов. Но принципиально это ничего не меняет, вы просто расходуете транзисторный бюджет на обслуживание шины, роль синапсов от этого никуда не девается - они хранят информацию о топологии сети, и роль эту выполняет ОЗУ, которое растёт пропорционально числу связей между нейронами. Так что, в том что нет никаких n^3 вы меня не убедили. Либо сеть специализированная, либо сталкиваемся с необходимостью обслуживать полносвязную нейронную сеть, с экспоненциальной зависимостью между числом связей и её быстродействием.
Какая-то странная логика. Сами противоречий что-ли не видите, в том что пишите? Ну да, чем больше синапсов (и чем точнее их веса представлены) тем больше нужно будет ОЗУ. Это естественно. Но зависимость тут практически линейная, а не n^3: удваиваем кол-во ОЗУ, и можем сохранять состояние либо в 2 раза большего количество синапсов с той же точностью, либо кратно увеличить точность при том же их количестве. Никакой кубической зависимости нет.
А экспоненциальная (хотя правильно - степенная) зависимость и кто-то похожее на "комбинаторый взрыв" есть только в полносвязанных синхронных моделях НС. Да и то, это будет не n^3, а всего-лишь n^2 от количества синапсов. Там это происходит из-за того, что каждая связь должна обсчитываться каждый такт (шаг моделирования) и порождает соответствующий сигнал каждый такт (который нужно передавать между нейронами каждый раз).
В асинхронных импульсных НС полезный сигнал (который нужно передать по шинам данных и при получении обсчитать) порождает только нейрон превысивший порог возбуждения. Пока нейрон не возбужден - вообще не важно сколько у него синапсов, расходы на вычисления (и использование ПС шин данных) по ним равны нулю, т.к. он никаких новых сигналов не генерирует. Он только обрабатывает входящие, от других уже возбужденных нейронов.
А чем больше синапсов приходится на один нейрон, тем влияние каждого из них в отдельности на нейрон меньше и увеличение их кол-ва не ведет к увеличению частоты срабатывания нейронов. Растет сложность сети, растет "запоминаемый" (благодаря синапсам) нейроном объем информации и сложность его поведения, но не частота его срабатывания.
И как раз это в общих чертах соответствует тому что происходит в реальном мозге (оттуда эту модель собственно и позаимствовали) - частота "срабатывания" биологических нейронов лежит в довольно узких пределах и жестко ограничена сверху (несколько десятков Гц, где-то до 100 Гц максимум) независимо от того, сколько синаптических связей имеется у нейрона.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения