|
1 | 1 | --- |
2 | | -title: What is the arm-performix skill? |
| 2 | +title: Understand the arm-performix skill |
| 3 | +description: Understand how the arm-performix skill selects Arm Performix recipes, gathers workload context, and returns structured profiling reports. |
3 | 4 | weight: 2 |
4 | 5 |
|
5 | 6 | ### FIXED, DO NOT MODIFY |
6 | 7 | layout: learningpathall |
7 | 8 | --- |
8 | 9 |
|
9 | | -## A skill, not a tool |
| 10 | +## What the skill is |
10 | 11 |
|
11 | | -**Arm Performix** is a desktop application for hardware-specific performance |
| 12 | +Arm Performix is a desktop application for hardware-specific performance |
12 | 13 | tuning. It offers curated analysis pathways for performance-critical factors in |
13 | | -applications, libraries, runtimes, and source code. The **arm-performix skill** is |
14 | | -a set of instructions you add to your AI assistant so that it knows how to use |
15 | | -Performix correctly on your behalf: which recipe to pick, how to gather context, |
16 | | -how to read the results, and how to report findings. |
| 14 | +applications, libraries, runtimes, and source code. |
17 | 15 |
|
18 | | -Without the skill, an assistant tends to guess at performance problems by reading |
19 | | -your source code. With the skill, it follows a disciplined workflow: measure |
20 | | -first, characterize the bottleneck, change one thing at a time, and confirm the |
21 | | -improvement with before/after data. |
| 16 | +The `arm-performix` skill is a set of instructions you can add to your AI assistant so that it knows how to use Performix correctly on your behalf. The skill defines which recipe to pick, how to gather context, how to read the results, and how to report findings. |
22 | 17 |
|
23 | | -## What the skill does for you |
| 18 | +Without the skill, an assistant might guess at performance problems by reading |
| 19 | +your source code. |
24 | 20 |
|
25 | 21 | When the skill is active, the assistant: |
26 | 22 |
|
27 | 23 | - Asks for the target, binary path, and workload command before profiling |
28 | 24 | - Chooses the narrowest Performix recipe that answers your question |
29 | 25 | - Runs the recipe through the `apx` command-line interface (CLI), or through the |
30 | 26 | Arm Model Context Protocol (MCP) Server |
31 | | -- Returns a structured Analysis Report with a bottleneck summary, key metrics, |
| 27 | +- Returns a structured analysis report with a bottleneck summary, key metrics, |
32 | 28 | hot functions, ranked recommendations, and a single next step |
33 | 29 |
|
34 | | -## What the skill does not do |
35 | | - |
36 | | -- Profile non-Neoverse Arm cores, such as phone-class SoCs |
37 | | -- Guess at bottlenecks from source reading instead of measurement |
38 | | -- Silently switch to another profiler when Performix is unavailable; it asks you |
39 | | - how to proceed instead |
40 | | - |
41 | | -## The recipes it can run |
| 30 | +## What recipes the skill can run |
42 | 31 |
|
43 | 32 | Performix exposes five profiling recipes, and the skill orchestrates them as a |
44 | 33 | workflow: it picks a starting recipe from your question, then follows the |
45 | 34 | evidence into whichever further recipes are needed to explain and confirm the |
46 | | -bottleneck. Each recipe answers a different question: |
| 35 | +bottleneck. |
| 36 | + |
| 37 | +Each recipe provides a different view of application performance: |
47 | 38 |
|
48 | 39 | | Your question | Recipe | What it shows | |
49 | 40 | | --- | --- | --- | |
50 | | -| Where is my time spent? | **Code Hotspots** | Hottest functions, call paths, flame graph | |
51 | | -| Why is the pipeline stalling? | **CPU Microarchitecture** | Front-end and back-end stalls, bad speculation, retiring | |
52 | | -| Am I using single instruction, multiple data (SIMD), such as Neon or Scalable Vector Extension (SVE)? | **Instruction Mix** | Scalar vs vector instruction balance | |
53 | | -| Is memory the bottleneck? | **Memory Access** | L1 cache hit rate, latency, translation lookaside buffer (TLB) and page-walk pressure | |
54 | | -| What can the hardware do? | **System Characterization** | Memory bandwidth and latency baseline per non-uniform memory access (NUMA) node | |
| 41 | +| Where is my time spent? | Code Hotspots | Hottest functions, call paths, and flame graphs to identify where time is spent | |
| 42 | +| Why is the pipeline stalling? | CPU Microarchitecture | Front-end and back-end pipeline stalls, bad speculation, retiring | |
| 43 | +| Am I using single instruction, multiple data (SIMD), such as Neon or Scalable Vector Extension (SVE)? | Instruction Mix | Scalar versus vector instruction balance | |
| 44 | +| Is memory the bottleneck? | Memory Access | L1 cache hit rate, latency, translation lookaside buffer (TLB) and page-walk pressure to identify whether memory is the bottleneck | |
| 45 | +| What can the hardware do? | System Characterization | Memory bandwidth and latency baseline per non-uniform memory access (NUMA) node to identify what the hardware can do | |
55 | 46 |
|
56 | 47 | {{% notice Note %}} |
57 | | -**Where the recipes run:** |
58 | | - |
59 | | -- **Profiling target** (the machine running your workload). The four |
60 | | - microarchitecture-level recipes (CPU Microarchitecture, Instruction Mix, |
61 | | - Memory Access, and System Characterization) require an **Arm Neoverse** target |
62 | | - on Linux; Memory Access additionally needs the Statistical Profiling Extension |
63 | | - (SPE) enabled. Code Hotspots is broader: it also runs on x86-64 Linux and on |
| 48 | +- The four microarchitecture-level recipes — CPU Microarchitecture, Instruction Mix, |
| 49 | + Memory Access, and System Characterization — require an Arm Neoverse target |
| 50 | + on Linux. The Code Hotspots recipe additionally runs on x86-64 Linux and on |
64 | 51 | Windows 11 on Arm or x86-64. |
65 | | -- **Host** (the machine where you run the `apx` CLI or your AI assistant). It can |
66 | | - be macOS, Windows, or Linux on either arm64 or x86-64, and connects to the |
67 | | - target locally or over Secure Shell (SSH). |
| 52 | +- To use the Memory Access recipe, enable the Statistical Profiling Extension |
| 53 | + (SPE). |
| 54 | +- The host machine can be macOS, Windows, or Linux on either arm64 or x86-64. The host can connect to the target locally or over SSH. |
| 55 | +- The skill guides AI assistants to use the `apx` CLI by default. If `apx` isn’t installed or available, it asks how you want to proceed rather than switching tools automatically. You can use the Arm MCP Server as an alternative tool, especially if you want fully agent-driven launch-mode profiling. Note that the MCP server doesn’t expose the System Characterization recipe. |
68 | 56 | {{% /notice %}} |
69 | 57 |
|
70 | | -{{% notice Note %}} |
| 58 | +## What you've learned and what's next |
71 | 59 |
|
72 | | -The `apx` CLI is the full-capability interface. Use it for attach-to-process ID |
73 | | -(PID), system-wide captures, timed captures, run export/import, custom result |
74 | | -queries, CI/CD automation, and the System Characterization recipe. The Arm MCP |
75 | | -Server is useful for agent-driven launch-mode profiling, but it exposes only the |
76 | | -`code_hotspots`, `instruction_mix`, `cpu_microarchitecture`, and `memory_access` |
77 | | -recipes. If you need System Characterization or run-history operations, use the |
78 | | -CLI or the graphical user interface (GUI). |
79 | | -{{% /notice %}} |
| 60 | +You've now learned how the `arm-performix` skill can help an assistant use Performix correctly, and what Performix recipes the skill can run. |
| 61 | + |
| 62 | +Next, you'll install the skill and make it discoverable to your AI assistant. |
0 commit comments