【问题标题】:What kind of applications should be rewritten to use OpenCL? [closed]应该重写哪些应用程序才能使用 OpenCL? [关闭]
【发布时间】:2010-12-27 21:46:15
【问题描述】:

Mac OS X 10.6 带有 OpenCL,但是如果将它们重写为使用 OpenCL,有多少应用程序可以具有更好的性能?应该重写哪些应用程序才能使用 OpenCL?

【问题讨论】:

    标签: c++ c osx-snow-leopard performance opencl


    【解决方案1】:

    OpenCL 并不是一个神奇的“提高性能”按钮。为了获得性能提升,需要满足几个先决条件,第一个是适当的硬件(Tesla GPU 有帮助)。至于可以从中受益的软件,它是任何进行大量并行计算的软件。这不包括大多数“日常”软件,只剩下图形处理应用程序(渲染器、图像处理程序)、可能并行操作的大型数据处理应用程序以及科学应用程序。

    通常,如果您编写的应用程序可以从 OpenCL 中受益,您就知道您已经从中受益了;)。

    【讨论】:

    • 普通 GeForce/Radeon 显卡和专业显卡在 OpenCL 支持上没有区别。
    【解决方案2】:

    首先,您不能使用 OpenCL“重写”整个应用程序。您仍然需要 GUI 等的“普通”语言。

    使用 OpenCL,您可以加速非常大的数据并行问题。大多数问题不属于这一类。

    最有希望的候选者是图形/视频和声音处理。但是每个需要对非常大的数据集进行相同操作的问题都是合适的。

    【讨论】:

    • 我猜大多数需要更多 CPU 能力的普通应用程序最好使用 Grand Central Dispatcher,它也从 QuickTime X 中使用。从这里给出的答案中,我知道 OpenCL 非常具体对于有限的应用程序组,OpenCL 是向前迈出的一步,因为它允许使用基于 C 的编程语言,可以在不同的平台上使用。
    • GCD 基本上只是一个非常复杂的线程池实现。自己管理线程可以做得更好。
    【解决方案3】:

    我的公司正在使用 OpenCL 进行科学计算。虽然我不是使用它的开发团队的一员,但我可以告诉你他们使用它来做的一些事情:图像的大规模数据处理、想象重建以及以前编写的科学代码的大规模并行化。

    基本上,OpenCL 是相当先进的。除非您想/必须处理它,否则最好留给需要它的人。我并不是要劝阻你,但它是专为利基市场设计的利基产品。为潜在的就业目的学习其他编程领域会更好。

    【讨论】:

      猜你喜欢
      • 2010-12-18
      • 2012-07-15
      • 2010-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多