【问题标题】:OpenCL maturity under WindowsWindows 下的 OpenCL 成熟度
【发布时间】:2012-03-12 19:17:06
【问题描述】:

我考虑在目前正在开发的消费产品中使用 OpenCL。

做了一个小的研究,我发现在 Mac OSX 下通常有很好的支持。 Linux 支持也比较好,但我的目标受众不使用 Linux。有待检查它在 Windows 中的支持程度。

关于 Windows,我发现 OpenCL distribution 引起了一些担忧。

你们有没有在 Windows 下在面向消费者的产品中使用 OpenCL 的经验?我对 OpenCL 的 GPU 方面更感兴趣,特别是驱动程序支持。

【问题讨论】:

    标签: windows opencl


    【解决方案1】:

    AMD 和 NVidia 在其大多数(全部?)GPU 上都支持 OpenCL

    不幸的是,英特尔仅在 CPU 上支持它,这有点毫无意义,如果您必须坚持让用户为您的应用程序使用单独的 GPU,您也可以坚持让他们拥有 NVidia 并使用 CUDA。这限制了 OpenCL 的使用。

    【讨论】:

    • 不是all?,而是这个:nvidia list, amd list
    • @elmigranto - 这是 Nvidia Cuda 支持的 GPU 的列表。我相信 Nvidia 在所有支持 Cuda 的芯片上都支持 openCL。
    • NVIDIA 可能会。但由于 NVIDIA 的 OpenCL 是在 CUDA 之上实现的,因此可以确定不支持 CUDA 的 GPU 也不会支持 OpenCL。
    【解决方案2】:

    就像 CUDA 或 Stream 一样,OpenCL 需要得到驱动程序的支持。大多数支持 CUDA 的 GPU 都支持 OpenCL,并带有一些最新的驱动程序(CUDA 1.0 以上)。 事实上,如果您使用 CUDA SDK 4.1 进行编译,您的最终用户将需要比使用 OpenCL 时更新的驱动程序。

    此外,OpenCL 不受任何 GPU 架构的约束。虽然这对于专门设计的算法可能会有问题,但它对普通最终用户程序的影响应该不会很大。

    至少使用 CUDA,您只能编译针对当前已知主要版本优化的代码。在最终用户机器上编译 OpenCL 内核可能允许在未来针对更新的二进制规范进行优化。

    如果资源没有正确释放,作者在为 Nvidia OpenCL 报告的问题中通常会发生很多崩溃。在修复未释放创建的内核的泄漏之前,我一直看到类似的崩溃。 我并不是说这是它可能崩溃的唯一原因,但除了程序员错误之外,它对我来说似乎相当稳定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多