roboforum.ru

Технический форум по робототехнике.

Многопроцессорная вычислялка

СРУВЧ!

Re: Многопроцессорная вычислялка

Сообщение EIN_ENGEL » 13 янв 2011, 02:09

виртексы отпадают из-за стоимости.

в плисе дсп ядро это просто умножитель. Можно на них формулу собрать.
Аватара пользователя
EIN_ENGEL
 
Сообщения: 496
Зарегистрирован: 06 янв 2006, 03:02
Откуда: Москва
прог. языки: VHDL, C++, Matlab
ФИО: Павел

Re: Многопроцессорная вычислялка

Сообщение Duhas » 13 янв 2011, 10:29

ну я лично не планировал бить процессы, по крайней мере динамично, между вычислителями.. по сути арбитр - ось, вычислители - процессы...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Многопроцессорная вычислялка

Сообщение WickedGoblin » 13 янв 2011, 11:58

EIN_ENGEL писал(а):в розницу:
137-й - 30 долларов,
138-й - 37.
мелким оптом - 28 и 31.
В России даже искать не хочу. Проще будет за ними самому слетать.


А наличие DSP на борту нужно?
Может без него но частоту побольше?
Аватара пользователя
WickedGoblin
 
Сообщения: 114
Зарегистрирован: 12 сен 2009, 21:42
Откуда: Москва

Re: Многопроцессорная вычислялка

Сообщение EIN_ENGEL » 13 янв 2011, 12:42

это я не знаю. Кому как, мне лично очень желательно, поэтому от себя предлагаю спаренный вариант АРМ + ДСП.

По идее АРМ с операционкой должен стоять на материнке, а вычислительные блоки только очень быстро считают. Я бы вообще взял один ДСП, но для большей универсальности пусть будет комбинированный.


Круг задач нужно поставить почётче.
Аватара пользователя
EIN_ENGEL
 
Сообщения: 496
Зарегистрирован: 06 янв 2006, 03:02
Откуда: Москва
прог. языки: VHDL, C++, Matlab
ФИО: Павел

Re: Многопроцессорная вычислялка

Сообщение WickedGoblin » 13 янв 2011, 12:52

Обще теоретический но важный вопрос. Учитывая что стандартных шин межпроцессорного взаимодействия нет.
Как это взаимодействие видится?
Железный уровень и не плохо бы примерно представлять программный?
Аватара пользователя
WickedGoblin
 
Сообщения: 114
Зарегистрирован: 12 сен 2009, 21:42
Откуда: Москва

Re: Многопроцессорная вычислялка

Сообщение Duhas » 13 янв 2011, 13:03

железный пока описать не могу.. думаю..

программный - каждый модуль по сути процесс, который дерет данные у арбитра, обрабатывает и отдает ему же..

модуль ввода - только отдает + может делать некоторую преобработку - хозяин барин...

модуль вывода - берет, обрабатывает выводит.. к примеру тот же модуль синтеза речи.. иль еще чего..

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

как я вижу работу всего этого, применительно, например, к СТЗ: с камеры по некоторому интерфейсу приходит картинка, модуль ввода добавляет служебную информацию, например время текущее.. и отдает ее либо арбитру, который собирает данные в свою память, а потом раздает вычислительным модулям.. итак - у арбитра есть кадр, или та же стереопара, он отдает ее нескольким вычислителям, один ищет особые точки, другой производит 3Д реконструкцию на низком разрешении, третий детализирует части карты глубины на высоком разрешении ну и так далее...

то есть при запуске системы каждому модулю определяется его роль, области памяти в которых лежат его ресурсы у арбитра и прочее..
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Многопроцессорная вычислялка

Сообщение EIN_ENGEL » 13 янв 2011, 14:54

по железному уровню - параллельная шина 32-64 бит. От арбитра к каждому вычислительному модулю отдельная. И так же между смежными модулями. Плюс я бы из каждого модуля вывел шину просто наружу, чтобы можно было подключить внешний ввод-вывод.
Нужно почитать даташит на потенциально подходящие процессоры, как в них сделано чтение из параллельного порта. И как обеспечить синхронизацию всех модулей.

Получается процессор с оперативной памятью и СПИ-флешкой, из него идёт 32 бита на арбитр шины, 32 соседу справа, 32 соседу слева и 32 (или всё что останется) просто наружу. Причём нужно предусмотреть чтобы на тех ногах, которые идут просто наружу оказались внешние интерфейсы: USB, Ethernet....

На этот наружний интерфейс можно подвесить большую флешку, камеру и прочее...

Каждый вычислительный модуль как законченное изделие с возможностью автономной работы. То есть всё как полагается: питание, джейтаг... Пусть дороже будет за счёт индивидуальных стабилизаторов на каждой плате, но зато универсально. Таких вычислительных модулей несколько вариантов разной производительности и стоимости. Соответственно с урезанием шин и прочего.
Сами платки с плотным монтажом 0402 для минимизации габаритов.

