我怎么知道OpenCL可以编程哪个CPU?例如,奔腾E5200。有没有办法知道没有运行和查询它?
通常可以通过查看供应商的站点来确定OpenCL兼容性。 AMD的APP SDK要求CPU至少支持SSE2。他们还有一份目前支持的ATI / AMD显卡列表。
最官方的消息来源可能是Khronos一致性列表:http://www.khronos.org/conformance/adopters/conformant-products#opencl
为了与AMD APP SDK兼容:http://developer.amd.com/gpu/AMDAPPSDK/pages/DriverCompatibility.aspx
对于NVIDIA,任何支持CUDA的东西都应该支持他们实现OpenCL:http://www.nvidia.com/object/cuda_gpus.html
要与英特尔OpenCL SDK兼容,请查看: https://software.intel.com/en-us/articles/opencl-code-builder-release-notes
以下是来自Khronos网站的符合OpenCL产品的列表:
http://www.khronos.org/conformance/adopters/conformant-products/
你现在得到英特尔OpenCL太http://software.intel.com/en-us/articles/intel-opencl-sdk/的Windows。
对于CPU来说,AMD's SDK应该可以在x86上运行(即使在英特尔的x86上),因此这将涵盖大部分选项。
对于GPU,我认为在过去几年中制作的几乎所有卡都应该运行OpenCL内核。我没有特定的清单。
还有一个关于英特尔的评论,现在他们不仅支持Windows下的OpenCL,还支持Linux。但它是商业SDK的一部分,请参阅https://software.intel.com/en-us/intel-media-server-studio。
Linux下OpenCL开发的另一种替代方案是Beignet,这是由英特尔中国维护的OpenCL源项目。 http://www.freedesktop.org/wiki/Software/Beignet/
我已经在linux上测试了它按照教程工作,但是,他们使用的编译器与windows下的编译器完全不同。