Linux下基于英特尔CPU/GPU的OpenCL开发
OpenCL development on Intel CPU/GPU under Linux
我有一个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的"媒体服务器"(但还没有使用它)。所以你也可以检查一下。
- OpenCL 在 NVIDIA 和 Intel GPU 上启动内核时CL_INVALID_COMMAND_QUEUE
- 使用 NVIDIA GPU 在 Cygwin 中链接 OpenCL 库时遇到问题
- 我可以为nVIDIA GPU编写OpenCL-C++内核吗
- "CPU OpenCL Project"和"GPU OpenCL Project"的区别
- 在 GPU 上分配结构的 OpenCL 会导致垃圾
- 是否可以在多线程而不是 cuda/opencl C++运行 GPU?
- OPENCL发布GPU内存
- OpenCL - GPU 总和和 CPU 总和不同
- 使用OpenCL,如何获取GPU内存使用量
- OPENCL多重GPU积分 - SegFault将全局大小从32更改为64
- 在笔记本电脑上开发不支持 GPU 的 OpenCL 应用程序
- 为什么使用OpenCL下载数据比在GPU上上传要慢得多
- AMD GPU的OpenCL时间测量问题
- OpenCL 程序在使用 GPU 时冻结
- OpenCL for APU+GPU
- 如何使用OpenCL处理GPU内存中总大小过大的图像
- 如何使用NVidia GPU在Windows下逐步调试OpenCL GPU应用程序
- Linux下基于英特尔CPU/GPU的OpenCL开发
- 如何让 OpenCL 在我的 GPU 上运行
- 如何将字符串传递到GPU,并从内核获取字符串以显示它?(C++OpenCL)