Raspberry Pi кластер, нейронные сети и моделирование мозга - PullRequest
14 голосов
/ 14 сентября 2011

Поскольку RBPI (Raspberry Pi) имеет очень низкое энергопотребление и очень низкую цену производства, это означает, что с ними можно построить очень большой кластер.Я не уверен, но кластер из 100000 RBPI потребует мало энергии и мало места.

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

Я не уверен, что говорить «1 CPU = 1 нейрон» - это разумное утверждение, но оно кажется достаточно верным.кластер будет более эффективным для моделирования нейронных сетей, поскольку он гораздо более параллелен, чем другие классические кластеры?

Ответы [ 8 ]

20 голосов
/ 28 сентября 2011

Использование Raspberry Pi само по себе не решает всей проблемы создания массивно параллельного суперкомпьютера: как эффективно соединить все ваши вычислительные ядра вместе - это действительно большая проблема, поэтому суперкомпьютеры специально разработаны, а не просто сделаны из обычных деталей , Тем не менее, исследовательские подразделения действительно начинают рассматривать ядра ARM как энергоэффективный способ использования вычислительной мощности для решения именно этой проблемы: например, этот проект, направленный на моделирование человеческого мозга с миллионами ядер ARM.

http://www.zdnet.co.uk/news/emerging-tech/2011/07/08/million-core-arm-machine-aims-to-simulate-brain-40093356/ «Машина ARM с миллионным ядром предназначена для симуляции мозга»

http://www.eetimes.com/electronics-news/4217840/Million-ARM-cores-brain-simulator «Миллион ядер ARM для симулятора мозга»

Это очень специализированное, сделанное на заказ оборудование, но концептуально оно не далеко от сети Raspberry Pis, которую вы предлагаете. Не забывайте, что ядра ARM имеют все функции, о которых упоминал Джон Б. Xeon (Advanced SIMD вместо SSE, могут выполнять 64-битные вычисления, инструкции с перекрытием и т. Д.), Но все они работают совершенно по-другому: -spot: и у вас есть разные варианты того, какие функции включены (если вы не хотите с плавающей запятой, просто купите чип без плавающей запятой), так что я могу понять, почему это привлекательный вариант, особенно если учесть эту мощность использование является самой большой текущей стоимостью для суперкомпьютера.

4 голосов
/ 02 марта 2012

GPU и FPU делают этот вид мышления намного лучше, чем CPU, графические процессоры Nvidia, которые поддерживают программирование CDUA, фактически имеют сотни отдельных процессорных блоков. Или, по крайней мере, он может использовать эволюцию линий пиксельных конвейеров (где карта может отображать несколько пикселей параллельно) для создания огромных скачков в скорости. CPU позволяет использовать несколько ядер, которые могут выполнять довольно сложные шаги. Графический процессор позволяет сотни потоков, которые могут выполнять просто шаги.

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

Тем не менее, для создания кластера, работающего с чем-то вроде «кондора», который можно использовать для таких вещей, как моделирование разрыва Болезни, когда вы выполняете одну и ту же математическую модель миллионы раз с различными начальными точками. (размер прорыва, направление ветра, насколько заразна болезнь и т. д.), поэтому такая вещь, как Пи, была бы идеальной. так как вы обычно ищете полноценный процессор, который может выполнять стандартный код. http://research.cs.wisc.edu/condor/

известное использование этого подхода - "Сети" или "сворачивание дома" (поиск инопланетян и исследование рака)

У многих университетов есть такой кластер, поэтому я вижу, что некоторые из них пробуют подход mutipl Raspberry Pi's

Но для симуляции нейронов в мозге вам требуется очень низкая задержка между узлами, которые они представляют из себя специальные ОС, и приложениями, которые заставляют системы с множеством функций действовать как единое целое. Вам также нужны специальные сети, чтобы связать их вместе, чтобы обеспечить задержку между узлами в терминах <1 миллисекунды. </p>

http://en.wikipedia.org/wiki/InfiniBand

Малина просто не справится с этим никак.

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

Скажем, что мы собираемся получить несколько и протестировать их на наших текущих узлах в нашем кластере, чтобы увидеть, как они сравниваются с рабочим столом с дуэльным ядром 3,2 ГГц и стоимостью £ 650! Я рассчитываю на то, что мы могли бы получить 25 малины, и они будут использовать гораздо меньше энергии, поэтому будет интересно сравнить. Это будет для моделирования вспышки заболевания.

4 голосов
/ 15 сентября 2011

