首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

inux下通过命令行使用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="http://www.w3.org/2001/XMLSchema#int">
  •   4  <internal>
  •   5   <name>Micro test</name>
  •   6   <description>My comments...</description>
  •   7   <abbreviation>runsa0</abbreviation>
  •   8   <alias>custom-analysis-0</alias>
  •   9   <property
    name="helpId">intel.phe.configs.new_cpu_event_collector_analysis_f1105</property>
  • 10  </internal>
  • 11  <prerequisites/>
  • 12  <knobs/>
  • 13  <analysis>
  • 14   <collector
    id="runsa">
  • 15    <int:collectorKnob
    knob="ringBuffer">0</int:collectorKnob>
  • 16    <boolean:collectorKnob
    knob="systemWideContextSwitch">false</boolean:collectorKnob>
  • 17    <boolean:collectorKnob
    knob="igfxFtraceEvents">false</boolean:collectorKnob>
  • 18    <boolean:collectorKnob
    knob="eventInfo">true</boolean:collectorKnob>
  • 19    <boolean:collectorKnob
    knob="enablePEBSCollection">false</boolean:collectorKnob>
  • 20    <boolean:collectorKnob
    knob="enableVTSSCollection">false</boolean:collectorKnob>
  • 21    <boolean:collectorKnob
    knob="collectLBRCallstack">false</boolean:collectorKnob>
  • 22    <boolean:collectorKnob
    knob="enableLBRCollection">false</boolean:collectorKnob>
  • 23    <boolean:collectorKnob
    knob="collectCallCounts">false</boolean:collectorKnob>
  • 24    <collectorKnob
    knob="pmuEventConfig">BR_INST_RETIRED.…… S:sa=2000000</collectorKnob>
  • 25    <collectorKnob
    knob="chipsetEventConfig"/>
  • 26    <boolean:collectorKnob
    knob="useEventBasedCounts">false</boolean:collectorKnob>
  • 27    <boolean:collectorKnob
    knob="useCountingMode">false</boolean:collectorKnob>
  • 28    <boolean:collectorKnob
    knob="basicBlockAnalysis">true</boolean:collectorKnob>
  • 29    <boolean:collectorKnob
    knob="collectMemBandwidth">false</boolean:collectorKnob>
  • 30    <boolean:collectorKnob
    knob="collectUserTasksMode">false</boolean:collectorKnob>
  • 31    <collectorKnob
    knob="gpuCounters">none</collectorKnob>
  • 32    <int:collectorKnob
    knob="gpuSamplingInterval">1000</int:collectorKnob>
  • 33    <boolean:collectorKnob
    knob="gpuDX">false</boolean:collectorKnob>
  • 34    <boolean:collectorKnob
    knob="collectGpuOpenCl">false</boolean:collectorKnob>
  • 35    <boolean:collectorKnob
    knob="collectGpuCm">false</boolean:collectorKnob>
  • 36    <collectorKnob
    knob="eventMode">all</collectorKnob>
  • 37    <collectorKnob
    knob="cswitchMode">inactive</collectorKnob>
  • 38    <boolean:collectorKnob
    knob="forceMuxOff">false</boolean:collectorKnob>
  • 39    <boolean:collectorKnob
    knob="loadPebsData">true</boolean:collectorKnob>
  • 40    <collectorKnob
    knob="isPowerVRDataAvailable">no</collectorKnob>
  • 41    <boolean:collectorKnob
    knob="cpuGpuUsageData">false</boolean:collectorKnob>
  • 42   </collector>
  • 43  </analysis>
  • 44 </bag>



该文件不需要手动编写,打开用户界面选中某些要统计的信息后保存会自动生成。然后将其拷贝到其他节点的相应目录下即可。
返回列表