Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Реконфигурируемый суперкомьютер на FPGA из Таганрога
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Страницы: 1, 2
mikeT
Есть ли среди уважаемых форумчан люди, плотно знакомые с сабжем?
Я имею в виду именно «реконфигурируемый суперкомпьютер», разрабатываемый в Таганроге (под руководством Каляева И.А. и Левина И.И.), а не вообще тематику RC (Reconfigurable Computing) и HPRC (High Performance Reconfigurable Computing).

Команда из Таганрога вошла в ряд федеральных целевых программ по данной тематике, в частности:
Федеральная целевая программа "Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2007-2012 годы". ГОСУДАРСТВЕННЫЙ КОНТРАКТ N 02.524.12.4002 от 20 апреля 2007 г. Лот 4 шифр "2007-4-2.4-20-01-007" по теме: "Создание семейства высокопроизводительных многопроцессорных вычислительных систем с динамически перестраиваемой архитектурой на основе реконфигурируемой элементной базы и их математического обеспечения для решения вычислительно трудоемких задач"

Стратегические задачи проекта
1.Разработка и создание отечественных конкурентоспособных реконфигурируемых многопроцессорных вычислительных систем, превосходящих по своим технико-экономическим характеристикам зарубежные образцы.
2.Серийный выпуск изделий для российского рынка.
3.Повышение престижа России на рынке высокопроизводительной вычислительной техники.
4.Продвижение перспективных российских разработок на мировой рынок.
(информация на сайте www.parallel.ru)

Более подробно с результатами работы команды Каляева и Левина можно ознакомиться по книге «Реконфигурируемые мультиконвейерные вычислительные структуры» (Каляев И.А., Левин И.И., Семерников Е.А., Шмойлов В.И., Ростов-на-Дону, 2008), а также по ряду статей, которые легко находятся в инете.
Я достаточно серьезно интересуюсь вопросами, связанными с RC, и в особенности HPRC. Провел обзор и анализ очень большого количества материалов по этой тематике и могу сказать следующее:
1. На Западе работы в этом направлении ведутся очень интенсивно и в диапазоне от «один человек по вечерам дома что-то сделал за 2 дня» до программ с большим финансированием и серьезными результатами (пара примеров из большого множества – HPRC системы у IBM в проекте суперкомпьютера Blue Gene и проект RAMP, инициированный Дэйвом Паттерсоном)
2. Есть успехи, есть и спекуляция на этом предмете, вообще серьезные конторы (ранга Cray, IBM и ведущих научных центров) заявляют примерно следующее: «направление очень перспективное, но работ непочатый край», то есть такого что «все сделано, все работает и все всем ясно» нет пока и в помине

Поэтому меня очень сильно заинтересовали и, вообще говоря, насторожили заявления команды из Таганрога. Насторожили по следующим причинам:

1. Ведущие западные конторы прямо и честно заявляют, что в общем пока «тут еще конь не валялся» и «работы море и хватит на всех», особенно это касается методологии разработки и проблемы «отображения» алгоритма на «железо» (HLL to HDL и т.п). В работах таганрогцев наоборот идет упор на то, что «мы впереди планеты всей», «мы уже много чего сделали» и «у нас (СССР/Россия) в этом направлении приоритет, т.к. данную тематику впервые "подняли" (в частности) академики (не уверен точно, что все они академики rolleyes.gif ) Каляев А.В., Евреинов Э.В., Прангишвили И.В.». Последнее заявление проверяется очень просто и обнаруживается, что в США подобные системы описали и даже сделали (!) раньше лет так на 5-7 (в частности, G. Estrin, “Organization of Computer Systems—The Fixed Plus Variable Structure Computer,” Proc.Western Joint Computer Conf., Western Joint Computer Conference, New York, 1960, pp. 33-40.). Сам по себе факт, кто там раньше написал/сделал (мы или амеры) не так важен – просто настораживает такой подход авторов: из разряда «Россия – родина слонов», ну и вообще это, если называть вещи своими именами, - прямая ложь.
(Любопытно, что в книгах Евреинова Э.В., на которые ссылаются Каляев И.А. и Левин И.И. есть ссылки на американские работы, в том числе и на приведенную мной в качестве примера, и нет заявлений, что "мы впереди планеты всей")

2. Из сделанного в железе у этой команды (то, что я нарыл в инете) – это платы типа «16 Virtex V/IV на борту», которые могут устанавливаться в модули. Все это названо «Семейство реконфигурируемых вычислительных систем». Я работал в достаточно серьезной западной конторе, которая занималась, в том числе разработкой достаточно серьезного хардвара, выпускаемого серийно, и хорошо понимаю, что просто «голая плата с 16 FPGA» сама по себе малоинтересна и назвать это «реконфигурируемой вычислительной системой» можно с большой натяжкой (также как кучу из 200 тонн кирпичей – красивым домом).

3. Основная сложность (по оценкам многих умных людей) это вовсе не «сделать плату с 16 Virtex V на борту», а разработать методологию разработки и сами средства разработки для таких систем. Существует, наверное, несколько десятков проектов, в которых делаются попытки эту проблему решить , но пока «чаша Грааля» не найдена, насколько я знаю. Команда Каляева и Левина пишет (в книге и в статьях), что ими разработан язык высокого уровня Colamo (Коламо ?), который эти проблемы решает. Опять же, на западе ничего про этот чудо-язык никто не знает.

4. В книге встречаются такого рода высказывания (это точные цитаты из книги, без комментариев):

а)HDL-языки являются очень удобным средством описания различного рода интерфейсов, однако при реализации сложных вычислений разработчик не имеет возможности влиять на процедуру отображения написанного на HDL кода на физические ресурсы кристалла… …поэтому при реализации сложного вычислительного алгоритма представляется предпочтительным использование графического редактора.
б)…стандартные средства САПР ПЛИС позволяют программировать схемотехнику только одиночных ПЛИС
в)Процесс же реконфигурирования ПЛИС – очень длительный процесс, занимающий десятки секунд [50]. ([50] Каляев А.В., Левин И.И. Модульно-наращиваемые многопроцессорные системы со структурно-процедурной организацией вычислений. –М. Янус-К, 2003, 380)

5. Ни в книге, ни в одной другой работе указанных авторов практически нет ссылок на хоть какие-либо современные работы западных авторов. Есть либо общие слова, типа «на Западе работы ведутся», либо ссылки на какие-то третьестепенные малозначащие работы, либо на «старую классику». На западе сотни и тысячи работ по этой тематике. В книге из 146 ссылок только 5-6 на западные работы, хотя реально, в данном направлении число публикаций из СССР/России в процентном отношении составляет не более 1% (я имею в виду период реального развития тематики RC/HPRC, то есть с конца 90-х годов XX века, а не составление списка из сотен «работ» про «сферических коней в вакууме», датированных 60-80 годами).

