DirectCompute информация

Я пытался использовать графический процессор как часть моего проекта. Я изучал как CUDA, так и OpenCL, но отсутствие информации, показывающей, как внедрить их в проект, просто шокирует. Даже их специализированные форумы мертвы. Итак, теперь я смотрю в DirectCompute.

Из того, что я могу сказать, это просто новый тип файла шейдера, который использует HLSL. Мой вопрос таков: нужно ли изменить структуру моей программы (кроме DirectX 10 / 11)?

Я имею в виду, это просто случай создания CS-файла, настройки в проекте, как любой другой шейдер, и наблюдения за магией?

Любая информация по этому вопросу будет оценена.

3 ответа

Решение

Да, CS вписывается в обычную структуру программирования DirectX. Он работает аналогично CUDA/OpenCL. Вот хороший, простой пример:

http://openvidia.sourceforge.net/index.php/DirectCompute

Лично я бы предложил использовать CUDA / OpenCL, а не идти по маршруту DirectCompute, если в вашем проекте нет графики. Я думаю, что CUDA / OpenCL лучше для вычислений общего назначения. Может быть немного трудно найти документацию, но это основные аспекты программирования на GPU:

  • Настройка данных на CPU для передачи на GPU.

  • Понимание того, сколько перекосов / потоков необходимо запустить на GPU, как потоки могут взаимодействовать и т. Д.

  • Вычисление на GPU, чтение данных обратно на CPU

Другим вариантом является C++ AMP - пожалуйста, перейдите по ссылкам отсюда для получения дополнительной информации и не стесняйтесь размещать вопросы по мере их поступления: http://blogs.msdn.com/b/nativeconcurrency/archive/2011/09/13/c-amp-in-a-nutshell.aspx

Самый простой способ - это сделать проект, который использует CS с C# а также SlimDX,

А вот хороший сайт с основами, как использовать CS из кода C#.

Позже вы можете перейти к полномасштабному исследованию CS с C++ а также DirectX 11,

Другие вопросы по тегам