1*effccb7dSTang Haojin# top-down 分析工具 ([English](#Top-down-Analysis-Tool)) 2eb163ef0SHaojin Tang 3*effccb7dSTang Haojin本目录集成了 top-down 分析所需要的工具。在使用 [env-scripts](https://github.com/OpenXiangShan/env-scripts) 脚本完成 checkpoint 的运行后,可以使用本目录下的工具进行 top-down 分析。 4eb163ef0SHaojin Tang 5*effccb7dSTang Haojin## 使用方法 6eb163ef0SHaojin Tang 7*effccb7dSTang Haojin``` shell 8*effccb7dSTang Haojin# python top_down.py --help 9*effccb7dSTang Haojinusage: generate top-down results 10eb163ef0SHaojin Tang 11*effccb7dSTang Haojinoptional arguments: 12*effccb7dSTang Haojin -h, --help show this help message and exit 13*effccb7dSTang Haojin -s STAT_DIR, --stat-dir STAT_DIR 14*effccb7dSTang Haojin stat output directory 15*effccb7dSTang Haojin -j JSON, --json JSON specify json file 16eb163ef0SHaojin Tang``` 17eb163ef0SHaojin Tang 18*effccb7dSTang Haojin举例: 19eb163ef0SHaojin Tang 20*effccb7dSTang Haojin``` shell 21*effccb7dSTang Haojin# python top_down.py -s <...>/SPEC06_EmuTasks_1021_0.3_c157cf -j resources/spec06_rv64gcb_o2_20m.json 22*effccb7dSTang Haojin# python top_down.py -s <...>/SPEC06_EmuTasks_1215_allbump -j <...>/spec06_rv64gcb_O3_20m_gcc12.2.0-intFpcOff-jeMalloc/checkpoint-0-0-0/cluster-0-0.json 23eb163ef0SHaojin Tang``` 24eb163ef0SHaojin Tang 25*effccb7dSTang Haojin脚本运行结束后,会生成 `results` 目录: 26eb163ef0SHaojin Tang 27*effccb7dSTang Haojin``` shell 28*effccb7dSTang Haojin# tree results 29*effccb7dSTang Haojinresults 30*effccb7dSTang Haojin├── result.png 31*effccb7dSTang Haojin├── results.csv 32*effccb7dSTang Haojin└── results-weighted.csv 33*effccb7dSTang Haojin 34*effccb7dSTang Haojin0 directories, 3 files 35eb163ef0SHaojin Tang``` 36eb163ef0SHaojin Tang 37*effccb7dSTang Haojin其中,`result.png` 为 top-down 堆叠条形统计图,`results.csv` 为各采样点的 top-down 计数器,`results-weighted.csv` 为各子项的加权 top-down 计数器。 38*effccb7dSTang Haojin 39*effccb7dSTang Haojin# <div id="Top-down-Analysis-Tool">Top-down Analysis Tool</div> 40*effccb7dSTang Haojin 41*effccb7dSTang HaojinThis directory contains analysis tool for top-down. After running checkpoints by using [env-scripts](https://github.com/OpenXiangShan/env-scripts), you may use the tool to analyze top-down counters. 42*effccb7dSTang Haojin 43*effccb7dSTang Haojin## Usage 44*effccb7dSTang Haojin 45*effccb7dSTang Haojin``` shell 46*effccb7dSTang Haojin# python top_down.py --help 47*effccb7dSTang Haojinusage: generate top-down results 48*effccb7dSTang Haojin 49*effccb7dSTang Haojinoptional arguments: 50*effccb7dSTang Haojin -h, --help show this help message and exit 51*effccb7dSTang Haojin -s STAT_DIR, --stat-dir STAT_DIR 52*effccb7dSTang Haojin stat output directory 53*effccb7dSTang Haojin -j JSON, --json JSON specify json file 54*effccb7dSTang Haojin``` 55*effccb7dSTang Haojin 56*effccb7dSTang HaojinSome examples: 57*effccb7dSTang Haojin 58*effccb7dSTang Haojin``` shell 59*effccb7dSTang Haojin# python top_down.py -s <...>/SPEC06_EmuTasks_1021_0.3_c157cf -j resources/spec06_rv64gcb_o2_20m.json 60*effccb7dSTang Haojin# python top_down.py -s <...>/SPEC06_EmuTasks_1215_allbump -j <...>/spec06_rv64gcb_O3_20m_gcc12.2.0-intFpcOff-jeMalloc/checkpoint-0-0-0/cluster-0-0.json 61*effccb7dSTang Haojin``` 62*effccb7dSTang Haojin 63*effccb7dSTang HaojinA `results` directory would be generated then: 64*effccb7dSTang Haojin 65*effccb7dSTang Haojin``` shell 66*effccb7dSTang Haojin# tree results 67*effccb7dSTang Haojinresults 68*effccb7dSTang Haojin├── result.png 69*effccb7dSTang Haojin├── results.csv 70*effccb7dSTang Haojin└── results-weighted.csv 71*effccb7dSTang Haojin 72*effccb7dSTang Haojin0 directories, 3 files 73*effccb7dSTang Haojin``` 74*effccb7dSTang Haojin 75*effccb7dSTang HaojinThe `result.png` is a stacked bar chart of top-down. The `results.csv` contains per-checkpoint top-down counters. And the `results-weighted.csv` contains weighted counters for all sub tests. 76