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