FROL_256 0 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба Добрый день, уважаемые обитатели форума. Я совсем новичок в деле проектирования ПЛИС поэтому ногами просьба не бить. Некоторое время назад я прочитал несколько статей, где на плис делали трассировку лучей. Например, "Accelerating the bidirectional path tracing algorithm using a dedicated intersection processor" "Realtime Ray Tracing of Dynamic Scenes on an FPGA Chip" И мне захотелось в целях образования сделать свой велосипед. Оценив свои скромные ресурсы в 200-400 (ну максимум 500) долларов, я стал подбирать плату. Из того что мне удалось найти у российских дистрибьюторов, пока что остановился на 2 вариантах: 1) http://www.xilinx.com/products/devkits/EK-S6-SP605-G.htm (характеристики тут есть http://www.plis.ru/pic/pict/File/Spartan-6_table.pdf) 2) http://www.terasic.com.tw/cgi-bin/page/arc...02&PartNo=1 Меня немного обескураживают вот что: Несмотря на то что Cyclone 4 стоит дешевле, у него 266 встроенных умножителей против 38 у Spartan6-LX45T. Аналогична ситуация и с кол-вом логических ячеек. 114 тыс. у циклона против 46 тыс. у Spartan. Ну и вообще циклон вроде бы далеко впереди по ресурсам. Но что-то тут нечисто. Может Spartan все же чем-то лучше? Может там трассировочные ресурсы получше? В плате фирмы ксайлинкс меня привлекает прежде всего PCI-e. Наверное можно будет организовать шуструю передачу данных между CPU и плис по шине PCI-e. Но с другой стороны особого смысла в этом нет так как на ПЛИС я все-равно не получу сверх скорости, м.б. только если виртекс-6... Зато у циклона на плате ЖК дисплей и еще цифры какие-то. И всего за 329 долларов. Выглядит заманчиво) Как мне кажется, количество умножителей для меня критично т.к. операцию пересечения луча и треугольника я буду реализовывать фактически как умножение точки на матрицу. Есть такой хитрый способ. И это еще все это во float надо делать. То есть мне кажется что мне нужно много умножителей. Подскажите пожалуйста, что для меня может быть лучше. Может какие-то еще варианты есть? Заранее спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rloc 52 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба Сравните стоимости кристаллов на этих платах (по американским ценам): XC6SLX45T FGG484-3CES ~ 90$ EP4CE115 FBGA780 ~ 320$ Выводы делайте сами. P.S. На Spartan-6 можно легко запустить обработку на 300MHz. P.P.S. Материально оценивать надо не свои скромные ресурсы, а ресурсы работодателя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба Может быть лучше не начинать с покупки плат, а поставить quartus с ise и написать схему так, чтобы собиралась во под разные платформы. Это не так страшно, как кажется. Для начала я бы привел к общему знаменателю платформозависимые примитивы - PCIe, умножители, память и менеджеры клоков. Затем, опираясь на унифицированные блоки, описал схему. О каком качестве принятия решения можно говорить сейчас, когда вы обладаете минимумом информации? А максимум будет после окончательной отладки и разводки схемы. Сама плата для этого вообще не нужна. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FROL_256 0 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба rloc Большое спасибо, теперь сомнений не осталось. Shtirlits Ну я думал так начать что-то делать, но многие говорят что лучше сразу иметь плату чтобы все на ней тестировать. Вот прямо сделал - посмотрел работает ли. Двигаться маленькими шагами. Мне такой подход тоже более привычен. Сразу то я рей-трейсинг не сделаю. Сначала флоат-арифметику, потом матрицы и там, я так подозреваю, геморроя будет много. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба Добрый день, уважаемые обитатели форума. Я совсем новичок в деле проектирования ПЛИС поэтому ногами просьба не бить. Некоторое время назад я прочитал несколько статей, где на плис делали трассировку лучей. Например, "Accelerating the bidirectional path tracing algorithm using a dedicated intersection processor" "Realtime Ray Tracing of Dynamic Scenes on an FPGA Chip" И мне захотелось в целях образования сделать свой велосипед. Оценив свои скромные ресурсы в 200-400 (ну максимум 500) долларов, я стал подбирать плату. Подскажите пожалуйста, что для меня может быть лучше. Может какие-то еще варианты есть? Заранее спасибо. Если не секрет - после выбора платы, где будете покупать, какие гарантии работоспособности купленной платы?. Цена по сравнению с сайта производителя (Xilinx, Altera) возрастет в 1,5-2 раза из-за доставки, таможни и т.д. PS Во всяком случае в Украине - точно. Деньги - не маленькие :( :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба Не понимаю, зачем нужно живое железо, если на плате все документированное и есть симулятор. Какую информацию можно получить запуская вживую, но нельзя получить из симулятора? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба Сразу то я рей-трейсинг не сделаю. Сначала флоат-арифметику, потом матрицы и там, я так подозреваю, геморроя будет много. Этот путь нужно проходить с использованием программных средств отладки. Живые платы нужно использовать когда потребуется отлаживать интерфейс с внешним миром. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба Честно говоря, я не понял, что Вы собираетесь делать с платой в плане трассировки лучей? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FROL_256 0 3 сентября, 2010 Опубликовано 3 сентября, 2010 (изменено) · Жалоба Этот путь нужно проходить с использованием программных средств отладки. Живые платы нужно использовать когда потребуется отлаживать интерфейс с внешним миром. Ну разумеется нужен интерфейс с внешним миром. Как же я буду сцену то заливать в память ПЛИС? Я хочу чтобы можно было перекачать данные с обычной памяти в память ПЛИС, там посчитать что-то и опять-же что то скопировать обратно. Например индекс треугольника. Ведь там всякая загрузка сцены, построение ускоряющих структур на CPU написано. Я хочу постепенно переносить часть функциональности в плис. Я опасаюсь что у меня возникнут с этим проблемы. Покупать собираюсь тут http://www.altera.ru/. Насколько я понял там можно заказать. Очень хорошо что вы критикуете мое решение, я уже думаю купить плату подешевле- DE0 за 100$). Я только опасаюсь что в какой-то момент мне не хватит тамошних ресурсов, но 100 это уже не 300, не так страшно в принципе. Честно говоря, я не понял, что Вы собираетесь делать с платой в плане трассировки лучей? Ну я хочу реализовать частично алгоритм в железе. Просто попробовать сделать специальные юниты, которые будут считать для начала пересечение луча и треугольника. В данный момент только в обучающих целях. Поиграть и посмотреть что получится. Я не претендую на супер-мега ускорители рей-трейсинга. Изменено 3 сентября, 2010 пользователем FROL_256 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба Попробовали бы сделать хотя бы Ваш треугольник в схеме и симуляторе. Как сделаете, уверен, появятся spartan-8 и cyclone-6. Придётся на новое железо тратиться. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба Ну я хочу реализовать частично алгоритм в железе. Просто попробовать сделать специальные юниты, которые будут считать для начала пересечение луча и треугольника. В данный момент только в обучающих целях. Поиграть и посмотреть что получится. Я не претендую на супер-мега ускорители рей-трейсинга. Ну то есть Вы хотите закачивать в ПЛИС данные, чтобы она считала, обратно передавать в комп и отображать/использовать там? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FROL_256 0 3 сентября, 2010 Опубликовано 3 сентября, 2010 · Жалоба Ну то есть Вы хотите закачивать в ПЛИС данные, чтобы она считала, обратно передавать в комп и отображать/использовать там? Именно так. Попробовали бы сделать хотя бы Ваш треугольник в схеме и симуляторе. Как сделаете, уверен, появятся spartan-8 и cyclone-6. Придётся на новое железо тратиться. Ну я подозреваю, что так и будет, да. :) Мне в DE0 не нравится что памяти мало, не влезет большая сцена. А в 128 M DE2-155 можно вполне серьезную сцену засунуть. И логических ячеек там в 10 раз меньше почти. Пока все-таки думаю что DE2-155 для меня идеально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 4 сентября, 2010 Опубликовано 4 сентября, 2010 · Жалоба Предлагаю купить один или даже пару дешевых наборов обеих контор, только для того, чтобы подержать это все руками, потыкать осциллографом, запустить на живом железе какую-нибудь лично разработанную схему. Боевые схемы для трассировки лучей или чего-то еще реально полезного покупать только когда уже есть готовая прошивка. Как мне кажется, если и будет польза от трассировки лучей в fpga, то на микросхемах верхнего ценового диапазона. Хотя... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladimirB 1 4 сентября, 2010 Опубликовано 4 сентября, 2010 · Жалоба Ну разумеется нужен интерфейс с внешним миром. Как же я буду сцену то заливать в память ПЛИС? Я хочу чтобы можно было перекачать данные с обычной памяти в память ПЛИС, там посчитать что-то и опять-же что то скопировать обратно. Например индекс треугольника. Ведь там всякая загрузка сцены, построение ускоряющих структур на CPU написано. Я хочу постепенно переносить часть функциональности в плис. Я опасаюсь что у меня возникнут с этим проблемы. Если вы начинающий, то боюсь что вы 50% времени или даже больше убьёте не на рей-трейсинг, а на высокоскоростной интерфейс обмена данными с ПК (PCI-E или Gigabit Ethernet). Есть конечно RS-232, его поднять легко - но скорость просто никакая. Так что учитывайте при выборе платы, наличие, скорость и простоту поднятия того или иного интерфейса с ПК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FROL_256 0 4 сентября, 2010 Опубликовано 4 сентября, 2010 · Жалоба VladimirB Да, я опасаюсь по поводу передачи данных, что это будет не так просто. Но для начала можно на низко скоростном интерфейсе. Для экспериментов это не так важно. Такты я смогу померить, значит смогу оценить производительность отдельных элементов. А по UBS не должно быть какого-нибудь простого способа? Написано что драйвер ПК для USB идет в комплекте, ну что-же он должен делать... Как в первой статье про bidirectional path tracing (но там правда был Virtex-4). Shtirlits Ну да, в принципе я так и хочу сделать. Но на пару времени не хватит, с одной бы разобраться. Просто если решать между DE0 и DE2-115 то DE2-115 конечно стоит в 4 раза дороже, но зато ресурсов больше почти в 10 раз. Как-то я привык выбирать железо, оценивая его характеристики, а не прямой юз-кейс. Хотя м.б. и не очень верно в случае ПЛИС. В юзер мануале написано что есть пример. Ну я попробую на основе этого примера что-то сделать м.б. Two complete examples of USB drivers, for both host and device applications, can be found in Sections 6.4 and 6.5. These demonstrations provide examples of software drivers for the Nios II processor. Но да, я начинаю понимать что все немного хуже чем я думал) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться