微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在aCPU上运行OpenCL代码有什么好处?

我正在学习OpenCL编程,并注意到一些奇怪的东西.

也就是说,当我在我的机器上列出所有支持OpenCL的设备(Macbook Pro)时,我得到以下列表:

> Intel(R)Core(TM)i7-4850HQ cpu @ 2.30GHz
> Iris Pro
> GeForce GT 750M

一个是我的cpu,第二个是英特尔的板载图形解决方案,第三个是我的专用显卡.

研究表明,英特尔已将其硬件OpenCL兼容,以便我可以利用板载图形单元的强大功能.那将是Iris Pro.

考虑到这一点,cpu与OpenCL兼容的目的是什么?仅仅是为了方便,内核可以在cpu上运行,因为备份不应该找到其他卡,或者当运行代码作为OpenCL内核而不是常规(C,线程良好)程序时,是否有任何速度优势中央处理器?

解决方法

有关基本信息,请参阅 https://software.intel.com/sites/default/files/m/d/4/1/d/8/Writing_Optimal_OpenCL_28tm_29_Code_with_Intel_28R_29_OpenCL_SDK.pdf.

基本上,英特尔OpenCL编译器为某些类型的内核执行水平自动向量化.这意味着使用SSE4,您可以在单个核心中并行运行8个线程,类似于Nvidia GPU在单个32宽simd单元中运行32个线程.

这种方法有两个主要好处:如果在2年内它们将SSE矢量宽度增加到16,会发生什么?然后,当您在该cpu上运行时,您将立即获得16个线程的自动向量化.无需重新编译代码.第二个好处是,与在ASM或C中编写并使编译器生成高效代码相比,编写一个可轻松实现自动向量化的OpenCL内核要容易得多.

原文地址:https://www.jb51.cc/c/119756.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