4

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

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

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

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

4

3 回答 3

3

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

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

您以前在 OpenGL 中工作过;与此相比,它们中的任何一个都应该是一种享受!

于 2010-05-27T15:51:45.353 回答
2

我正在学习 OpenCL。当我做出与您类似的决定时,对我而言,OpenCL 的最大优势是适用于异构环境(与 CUDA 和其他解决方案相反)。我不仅指硬件,还包括操作系统。OpenCL 比 CUDA 更自由的标准。

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

于 2011-01-25T21:30:29.790 回答
0

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

于 2012-03-16T22:31:44.487 回答