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 <install_dir>/amplxe-vars.csh
bash 用戶: # source <install_dir>/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 | 三級緩存缺失的數據載入微操作產生的全部延時 |
部分事件的含義可能理解的有錯誤,歡迎指正。