реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Фришный мультипроцессор в ПЛИС, есть ли такой?
vadimuzzz
сообщение Mar 8 2011, 04:53
Сообщение #16


Гуру
******

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



Цитата(FROL_256 @ Mar 7 2011, 23:38) *
Если я буду использовать Nios 2 то во-первых, производительность окажется совсем на нуле

это не совсем так, у него есть механизм Custom Instruction. если к этому добавить самописный FPU с поддержкой SIMD (а можно и несколько), то производительность можно получить очень даже ничего. я не знаком с рейтрейсингом, приведу другой пример. допустим при обработке сигнала активно используется FFT. можно пойти по пути создания монстра а-ля спарк, а реализацию оставить программной. а можно прикрутить к ниосу корку FFT с подходящей оберткой, DMA и т.п. думаю, понятно, кто кого уделает.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Mar 8 2011, 05:08
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(FROL_256 @ Mar 7 2011, 20:38) *
Мультипроцессор с эффективными операциями FPU мне нужен потому что помимо подсчета пересечений остальные вычисления тоже довольно тяжелые.

Собственно я пока-что делаю свой мультипроцессор, но замучался) Подумал, что может лучше поискать на стороне.

Тут уже искали? => TMS320C6678.
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Mar 8 2011, 07:55
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



http://www.gaisler.com/ - LEON3. Имеется в наличии FPU, "многоядерность", и прочие вкусности.
На Spartan3A, при частоте генератора 125 МГц, частота ядра составляла более 40 МГц.
Go to the top of the page
 
+Quote Post
FROL_256
сообщение Mar 8 2011, 11:00
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 3-09-10
Пользователь №: 59 274



В рейтрейсинге много зависимых вычислений, поэтому DSP подход ИМХО не прокатит. Опять же каждый поток может пойти по своим делам, это тоже проблемма.
Но спасибо за ссылки, я думаю что на основе готового FPU мне будет легче сделать то что я хочу.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Mar 8 2011, 12:17
Сообщение #20


Гуру
******

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



Цитата(FROL_256 @ Mar 8 2011, 17:00) *
В рейтрейсинге много зависимых вычислений, поэтому DSP подход ИМХО не прокатит.

а есть какая-нибудь популярная литература по теме?
Go to the top of the page
 
+Quote Post
FROL_256
сообщение Mar 8 2011, 13:25
Сообщение #21


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 3-09-10
Пользователь №: 59 274



Популярная литература по теме трассировки лучей?
Ну немного есть:
http://ray-tracing.ru
http://www.fcenter.ru/online.shtml?article...are/videos/8749
http://www.devmaster.net/articles.php (искать Raytracing)
http://www.pbrt.org/

Собственно даже SSE не особо помогает в трассировке, нужно пакетами делать, а это уже сильное ограничение.
Хотя такие работы конечно-же есть и в избытке. Но на практике это страшно неудобно.

Сообщение отредактировал FROL_256 - Mar 8 2011, 13:27
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Mar 8 2011, 14:02
Сообщение #22


Гуру
******

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



Цитата(FROL_256 @ Mar 8 2011, 19:25) *

как пример, можно сделать аппаратный блок для юнит-теста и прикрутить к нему Custom Instruction (в терминах ниоса). за 1 такт смысла нет делать, надо конвейеризовать. я так понимаю, этих пересечений вагон и тележку надо посчитать?
Go to the top of the page
 
+Quote Post
cioma
сообщение Mar 8 2011, 15:41
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 226
Регистрация: 19-06-04
Из: Беларусь
Пользователь №: 65



Если применение ПЛИС не принципиально, то может Вам все это дело реализовать на CUDA?
Go to the top of the page
 
+Quote Post
FROL_256
сообщение Mar 8 2011, 17:13
Сообщение #24


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 3-09-10
Пользователь №: 59 274



Цитата
как пример, можно сделать аппаратный блок для юнит-теста и прикрутить к нему Custom Instruction (в терминах ниоса). за 1 такт смысла нет делать, надо конвейеризовать. я так понимаю, этих пересечений вагон и тележку надо посчитать?

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