Вообще где-то я уже такое видел :) .

В материнке:
Арбитр шины - пока никаких идей, кроме ПЛИС. Какой-нибудь Спартан-6 с подходящим количеством ног и ценой. Есть мысли по этому поводу?
На ПЛИС повесить пару модулей оперативной памяти. Но вообще использовать её только как коммутатор между вычислительными блоками. То есть свести к минимуму обращение к её памяти, чтобы не делать узких мест.
Всем этим делом управляет АРМ с операционкой и возможностью подключения человеческого интерфейса (клава, мышка, мониторчик, звук).
От АРМа к ПЛИС тоже параллельный интерфейс для передачи данных.
Также от АРМа к ПЛИС и вычислительным модулям последовательный интерфейс (СПИ, ЮАРТ, И2С) для загрузки прошивок.



Пока вижу как-то так.
Аватара пользователя
EIN_ENGEL
 
Сообщения: 496
Зарегистрирован: 06 янв 2006, 03:02
Откуда: Москва
прог. языки: VHDL, C++, Matlab
ФИО: Павел

Re: Многопроцессорная вычислялка

Сообщение WickedGoblin » 13 янв 2011, 16:03

Duhas писал(а):железный пока описать не могу.. думаю..

программный - каждый модуль по сути процесс, который дерет данные у арбитра, обрабатывает и отдает ему же..

модуль ввода - только отдает + может делать некоторую преобработку - хозяин барин...

модуль вывода - берет, обрабатывает выводит.. к примеру тот же модуль синтеза речи.. иль еще чего..

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

как я вижу работу всего этого, применительно, например, к СТЗ: с камеры по некоторому интерфейсу приходит картинка, модуль ввода добавляет служебную информацию, например время текущее.. и отдает ее либо арбитру, который собирает данные в свою память, а потом раздает вычислительным модулям.. итак - у арбитра есть кадр, или та же стереопара, он отдает ее нескольким вычислителям, один ищет особые точки, другой производит 3Д реконструкцию на низком разрешении, третий детализирует части карты глубины на высоком разрешении ну и так далее...

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


Т.е. одним словом RPC

Добавлено спустя 15 минут 37 секунд:
EIN_ENGEL писал(а):по железному уровню - параллельная шина 32-64 бит. От арбитра к каждому вычислительному модулю отдельная. И так же между смежными модулями. Плюс я бы из каждого модуля вывел шину просто наружу, чтобы можно было подключить внешний ввод-вывод.
Нужно почитать даташит на потенциально подходящие процессоры, как в них сделано чтение из параллельного порта. И как обеспечить синхронизацию всех модулей.

Получается процессор с оперативной памятью и СПИ-флешкой, из него идёт 32 бита на арбитр шины, 32 соседу справа, 32 соседу слева и 32 (или всё что останется) просто наружу. Причём нужно предусмотреть чтобы на тех ногах, которые идут просто наружу оказались внешние интерфейсы: USB, Ethernet....

На этот наружний интерфейс можно подвесить большую флешку, камеру и прочее...

Каждый вычислительный модуль как законченное изделие с возможностью автономной работы. То есть всё как полагается: питание, джейтаг... Пусть дороже будет за счёт индивидуальных стабилизаторов на каждой плате, но зато универсально. Таких вычислительных модулей несколько вариантов разной производительности и стоимости. Соответственно с урезанием шин и прочего.
Сами платки с плотным монтажом 0402 для минимизации габаритов.

Вообще где-то я уже такое видел :) .

В материнке:
Арбитр шины - пока никаких идей, кроме ПЛИС. Какой-нибудь Спартан-6 с подходящим количеством ног и ценой. Есть мысли по этому поводу?
На ПЛИС повесить пару модулей оперативной памяти. Но вообще использовать её только как коммутатор между вычислительными блоками. То есть свести к минимуму обращение к её памяти, чтобы не делать узких мест.
Всем этим делом управляет АРМ с операционкой и возможностью подключения человеческого интерфейса (клава, мышка, мониторчик, звук).
От АРМа к ПЛИС тоже параллельный интерфейс для передачи данных.
Также от АРМа к ПЛИС и вычислительным модулям последовательный интерфейс (СПИ, ЮАРТ, И2С) для загрузки прошивок.

Пока вижу как-то так.


Т.е. схема одним словом "матричный процессор" http://comp.vslovar.org.ru/555.html

Вот правда 32х4 = 128 это уже круто и это без учета управляющих сигналов. Такое разводить или очень сложно или скорости будут маленькие.
IMHO лучше на эту плату поставить саму слабую ПЛИС для которая бы могла скажем в минимуме делать фулдуплекс двухсторонние преобразование serial (внешний интерфейс) <-> parallel (внутренний интерфейс к CPU).
Хотя опять же приходим к старым баранам или ethernet или pci-e

В таких системах есть существенный момент необходимо чтобы вычислительные модули успевали подгружаться и выгружаться данными и не простаивали.