6. Западные товарищи, в свою очередь, «в упор не видят» команду Каляева и Левина в своих работах.

Поэтому, есть большая просьба к людям, которые знают реальное положение дел по этим проектам (да и всем остальным тоже), высказаться по данной теме. Возможен, конечно, вариант, что команда из Таганрога опередила западных разработчиков лет на 10-20, но мне что-то в это слабо верится rolleyes.gif .
CaPpuCcino
Цитата(mikeT @ Feb 15 2009, 01:53) *
а также по ряду статей, которые легко находятся в инете

раз вы их уже легко нашли, киньте, пожалуйста, ссылочки в порядке значимости. иначе обсуждать всё, что можно запихнуть под лозунг "реконфигурируемые ВМ", через призму вопроса типа "чьё кунг-фу круче" задача неподъёмная (полная аналогия с нанизмом, особенно если речь идёт об осваении денег гос. целевой программы)
mikeT
К сожалению с сайтом www.parallel.ru какие-то проблемы - ссылки "совсем точно" дать сейчас не получается (в браузере все время www.parallel.ru отображается, сам сайт работает).
Но можно посмотреть вот отсюда (www.parallel.ru) и при желании найти по теме "Компьютеры с реконфигурируемой архитектурой" (название раздела на сайте) кучу ссылок и информации и на работы и на проекты и т.п.

также, достаточно погуглить по словам "каляев левин" и найдется достаточное количество информации.

Что касается "в порядке значимости", то мне трудно указать, что у авторов более значимое, а что менее значимое. Наверное книга (указана в моем первом посте) "накрывает" все их остальные работы.

Я потому и написал на форум, что из их работ полного понимания "а что там реально сделано то?!" не получил

P.S. вот тут можно глянуть http://www.mvs.tsure.ru/publications.html - список публикаций, отсортированный по значимости похоже smile.gif
http://parallel.ru/FPGA/papers/rmvs.pdf - это книжка та самая

еще - http://www.ict.edu.ru/ft/005788/review-hpc2008.pdf - крайне интересный документ, где по слову "реконфиг" находятся все ссылки на проекты команды из Таганрога
1S49
Цитата(mikeT @ Feb 15 2009, 01:32) *
К сожалению с сайтом www.parallel.ru какие-то проблемы - ссылки "совсем точно" дать сейчас не получается

До чего дожились,– иронически сказал Полесов,-вчера весь город обегал, плашек три восьмых дюйма достать не мог. Нету. Нет! А трамвай собираются пускать. ...
Ильф. Петров. 12 стульев.
khach
IMHO FPGA хороши для "тренировки на кошках"- по скорости они спец-микросхемы никогда не обгонят, но проверять дизайн и теорию на них нужно. Только пачка плат на базе последних Virtexов стоит ой как дорого. Ну и проблема с программистами- создать суперкомпьютер в принципе (при наличии финансирования) легко, а вот эффективно написать под него прикладную программу... Хотя если это академический ВЦ то толпа правильных студентов за год полурабочий код пишут. С другой стороны побить решения типа GPGPU (использование графических сопроцессоров для рассчетов) по соотношению цена-скорость сейчас сложновато. Вот если бы в статьях были примеры решения конкретных научных или производственных задач на предложенной платформе, а не "терафлопсомерянье"....
По поводу "Грааля"- если его найдут, то статей о нем небудет до момента получения патента или выхода коммерческого продукта- уж слишком ставки высоки с такой игре. А по поводу "опередить на 20 лет" уж извините- неверю, разве что ИИ (искуственный интеллект) запущенный на этой плате сам пишет эти статьи :-)
Смысл в реконфигурации ИМХО один- повторное использование оборудования, чтобы платы не переделывать. Менять архитектуру на-лету- очень непонятное решение. Слишком долго по сравнению с тактом машины, а коммутировать потоки данных можно и без таких извращений.
gosha
Если это опять ни с чем ни совместимый Проц (intel/arm/sparc/mips/sh).... - Вероятнее всего, это малоперспективно, но с гораздо бОльшей защитой от вирусов.
Все нииокр хороши (даже безрезультатные), если оплачиваются.
Впрочем, если они сделают двоичную трансляцию ... http://www.mcst.ru/b_13.shtml
Из слабенького Эльбрус 90 микро можно хоть что сделать, хоть многопроцессорный выч комплекс, хоть кластер, хоть кпк- т.к. туда ставится linux, solaris, qnx и все идущее на sparc v8, v9.
mse
Цитата(gosha @ Feb 16 2009, 10:27) *
Если это опять ни с чем ни совместимый Проц (intel/arm/sparc/mips/sh).... - Вероятнее всего, это малоперспективно, но с гораздо бОльшей защитой от вирусов.
...

Суперкомпутер, это настолько вещь в себе, что с совместимостью можно не париться. Особенно, если он будет заточен под узкую задачу. Ну, там, ядрёный взрыв считать, погоду или гидро-газодинамику.
Rst7
Цитата
Особенно, если он будет заточен под узкую задачу. Ну, там, ядрёный взрыв считать, погоду или гидро-газодинамику.


