Linux下基于英特尔CPU/GPU的OpenCL开发

OpenCL development on Intel CPU/GPU under Linux

本文关键字:GPU OpenCL 开发 CPU 英特尔 Linux      更新时间:2023-10-16

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

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

您可以提供一些链接,以及针对Linux平台和英特尔硬件的OpenCL工具的当前状态摘要吗?

我认为这对许多其他人都有用。。

非常感谢!

英特尔在Linux下的iGPU上不提供对OpenCL的免费支持-您必须购买英特尔媒体服务器工作室,最低499美元。在Windows上,您可以下载一个免费的驱动程序来获得iGPU的OpenCL功能:https://software.intel.com/en-us/articles/opencl-drivers#philinux.

请注意,你可以使用任何你想要的OpenCL SDK——它不一定是英特尔。SDK只对构建程序有用。为了运行OpenCL程序,您需要制造商提供适当的运行时(驱动程序)。AMD SDK将允许您作为OpenCL设备访问CPU,但不能访问iGPU。

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

遗憾的是,我无法亲自尝试检查Your的GPU是否得到了适当的支持,但在他们的wiki上,他们表示:

支持的目标

第4代英特尔核心处理器";Haswell";,当前需要内核补丁,请参阅";已知问题";部分

Beignet:自检失败";并且几乎所有的单元测试都失败了。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支持测试用例。

对于像我一样遇到这个问题的人来说,现有的答案有一些过时的信息;英特尔现在在上面发布的网站上提供免费的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。

他们还有一个针对英特尔媒体SDK和OpenCL的驱动程序支持列表,其中包含一些有关兼容性的有用信息:https://software.intel.com/en-us/articles/driver-support-matrix-for-media-sdk-and-opencl

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

p.S.

此外,我必须说,我在几个月前成功下载了linux的"媒体服务器"(但还没有使用它)。所以你也可以检查一下。