|
Методы повышения производительности фиттера, рассуждаем |
|
|
|
Oct 10 2011, 11:44
|
Частый гость
 
Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084

|
Хао, други! Осенило тут вопросом - а можно ли использовать для ускорения фиттинговых вычислений CUDA? Честно говоря, не очень понятно почему Альтера (на ее примере, т.к. работаю только с ней) к этому не пришла. Мне кажется, фиттеровские алгоритмы идеально лягут на куду... Или это уже как-то реализовано и я такой непросвященный? Давайте порассуждаем на эту тему. Помогу начать. Вот смотрите. По сути, ПЛИС - это очень большая и сложная сетка (граф, но не Дракула  ). Возьмем некий сферический фиттер в вакууме. По сути, его задача - отобразить синтезированную ранее логику на эту сетку таким образом, чтобы результат удовлетворял заданным ограничениям. Я не знаю достоверно как работает фиттер - могу лишь сидеть и фантазировать, но думаю что трассировку этой сетки он выполняет не путем тупого перебора всех возможных ее комбинаций, и не пытается уложить в сетку сразу всю логику сразу, а делает все по-частям. И я так понимаю, все нынешние фиттеры делают это последовательно - сначала одну кучку логики, потом другую, потом еще одну и т.д., после чего уже работают на уровне этих разведенных "кучек". Так вот - что мешает фиттеру укладывать одновременно несколько кучек? На тот же GPU это бы легло очень продуктивно, мне кажется... А там и до сетевого кластерного фиттера недалеко. Правда, сегодня фиттеры до сих пор не могут нормально использовать даже несколько ядер внутри обычного ЦП (лично у меня альтеровский фиттер Processors Usage не поднимал еще ни разу выше 1.2 - и это при наличии 4-х ядер.)
Сообщение отредактировал ilkz - Oct 10 2011, 11:46
|
|
|
|
|
Oct 10 2011, 12:13
|
Местный
  
Группа: Свой
Сообщений: 314
Регистрация: 7-12-05
Пользователь №: 11 917

|
Цитата(ilkz @ Oct 10 2011, 15:44)  Помогу начать. Так вот - что мешает фиттеру укладывать одновременно несколько кучек? На тот же GPU это бы легло очень продуктивно, мне кажется... А там и до сетевого кластерного фиттера недалеко. Правда, сегодня фиттеры до сих пор не могут нормально использовать даже несколько ядер внутри обычного ЦП (лично у меня альтеровский фиттер Processors Usage не поднимал еще ни разу выше 1.2 - и это при наличии 4-х ядер.) Для CUDA подходят далеко не все задачи. Из wiki: Ideal GPGPU applications have large data sets, high parallelism, and minimal dependency between data elements. Кроме того, там упоминается понятие Arithmetic intensity. Грубо говоря - количество арифметических операции приходящихся на одно обращение к памяти. Оно желательно должно быть высоким. Если короче - он может выполнять очень много обработок одновременно, но они должны быть независимы. Данных должно быть много, но обращений к памяти - мало. И кроме того, насколько я себе представляю, в GPU не предусмотрено ветвления алгоритма. А сделать fitter без ветвления.... В моем представлении это как раз очень плохо соотносится с задачами fitter'а.
|
|
|
|
|
Oct 10 2011, 12:22
|
Частый гость
 
Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084

|
Цитата(DmitryR @ Oct 10 2011, 16:17)  ... и невозможность делать это автоматически. Мне кажется, для определения партиции можно использовать сами модули. Модуль - партиция. Ну либо несколько модулей, вложенных в один (а часто так и бывает) - тоже, по сути, партиция. Кстати, лично я не особо доверяю инкрементальной компиляции, т.к. она, бывает, глючит - компилятор иногда не может что-то с чем-то свести и все времянки либо логика летят к черту )) Такое уже не раз было. Помогает снос incremental_db.
Сообщение отредактировал ilkz - Oct 10 2011, 12:24
|
|
|
|
|
Oct 10 2011, 12:37
|
Частый гость
 
Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084

|
Цитата(DmitryR @ Oct 10 2011, 16:27)  Ага. Прощай трансграничная оптимизация - здравствуй лишний объем и снижение Fmax. Я просто предположил  Обычно же стыки крупных модулей делают такими, чтобы они (модули) были друг от друга максимально отвязаны (например, это два модуля, работающих в двух разных тактовых доменах). Отсюда и возникла такая мысль.
|
|
|
|
|
Oct 13 2011, 19:28
|
Знающий
   
Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219

|
Цитата(iiv @ Oct 13 2011, 22:30)  ...Решили забить, так как игра не стоит свеч - те кому надо - купят побыстрее проц и SSD, а остальные подождут. Куда уж быстрее: у нас штеуд I7-2600K ещё и разогнанный на 10% компилит Xilinx VLX240T порядка 1-1.5 часа. Это с Planahead'om. Без него вообще ISE крутил яйцами неопределённо долгое время (рабочий день раньше заканчивался). Разве что за жидким азотом в магазин сходить.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|