OpenCL против DirectCompute? - PullRequest
       37

OpenCL против DirectCompute?

19 голосов
/ 03 июля 2010

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

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

I 'меня не интересует CUDA, поскольку я не хочу ограничиваться только аппаратным обеспечением Nvidia.

Ответы [ 5 ]

13 голосов
/ 04 июля 2010

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

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

11 голосов
/ 04 июля 2010

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

Я не уверен, что DirectCompute предоставляет такую ​​свободу.

4 голосов
/ 22 июля 2010

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

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

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

3 голосов
/ 17 марта 2012

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

1 голос
/ 11 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...