Intel VTune 访存分析

Intel VTune 访存分析

1. Intel VTune简介

Intel VTune Amplifier 是一款用于分析软件性能的商业软件,它分析的软件是基于32位或64位的x86构架,有图形界面和命令行两种操作方式。VTune有windows、linux和mac版本,有收费的,试用的,免费的。详情请看这里。

2. 优化方法

Intel VTune提供以下几种方法进行程序的优化分析:
* Analyzing Application Performance with Hardware Event-based Stack Sampling
* Locating Inefficient Synchronization
* Tuning Applications Using a Top-down Microarchitecture Analysis Method
* Identifying OS Thread Migration Using Intel® VTune™ Amplifier
* Analyzing Applications Using Intel® HD Graphics
* Analyzing MPI Applications
* Vectorization Advisor

3. Intel VTune使用

3.1 VTune 安装

3.1.1 下载

在这里下载vtune_amplifier_xe_2016_update2.tar.gz。下载前需要注册账号并登陆。

3.1.2 安装

  • 解压,并进入./vtune_amplifier_xe_2016_update2目录
  • 执行./install.sh,需用root权限。
    默认的安装目录是:/opt/intel/vtune_amplifier_xe_2016

3.1.3 设置环境变量

csh/tcsh 用户: # source /amplxe-vars.csh
bash     用户: # source /amplxe-vars.sh

3.2. 访存分析

3.2.1 执行命令

# amplxe-cl -c memory-access -knob analyze-mem-objects=true -data-limit=0 \
-d 60 --  ./a.out
# amplxe-cl  -report summary

3.2.2 与访存有关的事件

这里列出了CPU记录的所有事件。

事件 含义
INST_RETIRED.ANY 指令执行的计数
CPU_CLK_UNHALTED.THREAD 非停机状态花费的机器周期计数
CYCLE_ACTIVITY.STALLS_L1D_PENDING 由一级缓存缺失导致的执行受阻的机器周期计数
CYCLE_ACTIVITY.CYCLES_NO_EXECUTE 所有执行受阻的机器周期计数
CYCLE_ACTIVITY.STALLS_L2_PENDING 由二级缓存缺失导致的执行受阻的机器周期计数
CYCLE_ACTIVITY.STALLS_LDM_PENDIN 所有因内存原因而执行受阻的机器周期计数
MEM_TRANS_RETIRED.LOAD_LATENCY_GT_4 载入内存数据延时超过4个时钟周期的计数
MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS 内存数据载入过程中三级缓存缺失的计数
MEM_UOPS_RETIRED.ALL_LOADS_PS 内存数据载入微操作的计数
MEM_UOPS_RETIRED.ALL_STORES_PS 内存数据存储微操作的计数
MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS 三级缓存命中的微操作的计数
MEM_LOAD_UOPS_LLC_MISS_RETIRED.LOCAL_DRAM 三级缓存缺失且从本地内存得到数据的载入微操作的计数
MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_DRAM 三级缓存缺失且从远端内存得到数据的载入微操作的计数
MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_HITM 三级缓存缺失且从远端缓存得到数据的载入微操作的计数
MEM_LOAD_UOPS_LLC_MISS_RETIRED.REMOTE_FWD 三级缓存缺失且通过远端缓存转发而得到数据的载入微操作的计数
Total_Latency_MEM_UOPS_RETIRED.ALL_LOADS_PS 数据载入微操作产生的全部延时
Total_Latency_MEM_TRANS_RETIRED.LOAD_LATENCY_GT_4 由延时超过4个时钟周期的数据载入微操作产生的全部延时
Total_Latency_MEM_UOPS_RETIRED.ALL_STORES_PS 数据存储微操作产生的全部延时
Total_Latency_MEM_LOAD_UOPS_RETIRED.LLC_HIT_PS 三级缓存命中的数据载入微操作产生的全部延时
Total_Latency_MEM_LOAD_UOPS_RETIRED.LLC_MISS_PS 三级缓存缺失的数据载入微操作产生的全部延时

部分事件的含义可能理解的有错误,欢迎指正。

你可能感兴趣的:(性能分析)