You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/laptops-and-desktops/windowsperf/windowsperf.md
+29-5Lines changed: 29 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,19 +6,19 @@ weight: 2
6
6
7
7
# Overview
8
8
9
-
[WindowsPerf](https://gitlab.com/Linaro/WindowsPerf/windowsperf) is a (Linux [perf](https://perf.wiki.kernel.org) inspired) Windows on Arm performance profiling tool. Profiling is based on ARM64 PMU and its hardware counters. WindowsPerf supports the counting model for obtaining aggregate counts of occurrences of special events, and sampling model for determining the frequencies of event occurrences produced by program locations at the function, basic block, and/or instruction levels.
9
+
[WindowsPerf](https://github.com/arm-developer-tools/windowsperf) is a (Linux [perf](https://perf.wiki.kernel.org) inspired) Windows on Arm performance profiling tool. Profiling is based on ARM64 PMU and its hardware counters. WindowsPerf supports the counting model for obtaining aggregate counts of occurrences of special events, and sampling model for determining the frequencies of event occurrences produced by program locations at the function, basic block, and/or instruction levels.
10
10
11
11
Learn more in this [blog](https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/announcing-windowsperf) announcing the first release.
12
12
13
13
## WindowsPerf architecture
14
14
15
15
`WindowsPerf` is composed of two main components:
16
-
-[wperf](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/tree/main/wperf) a command line interface (CLI) sometimes referred as "user-space app" and
17
-
-[wperf-driver](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/tree/main/wperf-driver) a (signed) Kernel-Mode Driver Framework (KMDF) driver.
16
+
-[wperf](https://github.com/arm-developer-tools/windowsperf/tree/main/wperf) a command line interface (CLI) sometimes referred as "user-space app" and
17
+
-[wperf-driver](https://github.com/arm-developer-tools/windowsperf/tree/main/wperf-driver) a (signed) Kernel-Mode Driver Framework (KMDF) driver.
18
18
19
19
## WindowsPerf releases
20
20
21
-
You can find all binary releases of `WindowsPerf`[here](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/releases).
21
+
You can find all binary releases of `WindowsPerf`[here](https://github.com/arm-developer-tools/windowsperf/releases).
22
22
23
23
# Installation
24
24
@@ -106,6 +106,30 @@ wperf test
106
106
You can output `wperf test` command in JSON format. Use `--json` command line option to enable JSON output.
107
107
{{% /notice %}}
108
108
109
+
## Obtain plain text information about specified event, metric, or group of metrics.
110
+
111
+
Command line option `man` prints on screen information about specified event, metric, or group of metrics.
112
+
113
+
```command
114
+
wperf man l1d_cache_mpki
115
+
```
116
+
117
+
```output
118
+
CPU
119
+
neoverse-n1
120
+
NAME
121
+
l1d_cache_mpki - L1D Cache MPKI
122
+
EVENTS
123
+
inst_retired, l1d_cache_refill
124
+
DESCRIPTION
125
+
This metric measures the number of level 1 data cache accesses missed per
126
+
thousand instructions executed.
127
+
FORMULA
128
+
l1d_cache_refill / inst_retired * 1000
129
+
UNIT
130
+
MPKI
131
+
```
132
+
109
133
## Generate sample profile
110
134
111
135
Specify the `event` to profile with `-e`. Groups of events, known as `metrics` can be specified with `-m`.
@@ -139,4 +163,4 @@ You can output `wperf stat` command in JSON format. Use `--json` command line op
139
163
{{% /notice %}}
140
164
141
165
142
-
Example use cases are provided in the WindowsPerf [documentation](https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/blob/main/wperf/README.md#counting-model).
166
+
Example `wperf stat` command use cases are provided in the WindowsPerf [documentation](https://github.com/arm-developer-tools/windowsperf/tree/main/wperf#counting-model).
The cheat sheet for the `wperf` command line tool focuses specifically on counting and sampling commands. It includes `wperf stat` for counting occurrences of specific PMU events and `wperf sample` and `wperf record` for sampling PMU event. Each command is explained with practical example.
- Count events `inst_spec`, `vfp_spec`, `ase_spec` and `ld_spec` on core #0 for 3 seconds:
14
+
15
+
```command
16
+
wperf stat -e inst_spec,vfp_spec,ase_spec,ld_spec -c 0 --timeout 3
17
+
```
18
+
19
+
- Count metric `imix` (metric events will be grouped) and additional event `l1i_cache` on core #7 for 10.5 seconds:
20
+
21
+
```command
22
+
wperf stat -m imix -e l1i_cache -c 7 --timeout 10.5
23
+
```
24
+
25
+
- Count in timeline mode (output counting to CSV file) metric `imix` 3 times on core #1 with 2 second intervals (delays between counts). Each count will last 5 seconds:
Add `--annotate` or `--disassemble` to `wperf record` command line parameters to increase sampling "resolution".
50
+
{{% /notice %}}
51
+
52
+
## WindowsPerf cheat sheet (SPE Examples)
53
+
54
+
Use Arm SPE optional extension to sample on core no. 1 process `python_d.exe`. SPE filter `load_filter` / `ld` enables collection of load sampled operations, including atomic operations that return a value to a register.
55
+
56
+
Note: Double-dash operator `--` can be used with SPE as well to launch the process.
57
+
58
+
```command
59
+
wperf record -e arm_spe_0/ld=1/ -c 1 -– python_d.exe -c 10**10**100
60
+
```
61
+
62
+
Above command can be replaces by below two commands:
0 commit comments