英特尔OpenCL Beignet问题

时间:2017-01-19 09:20:28

标签: linux opencl intel gpu-programming beignet

我正在尝试使用英特尔硬件在Linux上使用OpenCL:

我有3个选项:

  1. 在CPU实施中使用Intel的OpenCL - 让我有机会测试代码逻辑,因为性能行为非常不同。
  2. 在GPU实现上使用英特尔的OpenCL - 但是我从未管理它运行,因为它需要自定义构建内核而且它不是想要处理的东西(我是否会错过)
  3. 使用英特尔的开源OpenCL实现GPU - Beignet。
  4. 我在两个主要平台上测试了Beignet 1.2.1 OpenCL:

    1. i5-6600采用英特尔®高清显卡530 - 运行正常,但明显慢于使用英特尔OpenCL驱动程序的Windows下相同的GPU。
    2. i5-3470采用英特尔®高清显卡2500 - 工作速度也很慢,但另外还可以通过声明任何OpenCL程序立即产生巨大的图形故障 - 基本上阻止了我对OpenCL使用GPU。
    3. 我还比较了它在Windows OpenCL GPU实现上运行相同的代码 - 它运行得更快。

      我注意到内核使用本地内存进行相当标准和简单的缩减时所发现的更大差异 - 它会显着降低性能(我在某处读取使用全局内存作为本地模拟的beignet OpenCL)

      问题:

      1. 任何人都可以设法使用Beignet并从中获得良好的性能吗?
      2. 任何人都可以设法为GPU安装英特尔OpenCL驱动程序,而无需为其编译整个内核吗?
      3. Beignet是否有支持邮件列表/论坛(我发现的邮件列表主要与补丁相关)?
      4. 使用Beignet时有没有人遇到图形故障?

2 个答案:

答案 0 :(得分:2)

最近英特尔将其驱动程序以开源形式发布:

https://01.org/compute-runtime

我在Ubuntu 16.04上遵循了此构建说明(运行make install而不是使用deb文件除外)

https://github.com/intel/compute-runtime/blob/master/documentation/BUILD_Ubuntu.md

我让驱动程序正常工作。

性能要好得多

  • 与beignet相比,Caffe OpenCL的性能达到〜x2
  • 在我的自定义代码中,减少代码的速度要快得多
  • 使用clblas,clblast进行gemm操作也快了2倍

不需要自定义内核补丁

答案 1 :(得分:1)

差不多1年前,我遇到了类似的困境--Beignet或英特尔OpenCL驱动程序 - 我最终选择了英特尔驱动程序。

我也是先从Beignet开始,但我没能成功安装它。 但是,英特尔OpenCL的安装在Ubuntu 14.04和16.04上运行良好。

Ubuntu 14.04需要内核修补,但16.04工作没有,即使手册说它是必需的。我认为只要您的Linux发行版内核与OpenCL驱动程序所需的内核匹配并且您不需要某些需要修补的功能,您就可以不进行内核修补。我认为一些OpenCL 2.0功能需要修补,我使用的是OpenCL 1.2。 在Ubuntu 16.04上,默认内核版本是4.4,它与OpenCL驱动程序所需的内核版本相匹配 - 特别是intel-opencl-2.0-2.0-54425驱动程序版本。如果需要,您可以下载here

否则the latest one目前需要内核4.7。如果您使用的Linux发行版是在4.7上,那么它可以在没有修补的情况下工作。

我还测试了Ubuntu vs Windows,但我没有注意到任何性能差异。我在Ubuntu 16.04上使用54425驱动程序进行OpenCL开发超过半年,我没有看到任何问题。