intel-compute-runtime、intel-opencl-runtime 和 intel-opencl-sdk 之间有什么区别?

Joh*_*ohn 5 intel opencl

看起来 Intel 提供了许多 OpenCL 实现。ArchWiki描述了 OpenCL 实现。它说 beignet 和 intel-opencl 已弃用。那么,intel-compute-runtime、intel-opencl-runtime 和 intel-opencl-sdk 有什么区别呢?

我想在我的 x86 计算机上使用 OpenCL。

fak*_*ken 8

以下OpenCL 运行时将您的 Intel 集成GPU作为 OpenCL 设备公开给您 PC 中的应用程序:

  • 英特尔计算运行时(又名 Neo)是英特尔 GPU 的新开源 OpenCL 实现。它支持 Broadwell 及以后的集成 GPU。
  • Beignet是英特尔集成 GPU 的旧开源 OpenCL 实现。自 Ivy Bridge 以来,它支持集成 GPU。如果您有较旧的 Intel 处理器,则应使用它。
  • 自 Ivy Bridge 以来,英特尔 OpenCL是 Beignet 的专有替代品,用于旧处理器。根据我的经验,如果您使用的是较旧的处理器,则 Beignet 更可取。

英特尔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)。