看起来 Intel 提供了许多 OpenCL 实现。ArchWiki描述了 OpenCL 实现。它说 beignet 和 intel-opencl 已弃用。那么,intel-compute-runtime、intel-opencl-runtime 和 intel-opencl-sdk 有什么区别呢?
我想在我的 x86 计算机上使用 OpenCL。
以下OpenCL 运行时将您的 Intel 集成GPU作为 OpenCL 设备公开给您 PC 中的应用程序:
在英特尔OpenCL运行暴露你的CPU为OpenCL设备到您的PC应用。
一个OpenCL的ICD装载机是与供应商无关,并允许您选择哪个OpenCL设备在运行时使用。有几个可用,但我建议ocl-icd,因为它是开源的并且通常是最新的。
为了开发您自己的 OpenCL 程序,您还需要OpenCL 头文件,您可以从这里下载或从Arch 存储库安装。
所谓的SDK只是供应商捆绑包,通常包含: a) OpenCL 运行时,将供应商硬件公开为 OpenCL 设备;b) OpenCL ICD 加载程序,以便各种处理器可以作为 OpenCL 设备公开;c) OpenCL 头文件;d) 关于如何在供应商硬件上最好地使用 OpenCL 的代码示例;和,e) 可能其他供应商相关的东西。
SDK 的一些示例包括:
您实际上不需要 SDK 来开发 OpenCL 应用程序,只要您有OpenCL 运行时、OpenCL ICD 加载程序和OpenCL 头文件。如果使用 C/C++ 开发,您的应用程序应包含头文件和针对 ICD 加载程序的链接 ( libOpenCL.so
)。