Или криптографию, точнее, криптоанализ wink.gif
DmitryR
Тот факт, что они начали с изготовления собственной платы, а не взяли готовую (http://www.synplicity.com/products/haps/ например) говорит мне, что как раз в части алгоритмов там голяк. То есть деньги будут освоены, а в качестве результата будут показаны платы с каким-нибудь мутным софтом. Потому что купить готовое железо на порядок дешевле, и если оно нужно именно как база для обкатки софта - то так все и делают. Если делают не так - значит хотят подать железку как самоценность.
Boris_TS
Цитата(DmitryR @ Feb 16 2009, 14:15) *
Тот факт, что они начали с изготовления собственной платы, а не взяли готовую (http://www.synplicity.com/products/haps/ например) говорит мне, что как раз в части алгоритмов там голяк. То есть деньги будут освоены, а в качестве результата будут показаны платы с каким-нибудь мутным софтом. Потому что купить готовое железо на порядок дешевле, и если оно нужно именно как база для обкатки софта - то так все и делают. Если делают не так - значит хотят подать железку как самоценность.

Делают они подобные железяки с ооочень давно... Насколько я знаю еще с серии XC4000, ну и дошли до V5. Естественно накоплена некоторая куча наработок, которые не хочется терять... а на сколько готовое железо американского дяди подходит под имеющиеся аппаратные наработки - еще очень большой вопрос - тем более, если предположить, что наша команда идёт путем отличным от супостата (а это я исключать не могу).
Как это звучит ни странно (для подобного рода устройств), но "железяки" Таганрогской команды покупаются (плохо или хорошо - не мне судить) - значит, всё-таки кто-то с ними работает.

К сожалению, необходимо отметить, что сайт mvs.tsure.ru - находиться в подвешенном состоянии, т.к. TSURE (Таганрогского Государственного Радиотехнического Университета) уже нет. Эго в принудительном порядке влили в ЮФУ (Южный Федеральный Университет) и соответственно переименовали в ТТИ ЮФУ (Таганрогский Технологический Институт ЮФУ). За всеми этими передрягами плохо видно, что группа Левина несколько удалились от ТТИ ЮФУ.

Если есть баАальшое желание узнать информацию от самих разработчиков, то думаю лучше им позвонить по телефону.
HardJoker
Цитата(DmitryR @ Feb 16 2009, 13:15) *
Тот факт, что они начали с изготовления собственной платы, а не взяли готовую (http://www.synplicity.com/products/haps/ например) говорит мне, что как раз в части алгоритмов там голяк. То есть деньги будут освоены, а в качестве результата будут показаны платы с


Или, например, такую - http://www.dinigroup.com/DN9000k10PCIe8T.php
DmitryR
Цитата(Boris_TS @ Feb 16 2009, 13:58) *
а на сколько готовое железо американского дяди подходит под имеющиеся аппаратные наработки - еще очень большой вопрос - тем более, если предположить, что наша команда идёт путем отличным от супостата (а это я исключать не могу).
Это известная отговорка: у американцев киты говно, на них ничего сделать нельзя, мы будем делать свои. Понятно что на стандартных китах обычно не откатать 100% идей, но 90% обычно можно. Можно еще, взяв кит за основу доделать к нему мелкие платки. Вобщем, было бы желание.

Цитата(Boris_TS @ Feb 16 2009, 13:58) *
Как это звучит ни странно (для подобного рода устройств), но "железяки" Таганрогской команды покупаются (плохо или хорошо - не мне судить) - значит, всё-таки кто-то с ними работает.
Стомегагерцовые процессоры Элвиса тоже покупаются по $200 штука, но это IMHO ничего не значит. Не по доброй это все воле.

Цитата(Boris_TS @ Feb 16 2009, 13:58) *
К сожалению, необходимо отметить, что сайт mvs.tsure.ru - находиться в подвешенном состоянии, т.к. TSURE (Таганрогского Государственного Радиотехнического Университета) уже нет. Эго в принудительном порядке влили в ЮФУ (Южный Федеральный Университет) и соответственно переименовали в ТТИ ЮФУ (Таганрогский Технологический Институт ЮФУ). За всеми этими передрягами плохо видно, что группа Левина несколько удалились от ТТИ ЮФУ.

Если есть баАальшое желание узнать информацию от самих разработчиков, то думаю лучше им позвонить по телефону.
Вот-вот, если бы это все было коммерчески интересно - и сайт бы был, и информация на нем.
jojo
А зачем нужен РЕконфигурируемый на ходу процессор?
Когда он узнает, как ему реконфигурироваться? Где он берет новую конфигурацию?
Набор конфигураций ограничен или нет? Производятся они динамически (часто) или статически (1 раз после включения заданной программы)?
Почему обычный ускоритель на ПЛИС не является в чистом виде реконфигурируемы процессором (как я понял из вышеизложенного)?

Сложные платы надо делать самим. Как еще разработчикам поднакопить денег в условиях кризиса?
MrYuran
Цитата(DmitryR @ Feb 16 2009, 14:46) *
Это известная отговорка: у американцев киты говно, на них ничего сделать нельзя, мы будем делать свои. Понятно что на стандартных китах обычно не откатать 100% идей, но 90% обычно можно. Можно еще, взяв кит за основу доделать к нему мелкие платки. Вобщем, было бы желание.

Киты - для студентов, которые хотят повторить какой-нибудь экзампл, но руки кривоваты.
vik0
Цитата(MrYuran @ Feb 16 2009, 14:37) *
Киты - для студентов, которые хотят повторить какой-нибудь экзампл, но руки кривоваты.

Вы видели "кит" по ссылке HardJoker-а? Хочу я посмотреть на студента с этим "китом" и на его "экзампл" 07.gif
MrYuran
Цитата(vik0 @ Feb 16 2009, 15:44) *
Вы видели "кит" по ссылке HardJoker-а? Хочу я посмотреть на студента с этим "китом" и на его "экзампл" 07.gif

Всё равно, это для тех, кто хочет догнать.
А наши хотят "наискосок" срезать...
jojo
А, вот оно:
http://parallel.ru/FPGA/publications.html

http://www.google.ru/search?hl=ru&neww...mp;aq=f&oq=

А что, нормальные машинки. Обычные ускорители на ПЛИС, только с заранее продуманными соединениями по LVDS.

Я только не понимаю, почему процессоры сильно уступают на вещественных вычислениях. Расширения SSE использовались? 64-битная ос и ручная оптимизация кода на ассемблере использовались?

Печатные платы после изготовления теряют реконфигурируемость (Р), тем самым ограничивая показатель Р для произвольной задачи.
Доступность внутри ПЛИС данных растет с увеличением скорости интерфейсов, поэтому лучше делать на LXT и т.п.
Памяти желательно побольше и к каждой ПЛИС.

Я не понимаю, в чем здесь вообще может быть новизна, в этой теме? Каждый, кому не все равно, может разработать такой комплекс, затратив примерно 5-10 человеко-лет (как мы ранее выяснили в другой ветке на форуме) и 1 млн ам долл.

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

Чистое железо как раз лучше без методологий и графических редакторов, а в верилоге все нормально делается. Хотя, конечно, ISE из командной строки вполне можно вызвать и пересобрать проект из пользовательской программы.

Даже сам выбор ПЛИС - Xilinx. Ну почему именно Xilinx?
Обратите внимание на тактовую частоту - 250 МГц. Использованы схемы с малой задержкой в тактах? Прошивка неудачно ложится на структуры ПЛИС при высокой занятости кристалла?
gosha
Цитата(mse @ Feb 16 2009, 11:08) *
Суперкомпутер, это настолько вещь в себе, что с совместимостью можно не париться. Особенно, если он будет заточен под узкую задачу. Ну, там, ядрёный взрыв считать, погоду или гидро-газодинамику.



М.б. Но делают их на power_pc, intel itanium ...

Пример несовместимого суперкомпьютера в студию.
mse
Цитата(gosha @ Feb 16 2009, 17:55) *
М.б. Но делают их на power_pc, intel itanium ...

Пример несовместимого суперкомпьютера в студию.

На топовой видюхе.
khach
Напихиваем 3 таких карты в материнку с 3xPCIe раземами и наслаждаемся терафлопсам.
http://ati.amd.com/technology/streamcomput...tream_9250.html
А ожидаются скоро AMD FireStream™ 9270
Конечно приходиться ломать все привычки программиста
MrYuran
Цитата(khach @ Feb 17 2009, 11:47) *
Напихиваем 3 таких карты в материнку с 3xPCIe раземами и наслаждаемся терафлопсам.

Сеня, про зайцев - неактуально! (С)
флопсы давно уже петами меряют, а не терами
khach
Цитата(MrYuran @ Feb 17 2009, 10:51) *
Сеня, про зайцев - неактуально! (С)
флопсы давно уже петами меряют, а не терами

Актуально и очень, когда они у тебя под столом стоят, а не петафлопсы на другом континетне, куда прорываться на счет приходиться как на ЕСку или БЭСМ6 в студенческие времена. Хотя если бюджет резиновый то набить тысячью такимх ящиков комнату и повязать их гигабитным эзернетом- вот и петафлопс с копейками. Вот только софта под такую архитектуру кластера пока ненаписали. НО в течении года- двух наверно появится- тогда кластера GPU-CPU-ethernet станут актуальны.
А вообще в архитектуре суперкомпов сейчас имеет смысл плясать от решаемой задачи. Если это FEM, то соптимизировать одно процессорное устройство под физику узла меша очень пользительно. Т.е число акумуляторов равно числу физических переменных сетки, если это квантмех- есть аппаратный интегратор для узла по всему пространству меша итд. Скорость счета поднимается в разы, в виртекс влазит больше процессоров итд.
dch
Цитата(mikeT @ Feb 15 2009, 00:53) *
Я работал в достаточно серьезной западной конторе, которая занималась

сотрудники западных фирм активно применяют фальшивые документы, дипломы - это к сожалению только одно что можно с полной уверенностью сказать о них. Проблемы многих на пост советском пространстве начались с попытки взаимодействия с западными "коллегами". У меня вобще складывается впечатление что большинство сотрудников западных фирм, прежде всего европейских это просто пойманные на краже.

Цитата(mikeT @ Feb 15 2009, 01:32) *
http://parallel.ru/FPGA/papers/rmvs.pdf - это книжка та самая

вот эта книжка
"«Реконфигурируемые мультиконвейерные вычислительные структуры» (Каляев И.А., Левин И.И., Семерников Е.А., Шмойлов В.И.", и так далее ?
mikeT
Цитата(khach @ Feb 17 2009, 15:05) *
А вообще в архитектуре суперкомпов сейчас имеет смысл плясать от решаемой задачи. Если это FEM, то соптимизировать одно процессорное устройство под физику узла меша очень пользительно. Т.е число акумуляторов равно числу физических переменных сетки, если это квантмех- есть аппаратный интегратор для узла по всему пространству меша итд. Скорость счета поднимается в разы, в виртекс влазит больше процессоров итд.

Именно в этом и весь цимес rolleyes.gif
Кстати, существуют ли на данный момент FPGA с ядрами FPU (Floating-Point Unit)? По аналогии с DSP блоками в существующих FGPA.
Под ядром я в данном случае понимаю "тупой" блок умножителя и/или сумматора по стандарту IEEE-754-85.
DmitryR
Нет, потому что в FPGA IEEE-754-85 и так легко реализуется на нескольких умножителях с небольшим количеством управляющей логики, нет смысла сращивать умножители в менее универсальную структуру.
mikeT
Цитата(DmitryR @ Feb 17 2009, 18:20) *
Нет, потому что в FPGA IEEE-754-85 и так легко реализуется на нескольких умножителях с небольшим количеством управляющей логики, нет смысла сращивать умножители в менее универсальную структуру.

К сожалению, Вы неправы:

1. ресурсы на реализацию IEEE-754-85 требуются довольно значительные, например смотрим (с сайта Альтеры) сколько ресусров требуется для Stratix III
NIOS-II/f - 1100 ALUTs
NIOS-II/s - 770 ALUTs

alt_fp_add_sub - 1939 (!) ALUTs (double)
alt_fp_mult - "всего" 296 ALUTs (double)

У Xilinx примерно тоже самое, у сторонних разработчиков IP-ядер тоже не лучше.
+ к этому добавьте то, что скорость работы примерно на порядок меньше чем у "железных" процессоров (FPU блок)

2. Проблема эта "у них" (за бугром) осознана, отрефлексирована, причем в первую очередь именно людьми тесно связанными с HPC (High-Performance Computing) и по сути "промышленности" выдано "ТЗ", которое в двух словах звучит примерно так "сделайте нам структуры с FP ядрами, чтобы мы могли быстро считать".
Скорость вырастет заметно, как за счет того что ядро стало монолитным, так и за счет сокращения потерь на роутинг (шины 64 битные будут уже заранее упакованы).
Ну в общем см. "железные" решения типа той -же CUDA - и сравнивай скорость, хотя это конечно грубая прикидка.

пара ссылок в тему:
http://www.pldesignline.com/howto/202200714
http://www.hpcwire.com/features/17896629.html?page=2
Shtirlits
Мне удивительно, но тема ускорителей каких-либо вычислений на FPGA время от времени возникает.
Раскажу одну историю:

Задача что-то обрабатывает с Фурье. Считает на 2-х процессорном opteron 2.2GHz секунд 50.
Задача переписывается на другом языке для работы в кластере. Ускорение примерно N/2 раз. Где N-количество узлов кластера. Ф уложиться надо секунд в 5-6.
Далее эту задачу решают Таганрог и я.
Чтобы понять, как и что нужно считать, переписываю задачу на Си. Ничего толком не меняю, только исправляю ошибки и кодирую с учетом знания о кэше и его размере. Задача считается 8 секунд на одном процессоре.
Меняю алгоритм на блочный, с размером блока, который бы поместился в FPGA и уж точно поместится в кэш процессора, специальными библиотеками, типа fftw не пользуюсь. На одном процессоре 3 секунды. По времени уложились.
Но поскольку задача в том, чтобы сделать именно ускоритель и именно на FPGA, то делается ускоритель на pci stratix dev kit. В итоге, задача считается 0.1 секунды и упирается в шину PCIx, а если бы не уперлось в шину, то сразу уперлось бы в скорость памяти stratix, а чуть дальше в умножители.
Таганрог вроде бы тоже задачу решил, но время они считают после загрузки данных внутрь.
Еще раз, Данные сначала как-то загружаются, а вот потом они быстро считают. И потом данные опять как-то выгружаются.
На таганрогской установке я не нашел быстрого интерфейса между сетью FPGA и чем-то внешним.
Да и на любой FPGA-шной плате таких интерфейсов, дающих шанс ускорителю побороть процессор общего назначения, нет. Почему? Потому что на FPGA мало ножек или трансиверов. Узкое горло. Там широкое горло только одно - распределенная память. Я говорю про топовые stratix и virtex.
Поэтому остаются только задачи типа малоразрядного Фурье, криптоанализ и т.п. Ни о каких плавающих точках речь идти не может.
Я думаю, что таганрогские ускорители нужно использовать именно для криптоанализа, потому что данных при этом поступает мало, а работать с ними нужно много.

Зачем нужны FPGA ?
Они нужны там, где важна быстрая реакция. Вот никакий nehalem не сможет среагировать за 10nS на внешнее событие.
Коммутаторы можно делать, военное что-нибудь...

Удивительно, что про ускорители на FPGA заходит еще речь.
mikeT
Цитата(Shtirlits @ Feb 18 2009, 11:49) *
Мне удивительно, но тема ускорителей каких-либо вычислений на FPGA время от времени возникает.
...
Да и на любой FPGA-шной плате таких интерфейсов, дающих шанс ускорителю побороть процессор общего назначения, нет.
....
Поэтому остаются только задачи типа малоразрядного Фурье, криптоанализ и т.п. Ни о каких плавающих точках речь идти не может.
...
Удивительно, что про ускорители на FPGA заходит еще речь.


Как говорится, "а мужики то не знают" biggrin.gif
Напишите людям из консорциума http://www.openfpga.org/ и людям, курирующим проект RAMP (http://ramp.eecs.berkeley.edu/index.php?index), чтобы они бросали возиться с "ускорителями на FPGA" и сэкономили кучу миллиардов долларов.

Если по существу:
1. Посмотрите по этим ссылкам состав участников (как организации и концерны, так и люди), спонсоров
2. Посмотрите, что уже РЕАЛЬНО сделано и сколько денег вложено. (эти ссылки - малая часть, верхушка айсберга)
(!) отдельно посмотрите, что "мужики то и не планируют сворачивать разработки"!
3. Посмотрите, какие есть успехи, проблемы и несбывшиеся надежды.

Это не "отсылка к авторитетному дяде" (типа, "а мой папа так говорит!" ), а просто попытка задуматься "если (в частности) Cray, General Electric, Intel, IBM, MIT, Stanford так серьезно роют и/или спонсируют в этом направлении и уже многое нарыли и сделали, то может быть не они такие тупые, а я в вопрос серьезно не вник?"

Возможный ответ "там за бугром идиоты, а мы тут все умные" предлагаю не рассматривать, так как он не конструктивен и, более того, опасен для Росссии.
zzzzzzzz
Цитата(mikeT @ Feb 18 2009, 10:51) *
.....Возможный ответ "там за бугром идиоты, а мы тут все умные" предлагаю не рассматривать, так как он не конструктивен и, более того, опасен для Росссии.
Ну что Вы, идиоты только у нас живут! biggrin.gif
Сам по себе бизнес по продаже суперкомпов - убыточное занятие по определению.
Чаще всего это просто "дутие щёк" и распил госзаказов. Что у них, что и у нас.

Не, суперкомпы нужны, конечно. Несколько штук на всю страну, пока.
А то, что процессор шустрее фпга в разы - очевидно всем.
Суперкомп на фпга можно рассматривать только как промежуточный вариант для разработки нужных ЭйСиКов и отладки алгоритмов. Но, без этого второго шага, первый останется просто развлечением для узкого круга "гениев" за гос. счёт.
XVR
Цитата(mikeT @ Feb 17 2009, 13:59) *
Именно в этом и весь цимес rolleyes.gif
Кстати, существуют ли на данный момент FPGA с ядрами FPU (Floating-Point Unit)? По аналогии с DSP блоками в существующих FGPA.
Под ядром я в данном случае понимаю "тупой" блок умножителя и/или сумматора по стандарту IEEE-754-85.
Не совсем FPU, но есть такая фирма XMOS, выпускает процессор XCore, они его называют SDS (Software Defined Silicon). Попытка сделать нечто вроде FPGA у которой вместо LUT'ов - процессоры (для любителей точных формулировок - это очень упрощенный взгляд)
mikeT
Цитата(zzzzzzzz @ Feb 18 2009, 14:01) *
Ну что Вы, идиоты только у нас живут! biggrin.gif

Знаете, если серьезно, то поработав "там" достаточно долгое время, мне кажется, что у нас народ умнее и сообразительнее rolleyes.gif (я имею в виду инженерные и научные кадры). Но это так - небольшой офтопик rolleyes.gif

Цитата(zzzzzzzz @ Feb 18 2009, 14:01) *
Сам по себе бизнес по продаже суперкомпов - убыточное занятие по определению.
Чаще всего это просто "дутие щёк" и распил госзаказов. Что у них, что и у нас.

Сомневаюсь, что "у них" весь рынок суперкомпов - это госзаказ. Также сильно сомневаюсь, что это "убыточное занятие по определению".
Задач очень много, где это востребовано и оправдано коммерчески (применение суперкомпьютеров). Но в общем это оффтопик и, честно, говоря я на эту тему спорить не горю желанием.

Цитата(zzzzzzzz @ Feb 18 2009, 14:01) *
Не, суперкомпы нужны, конечно. Несколько штук на всю страну, пока.
А то, что процессор шустрее фпга в разы - очевидно всем.

На всех задачах "процессор шустрее фпга в разы"? "западные" люди приводят примеры, где наоборот FPGA шустрее в разы (с подробным описанием что и как делали и на чем). По ссылкам HPRC если поискать - много РЕАЛЬНЫХ примеров, как раз, и они "типичны" для супер-компьютинга задач.
Вы считаете, что это все "обман трудящихся"? rolleyes.gif

Цитата(zzzzzzzz @ Feb 18 2009, 14:01) *
Суперкомп на фпга можно рассматривать только как промежуточный вариант для разработки нужных ЭйСиКов и отладки алгоритмов. Но, без этого второго шага, первый останется просто развлечением для узкого круга "гениев" за гос. счёт.

Согласен, что фпга - самое то для "обкатки" сложных систем и отладки алгоритмов. Именно в этом основная идея проекта RAMP - обкатать очень сложные вычислительные системы на HPRC-системе.

Но посмотрите по ссылкам, котрые я приводил, реальные примеры - тот же Cray - неужели это контора с ничего не понимающими инженерами, которые ради прикола FPGA поставили в суперкомп? Именно как вычислительный блок. Ну и не один Cray, далекон не один.
EvgenyNik
Полагаю, что производство ASICов экономически целесообразно только в немалых количествах. Да и технологически, наверное, не имеет смысла готовить производство ради нескольких штук.
Решения на FPGA гибче и какие-то незначительные "фичи" можно затачивать под каждого конкретного заказчика и даже под конкретное единичное устройство. Это проще, быстрее и дешевле, нежели лепить новый силикон.
zzzzzzzz
Цитата(Евгений Николаев @ Feb 18 2009, 12:06) *
Полагаю, что производство ASICов экономически целесообразно только в немалых количествах. Да и технологически, наверное, не имеет смысла готовить производство ради нескольких штук.
Решения на FPGA гибче и какие-то незначительные "фичи" можно затачивать под каждого конкретного заказчика и даже под конкретное единичное устройство. Это проще, быстрее и дешевле, нежели лепить новый силикон.
Так было. Но, с каждым годом грань "большого количества" уменьшается стремительно. В конце концов, это вопрос экономический и политический. Я вот, к примеру, сейчас "клепаю" ASIC, который будет выпускаться только сотнями в год, скорее всего. Но, он нужен и его хотят.

Также, где кончается фпга и начинается проц - тоже постепенно размываемая граница. Например, реконфигурируемый проц "Cell" можно рассматривать и как шаг в сторону фпга.

А я-то говорил о том, что если отлаженный на фпга алгоритм перекинуть в ASIC, то ASIC будет шустрее в разы. Только даже за счет устранения "левых" промежуточных коммутаций и паразитов.

Цитата(mikeT @ Feb 18 2009, 11:40) *
....
Но посмотрите по ссылкам, котрые я приводил, реальные примеры - тот же Cray - неужели это контора с ничего не понимающими инженерами, которые ради прикола FPGA поставили в суперкомп? Именно как вычислительный блок. Ну и не один Cray, далекон не один.
Скорее всего, это не от хорошей жизни - просто не успели испечь чипы, и, как обычно, выпустили, по сути, прототип.
Так что, это не приколы, а "подпорки".
DmitryR
Цитата(zzzzzzzz @ Feb 18 2009, 12:21) *
Так было. Но, с каждым годом грань "большого количества" уменьшается стремительно. В конце концов, это вопрос экономический и политический. Я вот, к примеру, сейчас "клепаю" ASIC, который будет выпускаться только сотнями в год, скорее всего. Но, он нужен и его хотят.
Грань "большого количества" с каждым годом только увеличивается, так как стоимость масок только растет и на сегодня уже измеряется миллионами долларов за комплект. ASIC сотнями в год - это политика чистой воды, 100% экономически неоправдано, даже если по MPW гнать.
jojo
Есть несколько российский фирм, которые разрабатывают аналогичные ускорители вычислений на ПЛИС.
Бюджет малость подпиливается, но железо и софт все же есть и они работают. Железо современное, Плисы свежие. Stratix 4 и Virtex 6 на очереди, кстати.
ASICи делаются.
Плохие результаты в вычислениях, как отметил Штирлиц, объясняются плохим качеством программ и незнанием целевой архитектуры, например, x86.

Так в чем, собственно, дело, товарищи? В чем вопрос?
Что делать?
Нужно разработать всеобъемлющий язык с ООП с расширениями для ускорителей на ПЛИС?
ПЛИС-сопроцессор пустить в массы, выпустив к нему нехитрый SDK?
eugen_pcad_ru
ИМХО Это авантюра чистой воды (денег все хотятsmile.gif) В конце скорее всего будет некий теоретический трудsmile.gif... Попробую навести конкретные справкиsmile.gif
zzzzzzzz
Цитата(DmitryR @ Feb 18 2009, 13:03) *
Грань "большого количества" с каждым годом только увеличивается, так как стоимость масок только растет и на сегодня уже измеряется миллионами долларов за комплект. ASIC сотнями в год - это политика чистой воды, 100% экономически неоправдано, даже если по MPW гнать.
Подумайте - что такое миллион бяксов, при бюджете разработки в несколько сотен лимонов? Да 10 чипов будут печь, не проблема. Экономический эффект будет всё равно. Да и политика - тоже бизнес.
Хотя, всё это офф, пожалуй.

ПС. И потом, кто заставляет лезть в супер-новые техпроцессы? Еще и относительно старые не распаханы. И по ним, в шаттлах, реально делать чудеса за сущие копейки.

Единственное преимущество фпга - скорость реализации продукта. А это преимущество, при желании, легко устраняется финансированием - девять "беременных" дизайнеров могут родить за один месяц, в отличии от девяти беременных женщин, образно говоря.
mikeT
Цитата(jojo @ Feb 18 2009, 16:11) *
Есть несколько российский фирм, которые разрабатывают аналогичные ускорители вычислений на ПЛИС.


Не могли бы Вы их назвать, если не секрет? Если навскидку помните, конечно.

Цитата(jojo @ Feb 18 2009, 16:11) *
Так в чем, собственно, дело, товарищи? В чем вопрос?
Что делать?
Нужно разработать всеобъемлющий язык с ООП с расширениями для ускорителей на ПЛИС?
ПЛИС-сопроцессор пустить в массы, выпустив к нему нехитрый SDK?


Да. Основная проблема - именно разработать МЕТОДОЛОГИЮ проектирования и средства разработки (а перед этим методологию разработки таких средств разработки). Грубо говоря, что-то типа такого - "ученый" пишет свою программу на Фортране для моделирования Навье-Стокса, а некий чудо-софтвар волшебным образом генерит Configware (выч-блоки) и Flowware (потоки данных). На конкретной задаче все ресурсы кристалла (грубо говоря, в пределе - куча из N миллиардов транзисторов) кидается на то, чтобы поставить 2000 умножителей и 15 сумматоров + завести между ними специфичные для данной задачи пути прокачки данных. Именно для этой конкретной задачи ничего кроме этих 2000 умножителей и 15 сумматоров не надо, поэтому вся "масса" (ресурсы) брошены на это. Нет необходимости во всем остальном.

Это, конечно, пока фантастика - я имею в виду решение в общем виде, а не примеры с C2H и т.п.
Если посмотреть что пишут про эту проблему люди из не самых маленьких контор и не самых отсталых научных центров, то пока, говоря по правде, нет такого решения.
Вот почему я и поднял такую тему - в Таганроге, по их словам, разработан язык Коламо, который эту проблему снимает

P.S.
Если кому интересно - некоторый обзор проблем и "головняков" дан в статье "Is high-performance reconfigurable computing the next supercomputing paradigm?" - находится по гуглю легко. Там разные люди свое видение проблемы и перспектив накидали. Спектр ораторов весьма широкий - от человека из Xilinx (босс какой-то вроде, ну понятно - ксайлинкс тут заинтересовнное лицо rolleyes.gif ) до представителей из "Сандии" (http://www.sandia.gov/).
jojo
Цитата(mikeT @ Feb 18 2009, 14:54) *
Не могли бы Вы их назвать, если не секрет? Если навскидку помните, конечно.


Не могу, т.к. нельзя.

Все структуры делаются вручную в САПР ПЛИС. Чудо-софтвара нет.

Если Таганрог продвинулся в этом вопросе - можно у них что-нибудь прикупить, если продадут.
Shtirlits
Судя по этому форуму, не только буржуйские мужики не знают.
На сайтах я вижу peaple, publications, sponsors.
Не вижу download development tools.
Вижу, что люди собрались и трындят, хотя, денег вот на это добыли, уважаю.
Может, плохо искал, тогда извиняюсь, покажите, где у них результаты, где показатели лучше, чем на процессорах общего назначения?


Продолжу рассматривать свой случай, так как это характерный пример.

Итак, что происходило:

1) прикладной специалист пишет программу на Си, допускает ошибочку в комплексном умножении, не лучшим способом выбирает метод, не учитывает ошибок округления.
Запомним этого человека, закроем глаза не перечисленные ошибки.
Он взорвал себе мозг и понял, как нужно считать!

2) далее специалист по системе динамического распараллеливания не вдаваясь в подробности (важно!) подправил программу для кластера. Не получилось. Долго и дорого и по прежнему с ошибками.

3) программу дали специалисту по архитектурам, по x86 и fpga. Так вот пока я не разобрался что именно мы считаем, не исправил ошибку, не определил допустимые ошибки округления, не сменил метод вычислений - тоже получалось плохо, в fpga не лезло, на процессоре считалось долго. А когда я все это сделал, то и opteron вполне справился. Один. Без всяких ускорителей за тысячи долларов.

Конечно, комплекс из драйвера, прикладной задачи и ускорителя на stratix в итоге обогнал opteron раз в 30, но opteron считал в floating point, а stratix в числах с фиксированной точкой и мантиссой меньше 16 бит!
Я уверен, что если использовать процессор по назначению, то есть, применить вылизанную годами библиотеку fftw, а еще лучше, написать целочисленный вариант, полный аналог сделанного в stratix с использованием SIMD-команд. Вот тут и шина не помешает и память. Думаю, что все упрется в чтение файла с диска.

О чем тут речь?
О том, что избежать погружения в прикладную область очень трудно.
А погрузившись нужно не утратить информацию о платформе.
Только имея информацию о задаче и о платформе можно сделать что-то быстрое.

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

Однако, средств, позволяющих взять программу на C или FORTRAN и превратить ее в bitstream для FPGA+драйвер+прикладная задача - я не знаю. Ну, есть математические пакеты, которые для некоторых задач могут сделать прошивку для FPGA, не изучал и сомневаюсь в возможности применения. Возможно, напрасно.

А раз так, то остается только писать, переписывать и отлаживать, постепенно погружаясь в прикладную область и в глюки платформы. Хорошо, если есть халявный ресурс в виде студентов или еще чего-то такого, что готово писать и переписывать, да еще и обучено как надо.

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

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

Да, а еще ведь тайминги могут не получиться нужные! Это же как у пожарных, работа отличная, но как place & route, так хоть увольняйся. Ну и как быстро объяснить математику про setup-time и hold-time и про почему оно не может быть размещено рядом из-за разных clock_enable сигналов? А быстро объяснить нельзя, а если не понимать, то получится плохо. Халявных студентов тоже касается.

Еще раз, чуть более внятно:
Для успеха нужно 2 части знаний, 1) о задаче 2) о платформе.
Так вот, 2 часть в FPGA большая. Её нужно исхитриться куда-то засунуть, в голову разработчику или в средство разработки. А голова у разработчика хоть и выглядит резиновой, краник туда небольшой ведет. Все учесть не получается и в результате ускорения может не получиться.
У процессора 2-я часть меньше, во всяком случае, голов и средств разработки с загруженным знанием о процессоре больше на рынке.
В результате, за одинаковые деньги и время на CPU задача начнет считаться существенно раньше и будет считаться быстрее, чем на FPGA.

