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

前端之家收集整理的这篇文章主要介绍了在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内核要容易得多.

猜你在找的C&C++相关文章