我正在寻找一些 OpenCL 的介绍性示例,这些示例说明了可以体验到速度大幅提升(例如,50x-1000x)的应用程序类型。 Cuda有很多很好的例子,但我没有为 OpenCL 找到同样的例子。
一个很好的例子可能是通过粒子群、模拟退火、进化算法、蚁群优化等对复杂函数进行全局优化。
从 GPU 编程的角度来看,您所描述的算法既不简单也不具有介绍性。CUDA 在这些领域有例子的原因是它已经存在了足够长的时间让人们开发这些例子。目前没有在 GPU 上运行的公开可用版本的 OpenCL。ATI 和 NVIDIA 都提供其 OpenCL 驱动程序的 beta 版本,但 ATI 仅支持 CPU 计算,而 NVIDIA 需要签署 NDA 才能获得。简而言之,OpenCL 的存在时间还不够长,无法开发和演示此类综合示例。
也就是说,访问 NVIDIA 的 OpenCL 驱动程序并不困难。您可以在此处的论坛上了解如何操作。我假设 OpenCL 发行版包含一些示例程序来帮助您入门。
这也意味着这是您开发其中一些基准并发布结果的绝佳机会。然后人们会提到你的工作,而不是你提到他们的工作。不过我不会期待太多惊喜。一旦 OpenCL 广泛可用并得到支持,它的性能应该与 CUDA 性能大致相当。
以下是来自 nvidia 的 SDK 中的一些很好的示例:
我们的团队一直致力于 OpenCL 算法和加速,我们想推荐这篇文章
作为最小化模拟退火算法的示例实现。
你可以试试以下两本书:
大规模并行处理器编程...实践方法 (NVIDIA)(第 1 章和第 2 章)
OpenCL Programming Book ... 多核 CPU 和 GPU 的并行编程(历史组件
两者都详细解释了为什么进行开发以及在哪里可以找到真正的奖金。
虽然不确定基准测试,但我自己也没有任何运气。