К экономической целесообразности все это не имеет никакого отношения.

PS: но если хочется ускоритель, да на FPGA, да сложная задача и время не ограничено и есть евросумма с шестью нулями - добро пожаловать!
HardJoker
Цитата(jojo @ Feb 18 2009, 15:27) *
Не могу, т.к. нельзя.

Все структуры делаются вручную в САПР ПЛИС. Чудо-софтвара нет.

Если Таганрог продвинулся в этом вопросе - можно у них что-нибудь прикупить, если продадут.


На уже упоминавшимся http://www.parallel.ru/ смотрим подразделы http://www.parallel.ru/russia/organizations.html и http://www.parallel.ru/computers/rus_vendors.html. Конторы наподобие Цифроника, Коррунда-М или Спирита подойдут вряд ли, но их существенно больше.
Leka
Цитата(mikeT @ Feb 18 2009, 14:54) *
в Таганроге, по их словам, разработан язык Коламо, который эту проблему снимает

Если правильно понял, это язык с однократным присваиванием, те одного уровня с *HDL, и с теми-же проблемами.
mikeT
Цитата(Shtirlits @ Feb 18 2009, 19:48) *
Может, плохо искал, тогда извиняюсь, покажите, где у них результаты, где показатели лучше, чем на процессорах общего назначения?


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

