inux下通过命令行使用Vtune统计处理器微体系结构特征
- UID
- 1066743
|
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>
该文件不需要手动编写,打开用户界面选中某些要统计的信息后保存会自动生成。然后将其拷贝到其他节点的相应目录下即可。 |
|
|
|
|
|