xref: /XiangShan/scripts/top-down/README.md (revision effccb7d09c4946a549cc139dc1b99ed9e726752)
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