所以我运行了如何测试 OpenCL 兼容性? 对于 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?
非常感谢!
所以我运行了如何测试 OpenCL 兼容性? 对于 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?
非常感谢!
你的理解大多是正确的。您必须确保您使用的功能是 OpenCL 1.1 和 1.2 的一部分,即应避免在 1.2 中弃用的功能,因为不能保证它们会在 OpenCL 1.2 设备上提供。查看已弃用功能的简短列表,我认为这不会是一个重大问题。
如果您绝对必须使用 OpenCL 1.2 功能,那么您将不得不使用 CPU 而忘记 GPU。但是,我还没有在 1.2 标准中找到任何迫使我这样做的东西。
只是一个警告,如果您使用任何使用 OpenCL 的库,请确保它们的目标版本或它们是否有代码可以在两者之间切换。在 Nvidia GPU 上使用 1.2 中的函数会导致段错误。