当涉及到OpenCL开发时,我对总体情况有点困惑,所以我将把我当前的理解和问题作为一个列表来说明。如果我错了,请纠正我。
谢谢!
发布于 2013-02-24 16:50:02
1) Intel SDK为CPU和GPU设备提供OpenCL 1.2支持(如i7、HD4000、Xeon等),AMD为CPU和GPU设备提供OpenCL 1.2支持(例如Opteron、HD5xxx、HD6xxx、HD7xxx等),NVIDIA仅为GPU提供OpenCL 1.1支持(例如GTX2xx、GTX4xx、GTX5xx、Tesla等)。
2)是的,来自苹果、ARM等公司。
3)是的,多亏了OpenCL ICD,您可以在NVIDIA上编译一个可执行文件,并在硬件上运行。但是,您必须小心使用OpenCL版本,使用OpenCL 1.2SDK编译并在1.1上运行可能会出现一些问题。平台。
4)是的,您可以在运行时查询OpenCL,查找可用平台的列表,并使用其中的一个或全部平台。我使用日常英特尔OpenCL CPU设备与多个AMD OpenCL GPU设备并排。
发布于 2013-02-24 16:43:13
这是How to use 2 OpenCL runtimes的一个副本,得到了答复。简短的回答: SDK只为您提供标题。安装的驱动程序提供平台和设备。您可以使用任何已安装的。
发布于 2013-03-09 19:29:47
英特尔的OpenCL SDK支持OpenCL 1.2的CPU,但只支持OpenCL 1.1的英特尔高清。引用他们的网页“CPU上的OpenCL 1.2与英特尔高清图形上的OpenCL 1.1混合”。然而,英特尔高清的驱动似乎不是很好。它崩溃了大多数运行在其他所有代码上的代码。
Nvidia SDK不包括C++绑定文件cl.hpp。您可以从另一个SDK中复制它,也可以从Khronos站点获得它。
我在使用AMD的非AMD设备上运行OpenCL时遇到了问题,所以我使用了Intel,它可以在AMD、Intel和Nvidia上工作。但是,1.1 C++绑定和1.2 C++绑定并不是100%兼容的。如果您希望您的代码同时工作在Nvidia和AMD上,则只使用OpenCL 1.1,定义如下:#define CL_USE_DEPRECATED_OPENCL_1_1_APIS
https://stackoverflow.com/questions/15050043
复制相似问题