Цитата(cioma @ Mar 8 2011, 18:41) *
Если применение ПЛИС не принципиально, то может Вам все это дело реализовать на CUDA?

Это уже давно есть sm.gif Интерес сделать аппаратное решение.

Цитата(blackfin @ Mar 8 2011, 08:08) *
Тут уже искали? => TMS320C6678.

Боюсь DSP мне не подойдет, но все-равно спасибо.

Сообщение отредактировал FROL_256 - Mar 8 2011, 17:05
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Mar 8 2011, 23:45
Сообщение #25


Гуру
******

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



Цитата(FROL_256 @ Mar 8 2011, 23:13) *
Я думал так сделать сначала, но плохо то, что у ниоса с плавающей точкой ахтунг.

так FPU ему можно внешний прикрутить. хотя бы тот, что на опенкорках.
Go to the top of the page
 
+Quote Post
FROL_256
сообщение Mar 9 2011, 10:10
Сообщение #26


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 3-09-10
Пользователь №: 59 274



Остается открытым вопрос о производительности FPU при наличии всего одного потока.
Ну вот допустим у нас 10 стадий в конвейере FPU (В альтеровской либе 12 вообще). Это ж будет латентность 10 клоков при любой зависимости.
Но вообще наверное можно попробовать забить на это и действительно сделать на ниосе.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Mar 9 2011, 10:32
Сообщение #27


Гуру
******

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



Цитата(FROL_256 @ Mar 9 2011, 16:10) *
Это ж будет латентность 10 клоков при любой зависимости.

а вы хотели задарма тактовую частоту приличную поиметь? sm.gif
Go to the top of the page
 
+Quote Post
FROL_256
сообщение Mar 9 2011, 10:52
Сообщение #28


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 3-09-10
Пользователь №: 59 274



Да дело даже не в частоте. Если будет 100 Mhz меня устроит. Перф не задарма, а за счет того, что мультипроцессор выполняет поочередно команды из разных потоков и зависимостей по данным нет. То есть одна команда в клок это на мультипроцессоре спокойно можно сделать, даже если это команда с плавающей точкой. А если поток один, то любая зависимость => задержка в 10 клоков => падение производительности в 10 раз.

Сообщение отредактировал FROL_256 - Mar 9 2011, 10:52
Go to the top of the page
 
+Quote Post
jojo
сообщение Mar 9 2011, 20:55
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 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

Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Mar 9 2011, 21:22
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



По моему скромному мнению,
сосредотачиваться только на арифметических операциях бессмысленно - выйдет равноудаленный от пупа вселенной конь в вакууме, ну ровно как "математики" пытаются оптимизацию софта делать, когда не хотят даже слышать как компьютер устроен.
Чем кормить-то будете свой конвейер? Верно, из памяти брать, а она во многих не топовых FPGA (что альтера, что зайлингс) отстает от DSP блоков.
Пытаться чего-то достичь в производительности, сопоставимого хоть в чем-то с процессорами общего назначения, как мне кажется, можно только на максимальных тактовых частотах и эффективном использовании всех ресурсов - даже если денег немеряно, чтобы навтыкать на плату дюжину чипов по 5-8 килобаксов, то интерконнект между ними все убьет.

В общем, как ни выкручивайся, а все равно нужно изучить и архитектуру FPGA и задачу, урезать разрядность до необходимого минимума (block floating point, например), оптимизировать задачу в целом, наложить оптимально на архитектуру, profit.
Как промежуточный вариант - сделать под эту самую задачу мега-оптимальный дизайн, но как бы программируемый.
То есть, он полностью заточен под текущую задачу (ray tracing), но без ущерба для производительности для нее этот конвейер можно применить для чего-то еще с какой получится эффективностью.
Если это не сделать, то лучше не тратить время на ерунду, сразу писать про коня в вакууме отчет или диссерт, или что там у вас, и даже не отвлекаться на реальность.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 09:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01519 секунд с 7
ELECTRONIX ©2004-2016