|
Реконфигурируемый суперкомьютер на FPGA из Таганрога |
|
|
|
Feb 14 2009, 21:53
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 6-02-08
Из: Новосибирск
Пользователь №: 34 789

|
Есть ли среди уважаемых форумчан люди, плотно знакомые с сабжем? Я имею в виду именно «реконфигурируемый суперкомпьютер», разрабатываемый в Таганроге (под руководством Каляева И.А. и Левина И.И.), а не вообще тематику 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 и т.п). В работах таганрогцев наоборот идет упор на то, что «мы впереди планеты всей», «мы уже много чего сделали» и «у нас (СССР/Россия) в этом направлении приоритет, т.к. данную тематику впервые "подняли" (в частности) академики (не уверен точно, что все они академики  ) Каляев А.В., Евреинов Э.В., Прангишвили И.В.». Последнее заявление проверяется очень просто и обнаруживается, что в США подобные системы описали и даже сделали (!) раньше лет так на 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, но мне что-то в это слабо верится .
|
|
|
|
|
 |
Ответов
(45 - 58)
|
Feb 18 2009, 16:15
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 6-02-08
Из: Новосибирск
Пользователь №: 34 789

|
Цитата(sysel @ Feb 18 2009, 20:43)  Если уже зашла речь о "дешевых" вычислениях, стоит вспомнить про вычислительные возможности видеокарт, например использование технологии CUDA, к тому же есть реализация БПФ на CUDA, которая позволяет вычислять несколько одномерных БПФ одновременно. К тому же ядра видеороцессоров оптимизированы для вычислений с плавающей запятой, шина между графическим чипом широка (256 или 512 бит), работает на высокой частоте. Может быть, это и извращения, но затраты на оборудование и на работу будут куда меньше, чем при использовании FPGA. Это не извращения. Вы все правильно сказали. На CUDA реально удобно и быстро все это считать. Несколько мыслей по этому поводу: 1. CUDA - закрытая вещь. То есть чип от NVIDIA вы не купите и не поставите на свою плату. Даже документация дальше определенного уровня (детализации, специализации) недоступна. Эта проблема, возможно будет снята с "вводом в эксплуатацию" OpenCL. В общем, считаем, что этой проблемы нет 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 раз уделать компьютер, до конца с ним не поборовшись. Может просто не умеют  Цитата(jojo @ Feb 18 2009, 21:14)  Да, уделали, но не в 1000 раз, а в 10, что само по себе неплохо, хотя и на 90 МГц в Virtex 2. Остается уделать их на Virtex 5 или на 10 компьютерах. Уделывают. Поверьте. При желании Вы все это найдете. Именно на задачах типа этой,а на задачах где нужны какие-ниубдь трехбитные сумматоры с обратными связями (попадалось что-то подобное тоже откуда-то из генетики вроде) вообще рвут в клочья ну вот еще - честно, говоря, не знаю насколько это круто с точки зрения генетики (спрошу специально у спецов), но не думаю что туфта http://private.ecit.qub.ac.uk/MSRC/Wednesd...li_OakRidge.pdfЦитата(jojo @ Feb 18 2009, 21:14)  Из-за всевозможных проблем инструментов для сборки проектов ПЛИС любая высокоуровневая оболочка обречена сегодня. Ключевое слово "сегодня". Давайте в будущее с оптимизмом смотреть В качестве аналогии приведу маленький пример: в книге "Dragon Book" (классика по разработке компиляторов - автор Ахо) в введении написано, что первый компилятор Фортрана потребовал 18 человеко-лет. С точки зрения сегодняшнего дня, это компилятор предельно простой. Ахо пишет, что сегодня компилятор С++ (может не самый крутой, но достаточно серьезный) может написать толковый студент за семестр (я точно не напишу ни за семестр, ни за два  ). Компилятор фортрана писали люди "класса" Джона Бэкуса (http://en.wikipedia.org/wiki/John_Backus). Вы верите в то, что студент умнее команды Бэкуса? Нет, конечно. Просто за 50 лет куча людей пропахала методологию разработки компиляторов и создала мощный фундамент, который РЕАЛЬНО работает! Так почему нельзя тоже самое сделать для ПЛИС?! P.S. Может Коламо и есть тот самый прорыв?
|
|
|
|
|
Feb 18 2009, 20:22
|
Знающий
   
Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827