http://www.hindawi.com/GetArticle.aspx?doi.../ASP/2006/97950

"RigidMolecule Docking: FPGA Reconfiguration for Alternative Force Laws".
Это конкретное приложение (хотя сам метод, как говорят спецы, с которыми я общался - устаревший). Ускорение по сравнению с 3 ГГц процессором "общего назначения" в 130-1100(!) раз.
на одном XC2VP70-5.
sysel
Если уже зашла речь о "дешевых" вычислениях, стоит вспомнить про вычислительные возможности видеокарт, например использование технологии CUDA, к тому же есть реализация БПФ на CUDA, которая позволяет вычислять несколько одномерных БПФ одновременно.
К тому же ядра видеороцессоров оптимизированы для вычислений с плавающей запятой, шина между графическим чипом широка (256 или 512 бит), работает на высокой частоте.
Может быть, это и извращения, но затраты на оборудование и на работу будут куда меньше, чем при использовании FPGA.
jojo
Цитата(mikeT @ Feb 18 2009, 17:30) *
http://www.hindawi.com/GetArticle.aspx?doi.../ASP/2006/97950

"RigidMolecule Docking: FPGA Reconfiguration for Alternative Force Laws".
Это конкретное приложение (хотя сам метод, как говорят спецы, с которыми я общался - устаревший). Ускорение по сравнению с 3 ГГц процессором "общего назначения" в 130-1100(!) раз.
на одном XC2VP70-5.