Кажется, вряд ли будет хорошей / дешевой системой для меня. Рассмотрим современный процессор Xeon. Он имеет 8 ядер, работающих с 5-кратной тактовой частотой, поэтому только на этой основе можно выполнять в 40 раз больше работы. Кроме того, он имеет SSE, который, кажется, подходит для этого приложения и позволит ему рассчитывать 4 вещи параллельно. Таким образом, у нас до 160 раз больше работы. Тогда он имеет многопоточность, может выполнять 64-битные вычисления, инструкции с наложением и т. Д. Я думаю, это будет как минимум в 200 раз быстрее для такой работы.

Тогда, наконец, результаты по крайней мере 200 локальных "нейронов" будут находиться в локальной памяти, но в сети Raspberry Pi вам придется общаться между 200 из них ... Что будет намного медленнее.

Я думаю, что Raspberry Pi великолепен и, конечно, планирует получить хотя бы один: P Но вы не собираетесь строить из них дешевую и быструю сеть, которая будет конкурировать с сетью «настоящих» компьютеров: P

В любом случае, самым быстрым аппаратным обеспечением для такого рода вещей, вероятно, будет графический процессор с графической картой, поскольку он предназначен для параллельного запуска множества копий небольшой программы. Или просто запрограммируйте fpga с несколькими сотнями копий «аппаратного» нейрона.

1 голос
/ 04 июля 2012

Я предпринимаю большое количество исследований нейронных сетей в области предсказания хаотических временных рядов (с сетями эхо-состояний).Хотя я вижу, что использование Raspberry PI таким образом мало что даст, если не сказать о сильном процессоре или графическом процессоре, у него практически нет преимуществ, но я использую Raspberry PI для управления распределением задач моделирования на несколько машин.Выигрыш в вычислительной мощности большого ядра обеспечит возможности Raspberry PI. Не только это, но и запуск нескольких PI в этой конфигурации приведет к большим накладным расходам на ожидание их синхронизации, передачи данных и т. Д. Из-за низкой стоимости и надежностиPI, у меня есть источник сетевых данных, а также передача заданий на компьютеры агентов.Он также может выполнить жесткий сброс и перезапуск машины, если имитация не удастся остановить машину, что обеспечит оптимальное время безотказной работы.

0 голосов
/ 26 октября 2014

Все зависит от типа вычислений, которые вы хотите сделать. Если вы используете очень численные алгоритмы с небольшим перемещением памяти между кэш-памятью процессора и оперативной памятью, тогда вам нужно решение на GPU. Срединной точкой является чип Intel PC, использующий инструкции на языке ассемблера SIMD - вы все равно можете легко ограничиться скоростью передачи данных в ОЗУ и из нее. Приблизительно за ту же цену вы можете получить 50 плат ARM, скажем, с 4 ядрами на плату и 2 ГБ ОЗУ на плату. Это 200 ядер и 100 Гб оперативной памяти. Количество данных, которое можно перетасовывать между процессорами и оперативной памятью в секунду, очень велико. Это может быть хорошим вариантом для нейронных сетей, которые используют векторы с большим весом. Кроме того, новейшие графические процессоры ARM и новый чип на базе ARM nVidea (используемый в планшетном ПК) также поддерживают вычисления на графических процессорах.

0 голосов
/ 07 октября 2013

Я перенес всплывшую сеть (подробнее см. http://www.raspberrypi.org/phpBB3/viewtopic.php?f=37&t=57385&e=0) на Raspberry Pi, и она работает примерно в 24 раза медленнее, чем на моем старом ноутбуке Pentium-M 2005 года с оптимизацией SSE и предварительной загрузкой.

0 голосов
/ 02 апреля 2013

Некоторые инженеры из Университета Саутгемптона создали суперкомпьютер Raspberry Pi :

0 голосов
/ 22 марта 2013

Нейронные сети дороги в обучении, но очень дешевы в эксплуатации.Хотя я бы не рекомендовал использовать их (даже кластеризованные) для перебора учебного набора для бесконечных эпох, когда у вас есть весовые коэффициенты, вы можете перенести в них усилия по обучению.должен быть полезен для гораздо большего, чем один нейрон.Учитывая отношение памяти к процессору, оно, скорее всего, будет связано с памятью в своем масштабе.Предполагая, что около 300 мегабайт свободной памяти будет работать (что будет варьироваться в зависимости от ОС / драйверов / и т.до привязки к хранилищу), хотя многие другие факторы могут изменить это, и это все равно, что спросить: «Как долго это кусок строки?»

...