微架构分析

基于ARM PMU(Performance Monitor Unit)事件,获得指令在CPU流水线上的运行情况,用户可以有针对性地修改自己的程序,以充分利用当前的硬件资源。

命令功能

基于ARM PMU事件,获得指令在CPU流水线上的运行情况,快速定位当前应用在CPU上的性能瓶颈。

命令格式

1
devkit tuner top-down [-h] [-c {n | n,m | n-m}] [-d <sec>] [-D <sec>] [-l {0, 1, 2, 3}] [-L {0, 1, 2, 3, 4, 5, 6}] [-i <sec>] [-p {PID | PID1,PID2 | ALL}] [-r {user, kernel, all}] [-o] [--package] [workload workload...]

devkit tuner top-down [workload workload...]可采集指定应用,命令中[workload workload...]替换为应用路径和应用参数;当参数-c/--cpu和参数-p/--pid存在时,优先采集-p参数指定项。

参数说明

表1 参数说明

参数

参数选项

说明

-h/--help

-

获取帮助信息。

-c/--cpu

-

指定采集的CPU核数,如“0”、“0,1,2”、“0-2”。

-d/--duration

-

设置采集时长,单位为秒,最小值为1秒,默认为一直采集,可使用Ctrl+\取消任务或Ctrl+C停止采集并进入分析。

-D/--delay

-

设置延迟采集时长,默认为0秒,且需小于采集时长。

-i/--interval

-

设置采集间隔,默认为1秒;若已设置采集时长,需小于等于采集时长。

-l/--log-level

0/1/2/3

设置日志级别,默认为1。
  • 0:日志级别为DEBUG。
  • 1:日志级别为INFO。
  • 2:日志级别为WARNING。
  • 3:日志级别为ERROR。

-L/--profile-level

0/1/2/3/4/5/6

设置分析指标,默认为0。

  • 0代表All,采集所有维度数据并输出对应结果。
  • 1代表level 1,采集Back-End Bound,Bad Speculation,Front-End Bound,Retiring
  • 2代表Back-End Bound->Core Bound:Back-End是处理器处理机制的后置部分,它负责微指令的乱序分发和执行,并返回最终结果。Core Bound是Back-End Bound的子类,该指标能够反映出由于处理器执行单元资源不足导致性能瓶颈的比例情况。
  • 3代表Back-End Bound->Memory Bound:Back-End是处理器处理机制的后置部分,它负责微指令的乱序分发和执行,并返回最终结果。Memory Bound是Back-End Bound的子类,该指标能够反映出由于等待数据读/写导致的流水线阻塞。
  • 4代表Back-End Bound->Resource Bound:(支持鲲鹏920系列处理器)Back-End是处理器处理机制的后置部分,它负责微指令的乱序分发和执行,并返回最终结果。Resource Bound是Back-End Bound的子类,该指标能够反映出由于缺乏资源把微指令分发给乱序执行调度器,从而导致的流水线阻塞情况。
  • 5代表Bad Speculation:该指标能够反映出由于错误的指令预测操作导致的流水线资源浪费情况。
  • 6代表Front-End Bound:该指标代表了处理器处理机制的前置部分,在该部分,指令获取单元负责指令的获取并转化为微指令提供给后置部分的流水线执行。该指标能够反映出处理器前置部分没有被充分利用的比例情况。

-o/--output

-

设置报告数据压缩包名称和输出路径,仅输入名称时默认生成在当前所在目录;需和--package配合使用。

-r/--collection-range

user/kernel/all

设置采集进程的等级,当-p/--pid设置为ALL时,可以收集内核模式进程或用户模式进程。默认为all(采集用户态和内核态的性能数据)。

  • user:采集用户态的性能数据
  • kernel:采集内核态的性能数据
  • all:采集用户态和内核态的性能数据

-p/--pid

PID/PID1,PID2/ALL

指定采集的进程PID,多个进程PID可用“,”分隔,默认采集全部进程(ALL)。若同时使用-p和-c参数则优先采集指定PID的进程。

--package

-

设置是否生成报告数据压缩包,不指定压缩包名称和路径时默认在当前所在目录生成top-down-时间戳.tar。

使用示例

以上界面回显为微架构分析任务的总览信息可通过--package参数打包生成TAR包,导入Web界面查看图形化信息;导入详情请参见任务管理中的任务导入部分内容。