【发布时间】:2015-07-09 06:07:00
【问题描述】:
我想比较一下单核CPU和多核CPU的性能。 我写了一个程序,让它在单核CPU上迭代1000次,看看运行时间。在多核的情况下,我使用 OpenCL 启动了一个内核,其中代码与第一种情况的迭代内部的代码相同。
考虑多核可以运行8个并发线程,理论上多核情况的运行时间应该在T(single-core)/8以上。 但结果是T(multi-core)几乎是T(single-core)的1/20。
我想知道为什么会这样? OpenCL 编译器是否针对多核 CPU 做了一些优化?
【问题讨论】:
-
这是什么代码?程序是如何编译的(例如优化标志)?
-
你最好使用 OpenMP 来比较单核/多核性能。它非常易于使用,并且运行完全相同的汇编代码。
标签: multithreading opencl cpu