Add learning path for CPU Microarchitecture analysis with Arm Performix#2961
Add learning path for CPU Microarchitecture analysis with Arm Performix#2961jasonrandrews merged 20 commits intoArmDeveloperEcosystem:mainfrom
Conversation
| @@ -0,0 +1,47 @@ | |||
| --- | |||
| title: Learn the Arm Neoverse N1 performance analysis methodology | |||
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
Do we really need python on the target for Arm Performix to run?
There was a problem hiding this comment.
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.
|  | ||
|
|
||
|
|
||
| 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. |
There was a problem hiding this comment.
Make sure that this is true with the current way that insights work
There was a problem hiding this comment.
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.
8c67e16
into
ArmDeveloperEcosystem:main
Before submitting a pull request for a new Learning Path, please review Create a Learning Path
Please do not include any confidential information in your contribution. This includes confidential microarchitecture details and unannounced product 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.