Программирование GPU на Xbox 360

Я ищу некоторое представление о XNA на Xbox 360, в основном, можно ли запускать векторную математику с плавающей запятой на своем графическом процессоре?

Если есть способ, можешь указать мне правильное направление?


person fabiopedrosa    schedule 24.09.2008    source источник


Ответы (2)


Я не претендую на то, чтобы быть экспертом в этом вопросе, но, надеюсь, это может указать вам в полезном направлении.

Является ли это возможным? да. Вы, наверное, уже знаете, что графический процессор хорош в таких вычислениях (отсюда вопрос), и вы действительно можете управлять графическим процессором с помощью XNA. Будет ли он соответствовать вашим потребностям - другой вопрос.

Чтобы использовать графический процессор, вы, вероятно, захотите писать шейдеры с использованием HLSL. Хорошее введение в HLSL в контексте XNA можно найти на странице Реймерса, через который вы, возможно, захотите пройти. Примечательно, что в этом руководстве основное внимание уделяется тому, чтобы графический процессор выполнял обработку графики, но то, что вы пишете в шейдерах, зависит от вас. Если ваша векторная математика с плавающей запятой предназначена для рендеринга (и, следовательно, может оставаться в области графического процессора), вам повезло, и вы можете остановиться на этом.

Вероятный рендеринг на экране - это не то, что вам нужно. Теперь у вас есть изрядная гибкость в HLSL в том, что касается ваших математических расчетов. Однако передача результатов процессору - это не то, как была спроектирована система. Это становится нечетким для меня, но Шон Харгривз (разработчик XNA) заявляет на подробнее чем один раз, когда получение вывода от графического процессора (кроме отображаемого на экране) нетривиально и влияет на производительность. Получение данных включает вызов GetData, который вызывает срыв трубопровода.

Так что это можно сделать. Инфраструктура XNA позволит вам писать шейдеры для 360 (который поддерживает Shader Model 3.0 плюс несколько расширений), и эти результаты можно получить, хотя это может быть недостаточно эффективным для ваших нужд.

person bkane    schedule 24.09.2008

Как было сказано выше, XBox360 полностью поддерживает любые вычисления HLSL, в частности, он может обрабатывать инструкции модели 3 вершинных и пиксельных шейдеров и имеет расширенный набор инструкций, специфичных для данной платформы.

Поскольку HLSL на самом деле является векторным, у вас есть все необходимые инструменты - точечные, перекрестные, векторные операции и матричные вычисления. Если вы хотите отправлять вычисления в графический процессор и редактировать / использовать результаты на процессоре, вы можете записать в текстуру, а затем получить ее на стороне процессора и декодировать ее - использование ее для частиц или физических взаимодействий (таких как вода) - лишь немногие из случаи, когда вы можете захотеть это сделать.

person Adi    schedule 26.09.2008