Пара мыслей:
- PC correlation performance на уровне 0.2E9 8-битных MAC для 3 ГГц Xeon низковат, пару порядков за счет ядер, конвейера и MMX можно изыскать.
- частота 60-90 МГц для 2-7 битных вычислений представляется маловатой.

Уверен, никто здесь не будет утверждать, что ускорение на ПЛИС вещь по определению ненужная.
Но заметно, как прямо хочется им в 100000 раз уделать компьютер, до конца с ним не поборовшись.
Да, уделали, но не в 1000 раз, а в 10, что само по себе неплохо, хотя и на 90 МГц в Virtex 2.
Остается уделать их на Virtex 5 или на 10 компьютерах.


---

Где-то мне попадалась реклама про нечто от Intel вроде КУДЫ, только с x86 инструкциями. Если вдруг такая штука выйдет, тогда будет интересно.

Из-за всевозможных проблем инструментов для сборки проектов ПЛИС любая высокоуровневая оболочка обречена сегодня.
mikeT
Цитата(sysel @ Feb 18 2009, 20:43) *
Если уже зашла речь о "дешевых" вычислениях, стоит вспомнить про вычислительные возможности видеокарт, например использование технологии CUDA, к тому же есть реализация БПФ на CUDA, которая позволяет вычислять несколько одномерных БПФ одновременно.
К тому же ядра видеороцессоров оптимизированы для вычислений с плавающей запятой, шина между графическим чипом широка (256 или 512 бит), работает на высокой частоте.
Может быть, это и извращения, но затраты на оборудование и на работу будут куда меньше, чем при использовании FPGA.