|
Да, действительно, LRB, т.е. Larrabee.
У быстрых синтезированных FPU большая задержка в тактах, 8-12. Это накладывает искусственный отпечаток многопоточности на алгоритм свертки.
Кроме того, нельзя обделять целочисленные алгоритмы. Тут - да, на 1...6-битовых- операциях в плис - раздолье.
По поводу существенного улучшения софта ПЛИС - все еще нет полноценной многопоточной сборки проекта. Куда им еще методологию, чудо софтвер. Представляю, сколько часов будут собираться проекты в самых емких ПЛИС, которые мы, очевидно, выберем.
Будем надеяться на лучшее.
|
|
|
|
|
Feb 19 2009, 06:06
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
Цитата(jojo @ Feb 18 2009, 23:22)  Представляю, сколько часов будут собираться проекты в самых емких ПЛИС, которые мы, очевидно, выберем. Время сборки будет обратно пропорционально времени, проведенному с проектом. Сначала 3-е суток, под конец полчаса и меньше. Модульная сборка rloc, logic lock, hard macro, или как оно будет у вас называться, сильно ускоряет работу, но требует загрузки в голову.
|
|
|
|
|
Feb 19 2009, 08:36
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
Цитата(mse @ Feb 19 2009, 10:03)  Ну да, экстракт кошемира. Там же и написано, что virtex-5, программируется на СИ-подобных языках. То есть, в общем случае вы не можете взять программу для PC и не модифицируя ее и не изучая эти самые Handel-C и Mitrion-C затащить в FPGA. Изучение потребует энергии и времени. Но если эту энергию потратить в мирных целях, то есть, на оптимизацию математических методов, алгоритма и кода для PC или, еще лучше, для CELL, то будет результат на порядки лучше, чем в FPGA. Еще раз, FPGA побеждает процессор только низкой задержкой от ножек к ножкам. Ну и для прототипирования годится.
|
|
|
|
|
Feb 19 2009, 13:24
|
Знающий
   
Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693

|
Цитата(Shtirlits @ Feb 19 2009, 11:36)  Ну да, экстракт кошемира. Там же и написано, что virtex-5, программируется на СИ-подобных языках. То есть, в общем случае вы не можете взять программу для PC и не модифицируя ее и не изучая эти самые Handel-C и Mitrion-C затащить в FPGA. Изучение потребует энергии и времени. Но если эту энергию потратить в мирных целях, то есть, на оптимизацию математических методов, алгоритма и кода для PC или, еще лучше, для CELL, то будет результат на порядки лучше, чем в FPGA. Еще раз, FPGA побеждает процессор только низкой задержкой от ножек к ножкам. Ну и для прототипирования годится. Речь, ваще-то идёт о СПЕЦИАЛИЗИРОВАННЫХ сопроцессорах. Что, вполне естественно, предполагает глубокое знание предмета и достаточно нишевое применение. Так что и учиться, и модифицировать придётся по-любому. В ПДФ-ке, кстати, описана байда, имеющая гипертранспортные линки, т.е. с точки зрения интерконнекта, она мало чем отличается от ЦПУ.
|
|
|
|
|
Feb 19 2009, 13:32
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 6-02-08
Из: Новосибирск
Пользователь №: 34 789

