在Linux下的Intel CPU / GPU上进行OpenCL开发

时间:2015-02-15 17:15:34

标签: c++ linux opencl intel

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

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

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

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

非常感谢!

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

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

可悲的是,无法亲自尝试检查您的GPU是否得到适当支持,但在他们的维基上,他们说:

  

支持的目标

     

第四代英特尔酷睿处理器" 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中不需要这样做。

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

此外,有问题的工具链和驱动程序包括一堆GPU支持测试用例。

答案 2 :(得分:2)

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

驱动程序本身仅支持第5代,第6代和第7代核心处理器(以及其他一些Celerons和Xeon,请参阅链接),早期的处理器(如第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

答案 3 :(得分:0)

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

P.S。

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