日期:2014-05-16  浏览次数:20873 次

linux下通过命令行使用Vtune统计处理器微体系结构特征

        关于Vtune的介绍见官网,它可以调用intel处理器的底层performence counter,统计类似TLB miss、L1 cache miss等微体系结构信息。用界面的方式使用Vtune比较方便,但是要同时控制多台机器上的Vtune并抓取相应数据时,界面方式就不行了。使用shell命令行方式非常方便。可以用ssh无密码登录到其他节点,几乎同时调用vtune并开始统计。

        vtune统计微体系结构信息分两部分,收集原始数据和对收集的数据做分析

一,收集原始数据:

amplxe-cl -collect custom-analysis-0 -target-duration-type medium  -result-dir XXX/path_to_result  $可执行文件

参数解释:

(1)custom-analysis-0:  事件集合,比如里面包括TLB miss rate、LLC miss rate等等信息,后面我会贴出其文件内容。-collect是指定要收集的事件,也可以是某个文件,但是要以一定格式,具体后面会讲。

(2)-target-duration-type:要统计的可执行文件运行的大约时间,分三个等级,small/medium/large,分别代表0-15min,15min-3h,3h-24h,具体解释可以去Vtune官网找。默认small,注意:如果使用默认值,但是你的可执行文件运行时间超过15min,就会出问题。vtune会在15min时自动收集一轮数据,如果你要对原始数据还要用report命令进行统计,vtune会告诉你找不到原始数据。

(3)-result-dir:原始数据存放的路径,不要具体到文件,到目录即可。

(4)可执行文件:你要统计的可执行文件,可以是脚本,但要用“./”强制运行,不然Vtune不会认为脚本是可执行文件。当然,chmod +7 XXX也是必须的。

    以上命令是要统计针对可执行文件,统计custom-analysis-0中包含的事件的数据,并把原始数据放到某个指定路径下,而且15min<可执行文件执行时间<3h


二,对原始数据进行处理,并生成报告


amplxe-cl -report summary -result-dir XXX/path_to_result XXX/path_to_report

参数解释:

(1)-report:你要报告的事件,summary表示要生成总的报告。还有其他参数请参看官网。

(2)-result-dir :和上面相同

(3)重定向>:默认是输出在标准输出上,为了保存结果,可以指定某个文件,注意这里是文件,不是目录。


三,附加说明:

(1)vtune可以针对进程pid进行统计,命令如下:

amplxe-cl -collect custom-analysis-0 -target-duration-type medium  -result-dir  XXX/path_to_result  -target-pid $PID

(2)vtune在收集过程中如果被强制kill(或者Ctrl+c),然后再次启动,经常会报错:PMU被占用。

解决办法:目前我只有重启机器

(3)关于custom-analysis-0配置文件的介绍:

在你安装vtune的目录的相应路径(例如/root/.intel/amplxe/analysis_type/)下,放置配置文件custom-analysis-0.cfg(统计命令里可以不加cfg后缀)。具体内容摘录如下:


<?xml version='1.0' encoding='UTF-8'?>
  2 
  3 <bag xmlns:boolean="http://www.w3.org/2001/XMLSchema#boolean" xmlns:int=&q