Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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