Подтвердить что ты не робот

OpenCL против DirectCompute?

Я ищу сравнения между OpenCL и DirectCompute, но я ничего не нашел. Преимущества OpenCL кросс-платформенного и более широкого диапазона поддерживаемых графических процессоров мне не важны. Я в порядке с кодированием в Windows только с графическими процессорами DX11. Предполагая, какие плюсы и минусы каждого API?

Я знаю этот вопрос был поднят до, но я ищу более подробную информацию.

Меня не интересует CUDA, так как я не хочу ограничиваться только оборудованием Nvidia.

4b9b3361

Ответ 1

Вероятно, самая большая разница для кодера заключается в том, что DirectCompute запрограммирован на языке, который похож на HLSL, а OpenCL запрограммирован на языке C.

Еще одно отличие заключается в том, что, как правило, для графических процессоров на уровне товара поддержка DirectX лучше (быстрее и менее глючит), чем поддержка OpenGL в Windows. Это может привести к более стабильной поддержке DirectCompute, но на самом деле это просто предположение.

Ответ 2

Хорошо, главное преимущество OpenCL заключается в том, что он не ограничивается только графическими картами. Вы можете использовать свой многоядерный процессор, графическую карту и потенциально любое количество других аппаратных ускорительных устройств (DSP и т.д.) Из одной и той же программы.

Я не уверен, что DirectCompute разрешает эту свободу.

Ответ 3

Кросс-платформенная среда OpenCL - это не просто деталь, так как хост-код (тот, который вызывает API OpenCL и отправляющий ядра) сам по себе может быть кросс-платформенным (см. текст ссылки, текст ссылки...).

Напишите один раз, запустите на любом GPGPU где угодно.

В противном случае инструменты OpenCL действительно улучшаются, с плагином ATI Stream для Visual Studio, NVIDIA и ATI SDK, который содержит тонны образцов и т.д.

Ответ 4

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

Ответ 5

Я использую OpenCL, потому что я могу легко переносить свое приложение на Linux, но с DirectCompute это невозможно. Я также думаю, что производительность реализации OpenCL будет возрастать со временем (что она будет на том же уровне, что и CUDA для карт NVidia), а также что ошибки (драйвера) будут (надеюсь);) будут устранены со временем.