英特尔 OpenCL Beignet 问题
Intel OpenCL Beignet Issues
我正在尝试在 Linux 上使用 OpenCL 使用英特尔硬件:
我有 3 个选择:
- 在 CPU 实现中使用英特尔的 OpenCL - 让我有机会测试代码逻辑,因为性能行为非常不同。
- 在 GPU 实现上使用 Intel 的 OpenCL - 但我从未设法做到 运行 因为它需要自定义构建内核并且它不是要处理的东西(我错过了什么)
- 使用 Intel 的开源 OpenCL 实现 GPU - Beignet。
我在两个主要平台上测试了 Beignet 1.2.1 OpenCL:
- 带有 Intel® HD Graphics 530 的 i5-6600 - 工作正常,但比在 Windows 下使用带有 Intel OpenCL 驱动程序的相同 GPU 慢得多。
- 带有 Intel® HD Graphics 2500 的 i5-3470 - 工作速度也很慢,但在声明任何 OpenCL 程序时会立即产生巨大的图形故障 - 基本上阻止我将 GPU 用于 OpenCL。
我还比较了它 运行在 Windows OpenCL GPU 实现上使用相同的代码 - 它运行得更快。
我注意到内核中使用本地内存进行相当标准和简单的减少的更大差异 - 它会造成显着的性能损失(我在某处读到 beignet OpenCL 使用全局内存作为本地内存的模拟)
问题:
- 任何人都可以设法使用 Beignet 并从中获得良好的性能吗?
- 有人可以在不编译整个内核的情况下为 GPU 安装英特尔 OpenCL 驱动程序吗?
- 是否支持 Beignet 的邮件 list/forums(我找到的邮件列表主要与补丁相关)?
- 有没有人在使用 Beignet 时遇到图形故障?
大约 1 年前,我遇到了类似的困境 - Beignet 或 Intel OpenCL 驱动程序 - 我最终选择了 Intel 驱动程序。
我也是先从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 与 Windows,我没有发现任何性能差异。我在Ubuntu 16.04上用54425驱动做OpenCL开发半年多了,没发现什么问题。
最近英特尔发布了他们的开源驱动程序:
https://01.org/compute-runtime
我在 Ubuntu 16.04 上遵循了此构建说明(运行 进行安装而不是使用 deb 文件除外)
https://github.com/intel/compute-runtime/blob/master/documentation/BUILD_Ubuntu.md
我让司机工作。
表现要好得多:
- 与 beignet 相比,Caffe OpenCL 的性能提高了约 2 倍
- 在我的自定义代码缩减中工作得更快
- 使用 clblas 的 gemm 操作,clblast 也快了 2 倍
不需要自定义内核补丁
我正在尝试在 Linux 上使用 OpenCL 使用英特尔硬件:
我有 3 个选择:
- 在 CPU 实现中使用英特尔的 OpenCL - 让我有机会测试代码逻辑,因为性能行为非常不同。
- 在 GPU 实现上使用 Intel 的 OpenCL - 但我从未设法做到 运行 因为它需要自定义构建内核并且它不是要处理的东西(我错过了什么)
- 使用 Intel 的开源 OpenCL 实现 GPU - Beignet。
我在两个主要平台上测试了 Beignet 1.2.1 OpenCL:
- 带有 Intel® HD Graphics 530 的 i5-6600 - 工作正常,但比在 Windows 下使用带有 Intel OpenCL 驱动程序的相同 GPU 慢得多。
- 带有 Intel® HD Graphics 2500 的 i5-3470 - 工作速度也很慢,但在声明任何 OpenCL 程序时会立即产生巨大的图形故障 - 基本上阻止我将 GPU 用于 OpenCL。
我还比较了它 运行在 Windows OpenCL GPU 实现上使用相同的代码 - 它运行得更快。
我注意到内核中使用本地内存进行相当标准和简单的减少的更大差异 - 它会造成显着的性能损失(我在某处读到 beignet OpenCL 使用全局内存作为本地内存的模拟)
问题:
- 任何人都可以设法使用 Beignet 并从中获得良好的性能吗?
- 有人可以在不编译整个内核的情况下为 GPU 安装英特尔 OpenCL 驱动程序吗?
- 是否支持 Beignet 的邮件 list/forums(我找到的邮件列表主要与补丁相关)?
- 有没有人在使用 Beignet 时遇到图形故障?
大约 1 年前,我遇到了类似的困境 - Beignet 或 Intel OpenCL 驱动程序 - 我最终选择了 Intel 驱动程序。
我也是先从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 与 Windows,我没有发现任何性能差异。我在Ubuntu 16.04上用54425驱动做OpenCL开发半年多了,没发现什么问题。
最近英特尔发布了他们的开源驱动程序:
https://01.org/compute-runtime
我在 Ubuntu 16.04 上遵循了此构建说明(运行 进行安装而不是使用 deb 文件除外)
https://github.com/intel/compute-runtime/blob/master/documentation/BUILD_Ubuntu.md
我让司机工作。
表现要好得多:
- 与 beignet 相比,Caffe OpenCL 的性能提高了约 2 倍
- 在我的自定义代码缩减中工作得更快
- 使用 clblas 的 gemm 操作,clblast 也快了 2 倍
不需要自定义内核补丁