|
|
  |
Фришный мультипроцессор в ПЛИС, есть ли такой? |
|
|
|
Mar 8 2011, 04:53
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
Цитата(FROL_256 @ Mar 7 2011, 23:38)  Если я буду использовать Nios 2 то во-первых, производительность окажется совсем на нуле это не совсем так, у него есть механизм Custom Instruction. если к этому добавить самописный FPU с поддержкой SIMD (а можно и несколько), то производительность можно получить очень даже ничего. я не знаком с рейтрейсингом, приведу другой пример. допустим при обработке сигнала активно используется FFT. можно пойти по пути создания монстра а-ля спарк, а реализацию оставить программной. а можно прикрутить к ниосу корку FFT с подходящей оберткой, DMA и т.п. думаю, понятно, кто кого уделает.
|
|
|
|
|
Mar 8 2011, 17:13
|
Частый гость
 
Группа: Участник
Сообщений: 101
Регистрация: 3-09-10
Пользователь №: 59 274

|
Цитата как пример, можно сделать аппаратный блок для юнит-теста и прикрутить к нему Custom Instruction (в терминах ниоса). за 1 такт смысла нет делать, надо конвейеризовать. я так понимаю, этих пересечений вагон и тележку надо посчитать? Я имел ввиду, что в среднем за один такт будет считаться. То есть если юнит загружен работой, то по нему треугольники будут проходить со скоростью один треугольник в клок. Я думал так сделать сначала, но плохо то, что у ниоса с плавающей точкой ахтунг. Помимо пересечений есть вообще говоря и другие вычисления. Если в результате окажется, что боттлнек просто напросто в том, что ниос неуспевает посчитать шейдинг, я получу немного не те числа при сравнении. Можно конечно еще считать шейдинг и проч. вещи. с фиксированной точкой...возможно вы правы и начать стоит именно с этого. Цитата(cioma @ Mar 8 2011, 18:41)  Если применение ПЛИС не принципиально, то может Вам все это дело реализовать на CUDA? Это уже давно есть  Интерес сделать аппаратное решение. Цитата(blackfin @ Mar 8 2011, 08:08)  Тут уже искали? => TMS320C6678. Боюсь DSP мне не подойдет, но все-равно спасибо.
Сообщение отредактировал FROL_256 - Mar 8 2011, 17:05
|
|
|
|
|
Mar 9 2011, 20:55
|
Знающий
   
Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827

|
>Остается открытым вопрос о производительности FPU при наличии всего одного потока. >Ну вот допустим у нас 10 стадий в конвейере FPU (В альтеровской либе 12 вообще). Это ж будет латентность 10 клоков при любой зависимости. >Но вообще наверное можно попробовать забить на это и действительно сделать на ниосе. У вас получается действительно всего один поток и требуется готовность результата FPU через такт? Задержка готовых FPU бывает от 2...4 до 24...48 тактов. http://www.eecg.toronto.edu/~myrto/gpuarch-ispass2010.pdf
|
|
|
|
|
Mar 9 2011, 21:22
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
По моему скромному мнению, сосредотачиваться только на арифметических операциях бессмысленно - выйдет равноудаленный от пупа вселенной конь в вакууме, ну ровно как "математики" пытаются оптимизацию софта делать, когда не хотят даже слышать как компьютер устроен. Чем кормить-то будете свой конвейер? Верно, из памяти брать, а она во многих не топовых FPGA (что альтера, что зайлингс) отстает от DSP блоков. Пытаться чего-то достичь в производительности, сопоставимого хоть в чем-то с процессорами общего назначения, как мне кажется, можно только на максимальных тактовых частотах и эффективном использовании всех ресурсов - даже если денег немеряно, чтобы навтыкать на плату дюжину чипов по 5-8 килобаксов, то интерконнект между ними все убьет.
В общем, как ни выкручивайся, а все равно нужно изучить и архитектуру FPGA и задачу, урезать разрядность до необходимого минимума (block floating point, например), оптимизировать задачу в целом, наложить оптимально на архитектуру, profit. Как промежуточный вариант - сделать под эту самую задачу мега-оптимальный дизайн, но как бы программируемый. То есть, он полностью заточен под текущую задачу (ray tracing), но без ущерба для производительности для нее этот конвейер можно применить для чего-то еще с какой получится эффективностью. Если это не сделать, то лучше не тратить время на ерунду, сразу писать про коня в вакууме отчет или диссерт, или что там у вас, и даже не отвлекаться на реальность.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|