Skip to content

Add learning path for CPU Microarchitecture analysis with Arm Performix#2961

Merged
jasonrandrews merged 20 commits intoArmDeveloperEcosystem:mainfrom
bccbrendan:main
Mar 17, 2026
Merged

Add learning path for CPU Microarchitecture analysis with Arm Performix#2961
jasonrandrews merged 20 commits intoArmDeveloperEcosystem:mainfrom
bccbrendan:main

Conversation

@bccbrendan
Copy link
Contributor

@bccbrendan bccbrendan commented Mar 5, 2026

Before submitting a pull request for a new Learning Path, please review Create a Learning Path

  • I have reviewed Create a Learning Path

Please do not include any confidential information in your contribution. This includes confidential microarchitecture details and unannounced product information.

  • I have checked my contribution for confidential information

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the Creative Commons Attribution 4.0 International License.

@bccbrendan bccbrendan marked this pull request as ready for review March 5, 2026 17:24
@bccbrendan bccbrendan changed the title Add learning path for Topdown analysis with Arm Performix Add learning path for CPU Microarchitecture analysis with Arm Performix Mar 12, 2026
@@ -0,0 +1,47 @@
---
title: Learn the Arm Neoverse N1 performance analysis methodology

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is pretty specific could we say Learn Arm Neoverse Performance Analysis Methodolgy with Arm Performix

I am a little worried that we are targetting N1 here but Phoenix is an N3 and a lot of the other instances are not N1. So could we make it more general?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was the wrong title. I've changed it to "Tune application performance with Arm Performix CPU Microarchitecture analysis"


## Before you begin

Use the Performix [installation guide](/install-guides/atp/) to install the tool if this is your first run. From the host machine, open the **Targets** tab, set up an SSH connection to the target that runs the workload, and test the connection. In this Learning Path's examples, I'll connect to an Arm Neoverse V1 workstation.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Arm Performix

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I found a couple other instances of 'Performix' without the 'Arm'. Fixing in #3002


Install required OS packages on the target. For Debian-based distributions, run:
```bash
sudo apt-get install python3 python3-venv binutils

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really need python on the target for Arm Performix to run?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I know we need binutils for objdump for identifying stack frames for Code Hotspots.

And I know I saw some recipes of Performix complain if venv was unavailable, but I can't remember which recipes or why it's needed. But I believe it was one of Code Hotspots, Instruction Mix, or Cpu Microarchitecture. I don't mind removing venv if this isn't an expected dependency, but I know it's been a point of friction for some users.

![instruction-mix-config.jpg](instruction-mix-config.jpg)


The results below confirm a high number of integer and floating-point operations, with no SIMD operations. The **Insights** panel suggests vectorization as a path forward, lists possible root causes, and links to related Learning Paths.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make sure that this is true with the current way that insights work

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is. I find the link to the learning path on using SVE is a good highlight of how effective Insights can be when they're working well.

@jasonrandrews jasonrandrews merged commit 8c67e16 into ArmDeveloperEcosystem:main Mar 17, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

4 participants