DirectCompute против OpenCL для программирования на GPU? - PullRequest
4 голосов
/ 26 мая 2010

У меня есть некоторые (финансовые) задачи, которые должны хорошо соответствовать вычислениям на GPU, но я не совсем уверен, стоит ли мне использовать OpenCL или DirectCompute. Я занимался на GPU, но это было очень давно (3 года). Я сделал это через OpenGL, так как тогда не было никакой альтернативы.

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

В данный момент меня не интересует кроссплатформенная совместимость, и, кроме того, я ожидаю, что две модели будут достаточно похожими, чтобы не вызывать сильную головную боль при попытке перейти от одной к другой.

Итак, вы использовали кого-нибудь из этих двух? Особенно DirectCompute? Как это сравнить с OpenCL (и CUDA)?

Ответы [ 3 ]

3 голосов
/ 27 мая 2010

Учитывая, что вы предпочитаете неграфические вычисления, я бы посоветовал вам предпочесть OpenCL, а не DirectCompute, поскольку вы, скорее всего, найдете больше способов помощи сообществу.

Учитывая, что вы уже определили, что переход от одного к другому относительно прост, т. Е. После того, как вы уже выполнили работу по распараллеливанию вашего приложения, вы также можете рассмотреть CUDA для OpenCL и DirectCompute по той же причине.

Вы работали в OpenGL раньше; любой из них должен быть восхитительным в использовании по сравнению с этим!

2 голосов
/ 26 января 2011

Я изучаю OpenCL. Когда я принимал подобное решение, самое большое преимущество OpenCL для меня - гетерогенная среда (в отличие от CUDA и других решений). Я имею в виду не только аппаратное обеспечение, но и ОС. OpenCL - намного более бесплатный стандарт, чем, например, CUDA.

Написание кода - дорогостоящая задача. Я хотел бы иметь возможность использовать мой код gpgpu в будущем, без каких-либо ограничений: на многих параллельных процессорах, на устройствах того или иного поставщика или другой операционной системы. Я могу вычислять на моем компьютере небольшие задачи, в то время как на гораздо большей машине в Univesity с большим количеством процессоров больше задач, аналогичных задачам, в то время как на других - с Tesla, когда больше задач для данных. OpenCL дает такое повторное использование кода на различных аппаратных средствах и ОС.

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

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

...