请问如何用vtune测出我函数的CPI,...
我的OpenMP程序,用vtune图形界面在16core下运行分析性能,在linux下。
采样运行后,双击我的"可执行程序名",在threads页中列出它在16个线程各自的信息。
我任选一个线程,再次双击,进入Modules页,列出包含我"可执行程序名"在内的一些行。
选中我"可执行程序名",再次双击,进入Hotspots页,Name列中有我最关心的函数f。列出了它的CPI,......等信息。
1)因为从不同的线程进入,函数f会有不同的CPI,......等信息。
所以为了测出我的函数f的CPI,是不是就要分别从16个线程中双击进入,然后求CPI平均值?
2) 当双击这个函数f,会逐行列出它的源代码。
除了极少代码行外,大部分代码行都列出了CPU_CLK_UNHALTED.CORE,INST_RETIRED.ANY,等信息。
那我用公式CPI=CPU_CLK_UNHALTED.CORE/INST_RETIRED.ANY来计算出每行代码的CPI,再计算它们的平均值,就应该是这个函数的CPI了吧?可是完全不是。计算平均值后得出CPI是2.2,可是vtune给出这个函数在这个线程下的CPI是0.75,相差太多了!
请教各位,我该如何得出这个函数的CPI呢? 如何理解2)呢?
谢谢了!