Это не извращения. Вы все правильно сказали.
На CUDA реально удобно и быстро все это считать. Несколько мыслей по этому поводу:

1. CUDA - закрытая вещь. То есть чип от NVIDIA вы не купите и не поставите на свою плату. Даже документация дальше определенного уровня (детализации, специализации) недоступна. Эта проблема, возможно будет снята с "вводом в эксплуатацию" OpenCL. В общем, считаем, что этой проблемы нет rolleyes.gif

2. CUDA - это "жесткая" струкутра. Во-первых, и по своей сути - ну не измените вы DataFlow наиболее оптимально под задачу, и "в мелочах" (но важных) - то что ядра объединены в 8-ки (SIMD) не есть гуд для ряда задач. Просто, народ, запуская КУДу получает РЕАЛЬНОЕ ускорение в 10-100 раз и прыгает от радости. Немного кто задумывается, что это не предел

3. CUDA - это опять же "фон-Нейман" (в самом широком смысле этого слова - то есть "принцип хранимой программы"), что тянет за собой накладняки на декодирование инструкций, на обеспечение извлечений этих инструкций, на поддержку механизма работы с памятью и т.п. Представьте тперь, что у вас задача сводится тупо к вдуванию потока данных на 100 умножителей - ну не нужно вам в принципе ничего декодировать - заранее известно, что нужно тупо умножать, но на предельной скорости и далее лить, например на сумматоры.

