在CPU上运行的OpenCL程序

时间:2015-07-08 21:39:31

标签: multithreading opencl cpu

我想比较单核CPU和多核CPU的性能。 我编写了一个程序,让它在单核CPU上迭代1000次以查看运行时间。在多核的情况下,我使用OpenCL来启动一个内核,其代码与第一种情况下迭代内的代码相同。

考虑到多核可以运行8个并发线程,理论上,多核案例的运行时间应该高于T(单核)/ 8。 但结果是T(多核)几乎是T(单核)的1/20。

我想知道为什么会这样? OpenCL编译器是否为多核CPU做了一些优化?

1 个答案:

答案 0 :(得分:2)

如果您的单核心代码是标量,则opencl运行时很可能使用sse或avx并获得额外的乘数。