|
Цитата(jojo @ Feb 19 2009, 17:16)  Скажем, Virtex 5-50t = 28800 LUT * пусть 400 МГц = 11,520,000,000,000 шестибитовых операций (чертова прорва операций, надо отметить). Кому эти операции в таком чистом виде нужны - тому повезло  Клеточные автоматы? На youtube ролики есть - студенты прикалываются - на FPGA что-то подобное сделано (Life Game типа). Вроде бы на них (клеточных автоматах) что-то серьезное делают, но у меня познания дилетанта в этой сфере
|
|
|
|
|
Feb 19 2009, 15:35
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
Цитата(mse @ Feb 19 2009, 16:24)  В ПДФ-ке, кстати, описана байда, имеющая гипертранспортные линки... На virtex-5 Hypertransport можно сделать только 500MHz, скорее всего, 2 байта. То есть, 2*10^9 Byte/sec в каждую сторону грязными. Реально около 1.7*10^9 Byte/sec если очень постараться. Сейчас выгоднее FPGA цеплять через PCI-e версии 2, потому что из AMD-шных процессоров торчат линки шириной 2 байта, 4-х байтовых нет, но FPGA не умеет работать с source synchronous сигналами так быстро, как умеет процессор и микросхемы чипсета. Вот и получается, что interconnect имеет большую пропускную способность, чем ускоритель, и меньшая латентность hypertrasport играет меньшую роль. Подключение ускорителя к AMD-шному процессору после чипсета по PCI-e и вовсе лишает затею смысла. Новые FPGA как-то не сильно позволяют разбежаться, скорости вроде бы растут, памяти clock manager-ов, а вот ввод-вывод по прежнему медленный и шумный. Вот если бы была FPGA, способная подключиться напряму на полной скорости к HT или QuickPath, набитая сотнями мелких банков памяти по паре килобайт, сотнями 80-битных умножителей и сумматоров для чисел с плавающей точкой и остальной радостью, чтобы все это работало хотя бы на гигагерце и жило в небольшом корпусе в 1152 ноги. Вот это был бы ускоритель. Да.
|
|
|
|
|
Feb 19 2009, 15:53
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 6-02-08
Из: Новосибирск
Пользователь №: 34 789

|
Цитата(Shtirlits @ Feb 19 2009, 21:35)  Вот если бы была FPGA, способная подключиться напряму на полной скорости к HT или QuickPath, набитая сотнями мелких банков памяти по паре килобайт, сотнями 80-битных умножителей и сумматоров для чисел с плавающей точкой и остальной радостью, чтобы все это работало хотя бы на гигагерце и жило в небольшом корпусе в 1152 ноги. Вот это был бы ускоритель. Да. Во-во! В точку (сама идея, детали можно обсуждать)! P.S. Еще добавить возможность реконфигурации datapath между ядрами FP Но FPGA крайне полезна, чтобы такую штуку (и тем более систему из "эн" таких штук) смоделировать в реале - посмотрите ради интереса инфу по проекту RAMP. Только у них нацеленность на моделирование классических суперкомпов. P.P.S. А сколько практически можно прокачать через самую-самую толстую из имеющихся FPGA при соединении chip-chip (типа все пины если задействовать)?
|
|
|
|
|
Feb 19 2009, 16:14
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
Цитата(mikeT @ Feb 19 2009, 18:53)  P.P.S. А сколько практически можно прокачать через самую-самую толстую из имеющихся FPGA при соединении chip-chip (типа все пины если задействовать)? Самый жирный stratix-IV GT может прокачать 47 гигабайт в секунду. К шинам столько по простому не подключить, так как для PCI-e или infiniband останется 12 гигабайт/сек полноценных трансиверов и PCI-e ядер или еще меньше. А чтобы увеличить трафик нужно так помучаться, что за это время выйдет еще пара поколений FPGA и процессоров. Вот интерконнект сделать на этом можно, но кому ж оно надо? (в смысле, кто деньги будет тратить, а не пилить). PS: соединять через MultiGigabit-трансиверы выходит жирнее и проще, чем через LVDS-ные трансиверы.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|