1

我正在使用 Intel Vtune Amplifier XE 2013 来分析在多核 CPU 上运行的并行程序,特别是它是用 OpenCL 编写并在 Xeon Phi 中执行的。我想知道Vtune带来的结果应该如何准确解释,即

  1. 是单线程还是整个核心收集的性能计数器的值?(假设一个 CPU 中有许多内核,并且许多线程可以在一个内核上同时执行,例如 Xeon Phi)。
  2. Vtune 如何在多核 CPU 上采样?它是在单个核心上采样并报告它,还是在多个核心上采样并取平均值?
4

2 回答 2

1

VTune 默认对 Xeon Phi 上的所有内核进行采样,结果可以通过以下任一方式查看:聚合或每个内核。使用 GUI 中 BottomUp 选项卡中的 Grouping 下拉框来规范数据聚合的方式,使用“change Viewpoint”在热点、事件计数和其他可用视图之间切换。

有关 VTune 在 Xeon Phi 上进行 OpenCl 分析的更多信息,请参阅以下文章:

http://software.intel.com/en-us/articles/performance-tuning-of-opencl-applications-on-intel-xeon-phi-coprocessor-using-intel-vtune-amplifier-xe-2013

http://software.intel.com/en-us/articles/optimization-and-performance-tuning-for-intel-xeon-phi-coprocessors-part-2-understanding

于 2013-06-05T21:24:27.833 回答
0

答案是视情况而定。一些计数器(如循环或 L1 未命中)是每个线程的。但是还有其他一些是每个核心的。因此,这取决于您要捕获的计数器。

于 2013-06-05T15:16:51.780 回答