-
Notifications
You must be signed in to change notification settings - Fork 164
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1307 from PrzemekWirkus/devel_add_windowsperf_sam…
…pling_cpython_spe_v2 Sampling CPython with Arm SPE using WindowsPerf
- Loading branch information
Showing
6 changed files
with
661 additions
and
0 deletions.
There are no files selected for viewing
38 changes: 38 additions & 0 deletions
38
...ng-paths/servers-and-cloud-computing/windowsperf_sampling_cpython_spe/_index.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- | ||
title: Sampling CPython with Arm SPE with WindowsPerf | ||
|
||
minutes_to_complete: 30 | ||
|
||
who_is_this_for: This is an introductory topic for developers keen to understand sampling with ARM SPE extension. | ||
|
||
learning_objectives: | ||
- Use WindowsPerf with native Windows on Arm workload | ||
- Understand the basics of sampling with Arm SPE | ||
- Explore the WindowsPerf command line | ||
- Build CPython from sources for Windows on Arm ARM64 target | ||
|
||
prerequisites: | ||
- Windows on Arm desktop or development machine with [WindowsPerf installed](/install-guides/wperf) | ||
- CPU with Arm Statistical Profiling Extension (SPE) support | ||
|
||
author_primary: Przemyslaw Wirkus | ||
|
||
### Tags | ||
skilllevels: Introductory | ||
subjects: Performance and Architecture | ||
armips: | ||
- Neoverse | ||
- Cortex-A | ||
operatingsystems: | ||
- Windows | ||
tools_software_languages: | ||
- WindowsPerf | ||
- Python | ||
- perf | ||
|
||
### FIXED, DO NOT MODIFY | ||
# ================================================================================ | ||
weight: 1 # _index.md always has weight of 1 to order correctly | ||
layout: "learningpathall" # All files under learning paths have this same wrapper | ||
learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. | ||
--- |
76 changes: 76 additions & 0 deletions
76
...ths/servers-and-cloud-computing/windowsperf_sampling_cpython_spe/_next-steps.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
--- | ||
# ================================================================================ | ||
# Edit | ||
# ================================================================================ | ||
|
||
next_step_guidance: > | ||
Now that you have WindowsPerf running, why not learn how to build a native Windows on Arm application? | ||
# 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. | ||
|
||
recommended_path: "/learning-paths/laptops-and-desktops/win_net/" | ||
|
||
# further_reading links to references related to this path. Can be: | ||
# Manuals for a tool / software mentioned (type: documentation) | ||
# Blog about related topics (type: blog) | ||
# General online references (type: website) | ||
|
||
further_reading: | ||
- resource: | ||
title: Announcing WindowsPerf Open-source performance analysis tool for Windows on Arm | ||
link: https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/announcing-windowsperf | ||
type: blog | ||
- resource: | ||
title: WindowsPerf release 2.4.0 introduces the first stable version of sampling model support | ||
link: https://www.linaro.org/blog/windowsperf-release-2-4-0-introduces-the-first-stable-version-of-sampling-model-support/ | ||
type: blog | ||
- resource: | ||
title: WindowsPerf Release 2.5.1 | ||
link: https://www.linaro.org/blog/windowsperf-release-2-5-1/ | ||
type: blog | ||
- resource: | ||
title: WindowsPerf Release 3.0.0 | ||
link: https://www.linaro.org/blog/windowsperf-release-3-0-0/ | ||
type: blog | ||
- resource: | ||
title: WindowsPerf Release 3.3.0 | ||
link: https://www.linaro.org/blog/windowsperf-release-3-3-0/ | ||
type: blog | ||
- resource: | ||
title: WindowsPerf Release 3.7.2 | ||
link: https://www.linaro.org/blog/expanding-profiling-capabilities-with-windowsperf-372-release | ||
type: blog | ||
- resource: | ||
title: "Introducing the WindowsPerf GUI: the Visual Studio 2022 extension" | ||
link: https://www.linaro.org/blog/introducing-the-windowsperf-gui-the-visual-studio-2022-extension | ||
type: blog | ||
- resource: | ||
title: "Introducing 1.0.0-beta release of WindowsPerf Visual Studio extension" | ||
link: https://www.linaro.org/blog/introducing-1-0-0-beta-release-of-windowsperf-visual-studio-extension | ||
type: blog | ||
- resource: | ||
title: "New Release: WindowsPerf Visual Studio Extension v1.0.0" | ||
link: https://www.linaro.org/blog/new-release-windowsperf-visual-studio-extension-v1000 | ||
type: blog | ||
- resource: | ||
title: "Launching WindowsPerf Visual Studio Extension v2.1.0" | ||
link: https://www.linaro.org/blog/launching--windowsperf-visual-studio-extension-v210 | ||
type: blog | ||
- resource: | ||
title: "Windows on Arm overview" | ||
link: https://learn.microsoft.com/en-us/windows/arm/overview | ||
type: website | ||
- resource: | ||
title: "Linaro Windows on Arm project" | ||
link: https://www.linaro.org/windows-on-arm/ | ||
type: website | ||
- resource: | ||
title: "WindowsPerf releases" | ||
link: https://github.com/arm-developer-tools/windowsperf/releases | ||
type: website | ||
# ================================================================================ | ||
# FIXED, DO NOT MODIFY | ||
# ================================================================================ | ||
weight: 21 # set to always be larger than the content in this path, and one more than 'review' | ||
title: "Next Steps" # Always the same | ||
layout: "learningpathall" # All files under learning paths have this same wrapper | ||
--- |
100 changes: 100 additions & 0 deletions
100
...g-paths/servers-and-cloud-computing/windowsperf_sampling_cpython_spe/_review.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
--- | ||
# ================================================================================ | ||
# Edit | ||
# ================================================================================ | ||
|
||
# Always 3 questions. Should try to test the reader's knowledge, and reinforce the key points you want them to remember. | ||
# question: A one sentence question | ||
# answers: The correct answers (from 2-4 answer options only). Should be surrounded by quotes. | ||
# correct_answer: An integer indicating what answer is correct (index starts from 0) | ||
# explanation: A short (1-3 sentence) explanation of why the correct answer is correct. Can add additional context if desired | ||
|
||
review: | ||
- questions: | ||
question: > | ||
The counting model is used for obtaining aggregate counts of occurrences of special events. | ||
answers: | ||
- "True" | ||
- "False" | ||
correct_answer: 1 | ||
explanation: > | ||
In the counting model, the occurrences of PMU events are simply aggregated over a given time period. | ||
- questions: | ||
question: > | ||
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. | ||
answers: | ||
- "True" | ||
- "False" | ||
correct_answer: 1 | ||
explanation: > | ||
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. | ||
- questions: | ||
question: > | ||
WindowsPerf can be used and executed only on native ARM64 WOA hardware, and not in a virtual environment. | ||
answers: | ||
- "True" | ||
- "False" | ||
correct_answer: 1 | ||
explanation: > | ||
Yes, WindowsPerf currently supports a native Windows on Arm environment only. | ||
- questions: | ||
question: > | ||
The Arm Statistical Profiling Extension (SPE) is an optional feature in ARMv8.2 hardware. | ||
answers: | ||
- "True" | ||
- "False" | ||
correct_answer: 1 | ||
explanation: > | ||
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. | ||
- questions: | ||
question: > | ||
SPE stands for Statistical Profiling Extension. | ||
answers: | ||
- "True" | ||
- "False" | ||
correct_answer: 1 | ||
explanation: > | ||
Yes, the Arm Statistical Profiling Extension (SPE) is an optional feature in ARMv8.2 hardware. | ||
- questions: | ||
question: > | ||
Is load_filter is one of SPE filters supported by WindowsPerf? | ||
answers: | ||
- "True" | ||
- "False" | ||
correct_answer: 1 | ||
explanation: > | ||
Yes, load_filter together with store_filter and branch_filter are SPE filters supported by WindowsPerf. | ||
- questions: | ||
question: > | ||
Is store_filter is one of SPE filters supported by WindowsPerf? | ||
answers: | ||
- "True" | ||
- "False" | ||
correct_answer: 1 | ||
explanation: > | ||
Yes, load_filter together with store_filter and branch_filter are SPE filters supported by WindowsPerf. | ||
- questions: | ||
question: > | ||
Is branch_filter is one of SPE filters supported by WindowsPerf? | ||
answers: | ||
- "True" | ||
- "False" | ||
correct_answer: 1 | ||
explanation: > | ||
Yes, load_filter together with store_filter and branch_filter are SPE filters supported by WindowsPerf. | ||
# ================================================================================ | ||
# FIXED, DO NOT MODIFY | ||
# ================================================================================ | ||
title: "Review" # Always the same title | ||
weight: 20 # Set to always be larger than the content in this path | ||
layout: "learningpathall" # All files under learning paths have this same wrapper | ||
--- |
Oops, something went wrong.