FPGA для 3d рендеринга / моделирования - PullRequest
2 голосов
/ 08 октября 2009

Я опытный разработчик на C # / .NET (на самом деле все это не имеет значения, потому что FPGA - это еще один уровень сложности). Хотя мой уровень способностей не такой высокий, как в C #, так как я до сих пор иногда ищу вещи (но не очень часто, хотя я борюсь с некоторыми синтаксическими / продвинутыми концепциями), мой босс работает на ПЛИС и рекомендует участвовать ( я удивлен, что меня не обескураживают, так как я начинающий разработчик, и это сложная технология).

Таким образом, мой вопрос, каков наилучший способ изучения FPGA? Я собираю книги и т. Д.

Я смотрю на масштабируемое трехмерное моделирование и рендеринг (в идеале в приложении для Windows, где пользователь ожидает мгновенного ответа), и CUDA популярен, но, по словам моего босса, не так быстро.

Является ли FPGA подходом для такого рода проектов?

Спасибо

Ответы [ 4 ]

7 голосов
/ 08 октября 2009

Честно говоря, я думаю, что ваш начальник не прав. NVIDIA и AMD продают настоящее кремниевое оборудование, предназначенное для ускоренного 3D-рендеринга. Если ваша конкретная проблема не связана с существующими парадигмами шейдеров / CUDA, конфигурируемое аппаратное устройство не сможет конкурировать. По той же причине, что даже лучшие процессоры на основе FPGA (Xilinx MicroBlaze, Altera Nios) являются игрушками по сравнению даже с низкоуровневыми встроенными ядрами ARM. (Зачастую полезные игрушки, но не конкурирующие, за исключением проектов с неиспользуемым пространством для ворот FPGA.)

Но я определенно могу рекомендовать изучение ПЛИС и программирование HDL. Это одна из областей, где «сбор книг» действительно не поможет вам. Что вам нужно сделать, это получить дешевую плату для разработки (их много на рынке в диапазоне от 100 до 200 долларов США), загрузить соответствующий набор инструментов и начать писать и тестировать код.

0 голосов
/ 27 октября 2009

Ну, масштабируемая 3D-рендеринг на FPGA. Как бы вы подошли к этому? FPGA отлично подходят для масштабирования классической архитектуры simd до размера данных, который вам по вкусу (или ограничению), с большим параллелизмом вы можете обрабатывать данные до приемлемого уровня даже с частотой 100 МГц, на мой взгляд, единственным ограничением является пропускная способность и скорость памяти. Не забывайте, что вам нужен графический контроллер, чтобы иметь возможность использовать данные, которые вы выплевываете. По сути, вы бы делали все аппаратное обеспечение для выполнения такой сложной задачи. Вы уверены, что способны сделать SIMD-процессор, способный к 3D-рендерингу? Каким будет ваш аппаратный дизайн?

Как многие другие указали на ITT; CUDA от nvidia - отличная альтернатива, новая архитектура Fermi кажется многообещающей, но если вы ищете низкую стоимость, малый размер и низкое энергопотребление, я не могу рекомендовать использовать CUDA. Конечно, это отлично подходит для решения задачи, но если у вашей задачи есть колеса и батарея, она усложняется.

Я думаю, что задача, более подходящая для fpgas, чем графика, - это биологические вычисления, проблемное пространство, требующее большего параллелизма, чем графика.

0 голосов
/ 08 октября 2009

Как говорит Энди Росс, я полагаю, что FPGA - это то, что вам нужно для решения подобных проблем - вам также нужно как-то связать его с ПК.

Я бы начал с получения DevKit и поиграл с этим. Сделать мигание светодиода - я всегда находил, что это самая сложная часть, когда я начинаю с новым встроенным устройством o.O. Получите некоторую форму связи (RS232 / TCP), которая, вероятно, на DevBoard. Затем реализуйте на нем некоторые математические функции, которые возвращают параметры / передают результаты через comms.

0 голосов
/ 08 октября 2009

Почему бы не узнать, как использовать аппаратное ускорение, которое поставляется с современными ПК сегодня? Могу поспорить, что использование OpenGL или DirectX (как бы это ни называлось в наши дни) с аппаратным ускорением будет работать лучше.

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

Мое мнение: воспользоваться всей работой, которая была вложена в технологию 3D-игр.

...