Теперь представьте, что мы сделали среднезернистую реконфигурируемую систему (чип), который содержит на борту 500 ядер с FPU, но с возможностью "программирования" DataPath между ними и, возможно, с какой-то элементарной программируемостью логики работы. Рабочая частота должна быть не хуже чем у КУДы, ну или не намного хуже - пусть спецы по разработке чипов скажут - так ли это? Я исхожу из того, что мы проигрываем в том, что в чипе есть доп-элементы необходимые на реконфигурацию (но средне/крупнозернистую, а не мелкозернистую как в фпга), но зато нет сложных процессорных ядер. Получается система с производительностью не хуже чем КУДА, но намного более гибкая для широкого класса задач (не для всех).

Реализуемость таких систем? А почему нет? Если КУДу сделали, то тут вроде почти тоже самое.
"Целочисленные" аналоги? Ну, например, MathStar (умер правда) и Ambric (умирает похоже). И еще вроде много таких.




Цитата(jojo @ Feb 18 2009, 21:14) *
Пара мыслей:
- PC correlation performance на уровне 0.2E9 8-битных MAC для 3 ГГц Xeon низковат, пару порядков за счет ядер, конвейера и MMX можно изыскать.
- частота 60-90 МГц для 2-7 битных вычислений представляется маловатой.

Уверен, никто здесь не будет утверждать, что ускорение на ПЛИС вещь по определению ненужная.
Но заметно, как прямо хочется им в 100000 раз уделать компьютер, до конца с ним не поборовшись.

Может просто не умеют rolleyes.gif

Цитата(jojo @ Feb 18 2009, 21:14) *
Да, уделали, но не в 1000 раз, а в 10, что само по себе неплохо, хотя и на 90 МГц в Virtex 2.
Остается уделать их на Virtex 5 или на 10 компьютерах.


Уделывают. Поверьте. При желании Вы все это найдете. Именно на задачах типа этой,а на задачах где нужны какие-ниубдь трехбитные сумматоры с обратными связями (попадалось что-то подобное тоже откуда-то из генетики вроде) вообще рвут в клочья rolleyes.gif
ну вот еще - честно, говоря, не знаю насколько это круто с точки зрения генетики (спрошу специально у спецов), но не думаю что туфта http://private.ecit.qub.ac.uk/MSRC/Wednesd...li_OakRidge.pdf

Цитата(jojo @ Feb 18 2009, 21:14) *
Из-за всевозможных проблем инструментов для сборки проектов ПЛИС любая высокоуровневая оболочка обречена сегодня.

Ключевое слово "сегодня". Давайте в будущее с оптимизмом смотреть rolleyes.gif

В качестве аналогии приведу маленький пример: в книге "Dragon Book" (классика по разработке компиляторов - автор Ахо) в введении написано, что первый компилятор Фортрана потребовал 18 человеко-лет. С точки зрения сегодняшнего дня, это компилятор предельно простой. Ахо пишет, что сегодня компилятор С++ (может не самый крутой, но достаточно серьезный) может написать толковый студент за семестр (я точно не напишу ни за семестр, ни за два rolleyes.gif ).
Компилятор фортрана писали люди "класса" Джона Бэкуса (http://en.wikipedia.org/wiki/John_Backus). Вы верите в то, что студент умнее команды Бэкуса? Нет, конечно. Просто за 50 лет куча людей пропахала методологию разработки компиляторов и создала мощный фундамент, который РЕАЛЬНО работает!

Так почему нельзя тоже самое сделать для ПЛИС?!

P.S. Может Коламо и есть тот самый прорыв?
Serg76
Цитата(jojo @ Feb 18 2009, 18:14) *
Где-то мне попадалась реклама про нечто от Intel вроде КУДЫ, только с x86 инструкциями. Если вдруг такая штука выйдет, тогда будет интересно.

Может вы это имели ввиду Intel Integrated Performance Primitives IPP. Вещь достойная сам пользовался
XVR
Цитата(Serg76 @ Feb 18 2009, 19:32) *
Может вы это имели ввиду Intel Integrated Performance Primitives IPP. Вещь достойная сам пользовался
Похоже имелся в виду LRB - графический чип (с массивом GPU). Общая инфа есть на сайте Intel'а. Собственно чип еще не вышел sad.gif
jojo
Да, действительно, LRB, т.е. Larrabee.

У быстрых синтезированных FPU большая задержка в тактах, 8-12. Это накладывает искусственный отпечаток многопоточности на алгоритм свертки.

Кроме того, нельзя обделять целочисленные алгоритмы. Тут - да, на 1...6-битовых- операциях в плис - раздолье.

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

Будем надеяться на лучшее.
Shtirlits
Цитата(jojo @ Feb 18 2009, 23:22) *
Представляю, сколько часов будут собираться проекты в самых емких ПЛИС, которые мы, очевидно, выберем.

Время сборки будет обратно пропорционально времени, проведенному с проектом.
Сначала 3-е суток, под конец полчаса и меньше.
Модульная сборка rloc, logic lock, hard macro, или как оно будет у вас называться, сильно ускоряет работу, но требует загрузки в голову.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.