Добавлено спустя 21 минуту 47 секунд:
Нас опередили :(
http://www.toradex.com/Products/Colibri_Modules

Тут тогда действительно встанет вопрос только что можно предложить в качестве мамы-свича...
Аватара пользователя
WickedGoblin
 
Сообщения: 114
Зарегистрирован: 12 сен 2009, 21:42
Откуда: Москва

Re: Многопроцессорная вычислялка

Сообщение EIN_ENGEL » 13 янв 2011, 20:26

а что такого сложного в 6 слоёв развести 128 ног? Один слой земля, один питание и целых 4 на сигналы. Управляющие сигналы можно передавать по той же шине. Например, переключая её в разные режимы одной дополнительной ножкой. Можно и прошивать по этой шине.

На эту плату это на какую? На вычислительные модули?
В маленьких плисах нет скоростных интерфейсов, придётся делать его ядром. Ядровый интерфейс больших скоростей не даст. А те, в которых есть - дорогие.
Эзернет мне кажется вообще слишком медленный для передачи данных. Он скорее для управления.
Ещё не хотелось бы связываться со скоростными последовательными интерфейсами, потому что там почти везде дифференциальные пары. Вот их разводить как раз неприятно.


Вообще можно поэкспериментировать. У меня сейчас есть 3 платы с ДСП C6745 от ТИ. В начале темы выкладывал фотку. Работают, грузятся. Есть плата на 3-м Спартане. И ещё клон БиглБорда на ОМАПе 3530, в нём АРМ и ДСП.
Всё собрать в кучу и посмотреть, как будет работать, правда не знаю, смогу ли найти время на это.
Аватара пользователя
EIN_ENGEL
 
Сообщения: 496
Зарегистрирован: 06 янв 2006, 03:02
Откуда: Москва
прог. языки: VHDL, C++, Matlab
ФИО: Павел

Re: Многопроцессорная вычислялка

Сообщение Duhas » 13 янв 2011, 21:27

EIN_ENGEL, а не жирно будет от каждого к каждому ? а если вычислителей 20? 30?


может протянуть до арбитра 4х32 / 2х64 шину ?
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Многопроцессорная вычислялка

Сообщение EIN_ENGEL » 13 янв 2011, 21:59

а если 1000000, 2000000?
Я думаю, больше 6 смысла нет ставить, а то и 4-х достаточно. Дальше уже начинается ничем не оправданная фантастика, лучше купить видеокарту.
Не от каждого к каждому, а только к ближайшему соседу.

Можно протянуть и одну на 16, но у нас сейчас модно бороться с пробками, а не создавать их. :)
Аватара пользователя
EIN_ENGEL
 
Сообщения: 496
Зарегистрирован: 06 янв 2006, 03:02
Откуда: Москва
прог. языки: VHDL, C++, Matlab
ФИО: Павел

Re: Многопроцессорная вычислялка

Сообщение Duhas » 13 янв 2011, 22:06

я говорил про от каждого проца к арбитру..

от арбитра несколько веревок, а уже соседние вычислители между собой...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Многопроцессорная вычислялка

Сообщение EIN_ENGEL » 13 янв 2011, 22:24

так ты сам написал, что арбитр будет раздавать данные модулям. Если всё делать по одной шине, то система будет сильно зависеть от задачи. В задачах с интенсивными вычислениями, но малым потоком оно сработает. Чуть поток повысится и сразу упадёт производительность.

Такая конфигурация возможна только на ПЛИСе, потому что в ней всё происходит параллельно и независимо.
Можно конечно всё сделать и на одной общей шине, но соответственно скорость упадёт во столько раз, сколько вычислительных модулей.

Если от плисы откажемся, то так и придётся делать.
Аватара пользователя
EIN_ENGEL
 
Сообщения: 496
Зарегистрирован: 06 янв 2006, 03:02
Откуда: Москва
прог. языки: VHDL, C++, Matlab
ФИО: Павел

Re: Многопроцессорная вычислялка

Сообщение Duhas » 14 янв 2011, 07:35

тогда можно делать так - на одну плисину на материнке встает, допустим, до 10 модулей, далее такие материнки мона тоже объединять.. т.е. предусмотреть шину пошире и поскоростнее между плисинами
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Многопроцессорная вычислялка

Сообщение EIN_ENGEL » 14 янв 2011, 09:02

а смысл объединять материнки?
Это уже выходит за рамки эксперимента для "попробовать". Получается гонка за производительностью, в которой нет никаких шансов.
Для задач, в которых может потребоваться такая производительность уже разумнее купить готовый вычислитель.
Аватара пользователя
EIN_ENGEL
 
Сообщения: 496
Зарегистрирован: 06 янв 2006, 03:02
Откуда: Москва
прог. языки: VHDL, C++, Matlab
ФИО: Павел

Пред.След.

Вернуться в CRAZY PROJECTs

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2