用于GPU编程的DirectCompute与OpenCL?

时间:2010-05-26 17:34:46

标签: cuda gpu gpgpu opencl directcompute

我有一些(财务)任务应该很好地映射到GPU计算,但我不确定我是否应该使用OpenCL或DirectCompute。我做了一些GPU计算,但很久以前(3年)。我是通过OpenGL完成的,因为当时没有任何替代方案。

我看过一些OpenCL演示文稿,它看起来非常好。我还没有看到任何有关DirectCompute的内容,但我希望它也很好。

我对目前的跨平台兼容性并不感兴趣,此外,我希望这两个模型足够相似,在尝试从一个模型转到另一个时不会引起很大的麻烦。

那么,你使用过这两个中的任何一个吗?特别是DirectCompute?它与OpenCL(和CUDA)相比如何?

3 个答案:

答案 0 :(得分:3)

鉴于您正在寻求非图形计算,我建议您更喜欢OpenCL而非DirectCompute,因为您可能会在社区协助方面找到更多。

鉴于您已经确定从一个到另一个相对简单,即一旦您已完成并行化应用程序的工作,您也可以出于同样的原因考虑CUDA而不是OpenCL和DirectCompute。 / p>

之前你曾在OpenGL工作过;与之相比,它们中的任何一个都应该是一种乐趣!

答案 1 :(得分:2)

我正在学习OpenCL。当我向你做出类似的决定时,对我而言OpenCL的最大优势是对异构环境有利(与CUDA和其他解决方案相反)。我不仅指硬件,也指操作系统。 OpenCL比CUDA更加免费。

编写代码是一项昂贵的任务。我希望将来能够使用我的gpgpu代码,没有metter:在许多并行cpu上,在一个或另一个供应商的设备上或不同的操作系统上。我可以在我的计算机上计算小任务,而在Univesity的大得多的机器上有许多CPU更多的任务parrarel任务,而在另一个与特斯拉的时候更多的数据 - parrarel任务。 OpenCL在各种硬件和操作系统上提供了重用代码

答案 2 :(得分:0)

另一种选择是C ++ AMP,它也针对GPU并具有后备CPU多核和SIMD指令目标。它将允许您专注于计算,如果您确实需要与图形集成,那么也有一个互操作层。通过开放规范,我们应该在某个时候看到其他操作系统的实现。请点击此处的链接获取更多信息,并随时发布问题:http://blogs.msdn.com/b/nativeconcurrency/archive/2011/09/13/c-amp-in-a-nutshell.aspx