【问题标题】:OpenCL Compatibility DiscrepancyOpenCL 兼容性差异
【发布时间】:2013-06-01 21:02:51
【问题描述】:

所以我运行了How can i test for OpenCL compability? 中的代码 对于 iMac(2012 年末) 我得到了以下结果:

设备 Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 支持 OpenCL 1.2
设备 GeForce GTX 675MX 支持 OpenCL 1.1

这是否意味着为了让我同时使用 CPU 和 GPU 运行代码,我必须使用 OpenCL 1.1?如果我想使用 OpenCL 1.2 规范进行编码怎么办?这是否意味着代码将只使用 CPU?

非常感谢!

【问题讨论】:

    标签: macos opencl compatibility


    【解决方案1】:

    您的理解大部分是正确的。您必须确保您使用的功能是 both OpenCL 1.1 和 1.2 的一部分,即应避免在 1.2 中弃用的功能,因为不能保证它们会在 OpenCL 1.2 设备上提供.查看已弃用功能的简短列表,我认为这不会是一个重大问题。

    如果您绝对必须使用 OpenCL 1.2 功能,那么您将不得不使用 CPU 而忘记 GPU。但是,我还没有在 1.2 标准中找到任何迫使我这样做的东西。

    只是一个警告,如果您使用任何使用 OpenCL 的库,请确保它们针对的是哪个版本,或者它们是否有代码可以在两者之间切换。在 Nvidia GPU 上使用 1.2 中的函数会导致段错误。

    【讨论】:

    • 感谢您的回答! :)
    • 还有一个问题,@chippies:这个结果是否意味着 OpenCL 1.0、1.1 和 1.2 SDK 都安装在这个特定的 iMac 中?我问是因为我有兴趣使用 OpenCL 1.1 同时对 GPU 和 CPU 进行编程。
    • 您在上面发布的结果没有提及 OpenCL 1.0,因此没有设备可以保证支持该版本。至于 v1.1 和 v1.2,我对 Mac 的有限理解是只有一个 OpenCL 平台,因此只有一个 OpenCL SDK 可以同时公开 v1.1 和 v1.2 的功能。要在两台设备上运行相同的代码,您必须坚持使用 OpenCL 1.1 中未在 1.2 中弃用的一组功能。
    猜你喜欢
    • 2011-12-15
    • 2021-11-29
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    相关资源
    最近更新 更多