Skip to content

Commit

Permalink
Merge pull request #1307 from PrzemekWirkus/devel_add_windowsperf_sam…
Browse files Browse the repository at this point in the history
…pling_cpython_spe_v2

Sampling CPython with Arm SPE using WindowsPerf
  • Loading branch information
jasonrandrews authored Dec 10, 2024
2 parents 45a7b15 + c43d9f0 commit 7679977
Show file tree
Hide file tree
Showing 6 changed files with 661 additions and 0 deletions.
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.
---
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
---
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
---
Loading

0 comments on commit 7679977

Please sign in to comment.