【问题标题】:OpenCL development on Intel CPU/GPU under LinuxLinux下Intel CPU/GPU上的OpenCL开发
【发布时间】:2015-04-16 05:10:58
【问题描述】:

我有一个 intel i7 haswell cpu,我想开始探索 OpenCL 开发。特别是,我有兴趣在集成 GPU 上运行 OpenCL 代码。

不幸的是,到目前为止,我无法在英特尔网站上找到任何 SDK..

您能否提供一些链接,以及 Linux 平台和 Intel 硬件的 OpenCL 工具的当前状态摘要?

我认为这对其他人会有用..

非常感谢!

【问题讨论】:

  • 好像没有SDK,但这里列出了工具:software.intel.com/en-us/intel-opencl
  • 不确定集成 GPU 是否“足够好”以拥有 OpenCL 驱动程序。可能是集成的没有足够的功能来支持 OpenCL(我在 ARM 使用 OpenCL,GPU 需要做很多事情才能支持 OpenCL,而且一些集成的 GPU 相当基本)
  • 如果你的集成显卡是4000系列或更高,应该支持opencl。您还在哪里寻找驱动程序/支持?你有没有直接问过英特尔?如果你现在想对 CPU 进行编码,AMD sdk 支持 intel cpus。
  • 好吧,我有一台带 P4600 的 Xeon E3,所以我认为它应该支持 OpenCL。我查看了英特尔网站,也四处搜索,但我几乎一无所获.. AFAIK AMD sdk(你能提供一个链接吗?我不想弄乱下载错误的版本)只支持 cpu。总比没有好,但我很高兴在 gpu 上尝试我的代码。它应该比单独的 cpu 快得多。谢谢。
  • @MatsPetersson 的链接看起来正是您所需要的。但是,您也可以只从 Khronos 下载标头并从 AMD、NVIDIA 或 Intel SDK 链接到 OpenCL.lib(这是同一件事;安装在 OS 公共区域中的 OpenCL.dll 的包装器)。如果您有最新的驱动程序,则运行时已在您的计算机上。

标签: c++ linux opencl intel


【解决方案1】:

对于像我一样遇到这个问题的任何人,现有的答案都有一些过时的信息;英特尔现在在上面发布的网站上提供适用于 Linux 的免费驱动程序:https://software.intel.com/en-us/articles/opencl-drivers#philinux

驱动程序本身仅在第 5、第 6 和第 7 代 Core 处理器(以及许多其他 Celeron 和 Xeons,请参阅链接)上受支持,早期的处理器(例如第 4 代)仍需要 Media Server Studio。 不过,他们现在提供 Linux 社区版 Media Server Studio,可免费下载。

他们还有一个适用于 Intel Media SDK 和 OpenCL 的驱动程序支持矩阵,其中包含一些有关兼容性的有用信息:https://software.intel.com/en-us/articles/driver-support-matrix-for-media-sdk-and-opencl

【讨论】:

    【解决方案2】:

    您可以查看英特尔开源 Beignet OpenCL 库:http://arrayfire.com/opencl-on-intel-hd-iris-graphics-on-linux/ 对我来说(ubuntu 15.10 + Intel i5 第 4 代 GPU)效果很好。

    附言

    另外我必须说几个月前我设法下载了用于 linux 的“媒体服务器”(但还没有使用它)。所以你也可以检查一下。

    【讨论】:

      【解决方案3】:

      有一个用于 Linux 上的英特尔 GPU 的开源 OpenCL 实现,名为 Beignet,由来自英特尔的一群人维护。

      遗憾的是,无法亲自尝试检查您的 GPU 是否得到适当支持,但在他们的 wiki 上,他们指出:

      支持的目标

      第四代英特尔酷睿处理器“Haswell”,目前需要内核补丁,请参阅“已知问题”部分。

      Beignet: self-test failed”,几乎所有的单元测试都失败了。Linux 3.15 和 3.16(提交 f0a346b 到 c9224fa)默认启用了寄存器白名单,但错过了 Beignet 所需的一些寄存器。

      这可以通过升级 Linux 或禁用白名单来解决:

      # echo 0 > /sys/module/i915/parameters/enable_cmd_parser

      在 Haswell 硬件上,Beignet 1.0.1 到 1.0.3 在更高版本的 Linux 上也需要上述解决方法,但在当前(83f8739 之后)git master 中不需要。

      所以,值得一试。顺便说一句,它在我的第三代 HD4000 上运行良好。

      此外,相关的工具链和驱动程序包括大量支持 GPU 的测试用例。

      【讨论】:

        【解决方案4】:

        英特尔在 Linux 下的 iGPU 上不提供对 OpenCL 的免费支持 - 您必须购买 Intel Media Server Studio,最低 499 美元。在 Windows 上,您可以下载免费驱动程序以获得 iGPU 的 OpenCL 功能:https://software.intel.com/en-us/articles/opencl-drivers#philinux。

        请注意,您可以使用任何您想要的 OpenCL SDK - 它不必是 Intel。 SDK 仅对构建您的程序有用。要运行 OpenCL 程序,您需要制造商提供的适当运行时(驱动程序)。 AMD SDK 将使您能够访问作为 OpenCL 设备的 CPU,但不能访问 iGPU。

        【讨论】:

        • 有什么方法可以让我的代码在 iGPU 上运行,即使使用非英特尔 sdk 也是如此?谢谢。
        • 我已经在上面回答了这个问题:SDK 无关紧要——你需要一个 Intel 驱动程序。在 Windows 上您可以免费获得一台,而在 Linux 上您需要付费。只有英特尔可以提供驱动程序,至少在有人开发出开源替代方案之前是这样。
        • 您的回答非常简洁——它确实节省了我阅读所有英特尔资料的时间。谢谢。
        • Beignet 开源实现怎么样?它似乎允许 Linux 的 GPU 访问。
        猜你喜欢
        • 2014-08-03
        • 2018-07-21
        • 2014-10-23
        • 2016-03-06
        • 2011-07-23
        • 2019-02-19
        • 1970-01-01
        • 1970-01-01
        • 2018-12-10
        相关资源
        最近更新 更多