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
,