Skip to content

Commit 7679977

Browse files
Merge pull request #1307 from PrzemekWirkus/devel_add_windowsperf_sampling_cpython_spe_v2
Sampling CPython with Arm SPE using WindowsPerf
2 parents 45a7b15 + c43d9f0 commit 7679977

File tree

6 files changed

+661
-0
lines changed

6 files changed

+661
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
title: Sampling CPython with Arm SPE with WindowsPerf
3+
4+
minutes_to_complete: 30
5+
6+
who_is_this_for: This is an introductory topic for developers keen to understand sampling with ARM SPE extension.
7+
8+
learning_objectives:
9+
- Use WindowsPerf with native Windows on Arm workload
10+
- Understand the basics of sampling with Arm SPE
11+
- Explore the WindowsPerf command line
12+
- Build CPython from sources for Windows on Arm ARM64 target
13+
14+
prerequisites:
15+
- Windows on Arm desktop or development machine with [WindowsPerf installed](/install-guides/wperf)
16+
- CPU with Arm Statistical Profiling Extension (SPE) support
17+
18+
author_primary: Przemyslaw Wirkus
19+
20+
### Tags
21+
skilllevels: Introductory
22+
subjects: Performance and Architecture
23+
armips:
24+
- Neoverse
25+
- Cortex-A
26+
operatingsystems:
27+
- Windows
28+
tools_software_languages:
29+
- WindowsPerf
30+
- Python
31+
- perf
32+
33+
### FIXED, DO NOT MODIFY
34+
# ================================================================================
35+
weight: 1 # _index.md always has weight of 1 to order correctly
36+
layout: "learningpathall" # All files under learning paths have this same wrapper
37+
learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content.
38+
---
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
# ================================================================================
3+
# Edit
4+
# ================================================================================
5+
6+
next_step_guidance: >
7+
Now that you have WindowsPerf running, why not learn how to build a native Windows on Arm application?
8+
# 1-3 sentence recommendation outlining how the reader can generally keep learning about these topics, and a specific explanation of why the next step is being recommended.
9+
10+
recommended_path: "/learning-paths/laptops-and-desktops/win_net/"
11+
12+
# further_reading links to references related to this path. Can be:
13+
# Manuals for a tool / software mentioned (type: documentation)
14+
# Blog about related topics (type: blog)
15+
# General online references (type: website)
16+
17+
further_reading:
18+
- resource:
19+
title: Announcing WindowsPerf Open-source performance analysis tool for Windows on Arm
20+
link: https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/announcing-windowsperf
21+
type: blog
22+
- resource:
23+
title: WindowsPerf release 2.4.0 introduces the first stable version of sampling model support
24+
link: https://www.linaro.org/blog/windowsperf-release-2-4-0-introduces-the-first-stable-version-of-sampling-model-support/
25+
type: blog
26+
- resource:
27+
title: WindowsPerf Release 2.5.1
28+
link: https://www.linaro.org/blog/windowsperf-release-2-5-1/
29+
type: blog
30+
- resource:
31+
title: WindowsPerf Release 3.0.0
32+
link: https://www.linaro.org/blog/windowsperf-release-3-0-0/
33+
type: blog
34+
- resource:
35+
title: WindowsPerf Release 3.3.0
36+
link: https://www.linaro.org/blog/windowsperf-release-3-3-0/
37+
type: blog
38+
- resource:
39+
title: WindowsPerf Release 3.7.2
40+
link: https://www.linaro.org/blog/expanding-profiling-capabilities-with-windowsperf-372-release
41+
type: blog
42+
- resource:
43+
title: "Introducing the WindowsPerf GUI: the Visual Studio 2022 extension"
44+
link: https://www.linaro.org/blog/introducing-the-windowsperf-gui-the-visual-studio-2022-extension
45+
type: blog
46+
- resource:
47+
title: "Introducing 1.0.0-beta release of WindowsPerf Visual Studio extension"
48+
link: https://www.linaro.org/blog/introducing-1-0-0-beta-release-of-windowsperf-visual-studio-extension
49+
type: blog
50+
- resource:
51+
title: "New Release: WindowsPerf Visual Studio Extension v1.0.0"
52+
link: https://www.linaro.org/blog/new-release-windowsperf-visual-studio-extension-v1000
53+
type: blog
54+
- resource:
55+
title: "Launching WindowsPerf Visual Studio Extension v2.1.0"
56+
link: https://www.linaro.org/blog/launching--windowsperf-visual-studio-extension-v210
57+
type: blog
58+
- resource:
59+
title: "Windows on Arm overview"
60+
link: https://learn.microsoft.com/en-us/windows/arm/overview
61+
type: website
62+
- resource:
63+
title: "Linaro Windows on Arm project"
64+
link: https://www.linaro.org/windows-on-arm/
65+
type: website
66+
- resource:
67+
title: "WindowsPerf releases"
68+
link: https://github.com/arm-developer-tools/windowsperf/releases
69+
type: website
70+
# ================================================================================
71+
# FIXED, DO NOT MODIFY
72+
# ================================================================================
73+
weight: 21 # set to always be larger than the content in this path, and one more than 'review'
74+
title: "Next Steps" # Always the same
75+
layout: "learningpathall" # All files under learning paths have this same wrapper
76+
---
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
---
2+
# ================================================================================
3+
# Edit
4+
# ================================================================================
5+
6+
# Always 3 questions. Should try to test the reader's knowledge, and reinforce the key points you want them to remember.
7+
# question: A one sentence question
8+
# answers: The correct answers (from 2-4 answer options only). Should be surrounded by quotes.
9+
# correct_answer: An integer indicating what answer is correct (index starts from 0)
10+
# explanation: A short (1-3 sentence) explanation of why the correct answer is correct. Can add additional context if desired
11+
12+
review:
13+
- questions:
14+
question: >
15+
The counting model is used for obtaining aggregate counts of occurrences of special events.
16+
answers:
17+
- "True"
18+
- "False"
19+
correct_answer: 1
20+
explanation: >
21+
In the counting model, the occurrences of PMU events are simply aggregated over a given time period.
22+
23+
- questions:
24+
question: >
25+
The sampling model is used for determining the frequencies of event occurrences produced by program locations at the function, basic block, and/or instruction levels.
26+
answers:
27+
- "True"
28+
- "False"
29+
correct_answer: 1
30+
explanation: >
31+
In the sampling model, the frequencies of event occurrences produced by the program determine "hot" locations at the function, basic block, and/or instruction levels.
32+
33+
- questions:
34+
question: >
35+
WindowsPerf can be used and executed only on native ARM64 WOA hardware, and not in a virtual environment.
36+
answers:
37+
- "True"
38+
- "False"
39+
correct_answer: 1
40+
explanation: >
41+
Yes, WindowsPerf currently supports a native Windows on Arm environment only.
42+
43+
- questions:
44+
question: >
45+
The Arm Statistical Profiling Extension (SPE) is an optional feature in ARMv8.2 hardware.
46+
answers:
47+
- "True"
48+
- "False"
49+
correct_answer: 1
50+
explanation: >
51+
Yes, the Arm Statistical Profiling Extension (SPE) is an optional feature in ARMv8.2 hardware that allows CPU instructions to be sampled and associated with the source code location where that instruction occurred.
52+
53+
- questions:
54+
question: >
55+
SPE stands for Statistical Profiling Extension.
56+
answers:
57+
- "True"
58+
- "False"
59+
correct_answer: 1
60+
explanation: >
61+
Yes, the Arm Statistical Profiling Extension (SPE) is an optional feature in ARMv8.2 hardware.
62+
63+
- questions:
64+
question: >
65+
Is load_filter is one of SPE filters supported by WindowsPerf?
66+
answers:
67+
- "True"
68+
- "False"
69+
correct_answer: 1
70+
explanation: >
71+
Yes, load_filter together with store_filter and branch_filter are SPE filters supported by WindowsPerf.
72+
73+
- questions:
74+
question: >
75+
Is store_filter is one of SPE filters supported by WindowsPerf?
76+
answers:
77+
- "True"
78+
- "False"
79+
correct_answer: 1
80+
explanation: >
81+
Yes, load_filter together with store_filter and branch_filter are SPE filters supported by WindowsPerf.
82+
83+
- questions:
84+
question: >
85+
Is branch_filter is one of SPE filters supported by WindowsPerf?
86+
answers:
87+
- "True"
88+
- "False"
89+
correct_answer: 1
90+
explanation: >
91+
Yes, load_filter together with store_filter and branch_filter are SPE filters supported by WindowsPerf.
92+
93+
94+
# ================================================================================
95+
# FIXED, DO NOT MODIFY
96+
# ================================================================================
97+
title: "Review" # Always the same title
98+
weight: 20 # Set to always be larger than the content in this path
99+
layout: "learningpathall" # All files under learning paths have this same wrapper
100+
---

0 commit comments

Comments
 (0)