我想比较单核CPU和多核CPU的性能。 我编写了一个程序,让它在单核CPU上迭代1000次以查看运行时间。在多核的情况下,我使用OpenCL来启动一个内核,其代码与第一种情况下迭代内的代码相同。
考虑到多核可以运行8个并发线程,理论上,多核案例的运行时间应该高于T(单核)/ 8。 但结果是T(多核)几乎是T(单核)的1/20。
我想知道为什么会这样? OpenCL编译器是否为多核CPU做了一些优化?
答案 0 :(得分:2)
如果您的单核心代码是标量,则opencl运行时很可能使用sse或avx并获得额外的乘数。