You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/performix-mcp-agent/1-overview.md
+8-4Lines changed: 8 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,20 @@
1
1
---
2
-
title: Understand Arm Performix in the Arm MCP Server
2
+
title: Understand AI-driven profiling with Arm Performix MCP
3
3
weight: 2
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
8
9
+
## Why AI-driven profiling with Arm Performix
10
+
11
+
The Arm MCP Server exposes Arm Performix as a first-class tool that AI coding assistants can invoke directly. Rather than switching between your IDE and the Performix GUI to analyze results and then back again to apply code changes, an AI agent can orchestrate the entire profiling pipeline — configuring the recipe, launching the collection run, retrieving hotspot data, and proposing optimizations — all in a single agentic workflow.
12
+
9
13
## What is the Arm Performix tool in the MCP Server?
10
14
11
-
The Arm MCP Server exposes Arm Performix as a first-class tool that AI coding assistants can invoke directly. Arm Performix is a performance profiling tool that simplifies the workflow of collecting CPU samples, building flame graphs, and identifying the functions that dominate application runtime. When integrated into the MCP server, it lets an AI agent orchestrate the entire profiling pipeline — configuring the recipe, launching the collection run, and retrieving the resulting hotspot data — without manual interaction with the Performix engine.
15
+
Arm Performix is a performance profiling tool that simplifies the workflow of collecting CPU samples, building flame graphs, and identifying the functions that dominate application runtime. When integrated into the MCP server, it lets an AI agent orchestrate the entire profiling pipeline — configuring the recipe, launching the collection run, and retrieving the resulting hotspot data — without manual interaction with the Performix engine.
12
16
13
-
This removes a context switch for profiling. Rather than switching between your IDE and the Performix GUI to analyze results and then back again to apply code changes, an AI agent can do all of this for you in a single agentic workflow.
17
+
Context switching for profiling is removed. Rather than switching between your IDE and the Performix GUI to analyze results and then back again to apply code changes, an AI agent can do all of this for you in a single agentic workflow.
14
18
15
19
## How the MCP tool works
16
20
@@ -32,7 +36,7 @@ You can ask your AI assistant direct questions and it will invoke the `apx_recip
32
36
Run the Code Hotspots recipe on /home/ec2-user/Mandelbrot-Example/build/mandelbrot_single_thread_debug and tell me which functions are the hottest
33
37
```
34
38
35
-
This is useful for quick, exploratory checks. It works well when you already know the binary path and just want a fast hotspot summary before committing to deeper analysis.
39
+
Direct chat is useful for quick, exploratory checks. It works well when you already know the binary path and just want a fast hotspot summary before committing to deeper analysis.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/performix-mcp-agent/2-setup.md
+8-4Lines changed: 8 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,20 +1,24 @@
1
1
---
2
-
title: Build the example application and configure the target
2
+
title: Build the Mandelbrot example on Arm Neoverse
3
3
weight: 3
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
8
9
+
## Prepare the profiling target
10
+
11
+
In this section, you'll build the Mandelbrot C++ application on your remote Arm server and confirm that Arm Performix can reach the target.
12
+
9
13
## About the example application
10
14
11
15
This Learning Path profiles the same Mandelbrot C++ application used in the [Find code hotspots with Arm Performix](/learning-paths/servers-and-cloud-computing/cpu_hotspot_performix/) Learning Path. It generates a 1920×1080 bitmap of the Mandelbrot set by iterating a simple recurrence for each pixel and is compute-heavy enough to produce clear profiling signal without requiring a long-running workload. The single-threaded build is intentionally unoptimized so that the hotspot analysis surfaces a meaningful target for improvement.
12
16
13
-
You don't need to understand the Mandelbrot algorithm to follow this Learning Path. It's used here as a convenient, reproducible benchmark for profiling on Arm Neoverse.
17
+
You don't need to understand the Mandelbrot algorithm to follow this Learning Path.
14
18
15
19
## Connect to your Arm target
16
20
17
-
This Learning Path targets an AWS Graviton3 metal instance (`m7g.metal`) with 64 Neoverse V1 cores. Any Arm Linux server with multiple cores works for the parallelization step, but a metal instance gives you direct access to all hardware threads without the overhead of virtualization.
21
+
For profiling, the Learning Path targets an AWS Graviton3 metal instance (`m7g.metal`) with 64 Neoverse V1 cores. Any Arm Linux server with multiple cores works for the parallelization step, but a metal instance gives you direct access to all hardware threads without the overhead of virtualization.
18
22
19
23
You connect to the remote target via SSH through the Arm MCP Server. The `apx_recipe_run` tool accepts the target host IP address and SSH username directly as parameters, so there is no separate target configuration step required. Ensure your remote Arm server is reachable over SSH from the machine running your AI coding assistant, and follow the [Configure your MCP client](https://github.com/arm/mcp?tab=readme-ov-file#2-configure-your-mcp-client) instructions in the Arm MCP Server repository before continuing.
20
24
@@ -36,7 +40,7 @@ cd Mandelbrot-Example
36
40
make single_thread DEBUG=1
37
41
```
38
42
39
-
This produces the binary at `./build/mandelbrot_single_thread_debug`. Confirm it exists before continuing:
43
+
The command produces the binary at `./build/mandelbrot_single_thread_debug`. Confirm it exists before continuing:
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/performix-mcp-agent/3-run-hotspot.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,19 @@
1
1
---
2
-
title: Run the Code Hotspots recipe using a GitHub Copilot agent
2
+
title: Run Code Hotspots with an AI agent
3
3
weight: 4
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
8
9
+
## Execute profiling through the Arm MCP Server
10
+
11
+
In this section, you'll use a GitHub Copilot prompt file to drive the Code Hotspots recipe through the Arm MCP Server. The agent confirms your target details, runs the recipe autonomously, and returns structured profiling results.
12
+
9
13
## Use the Arm MCP performance-beginner prompt file
10
14
11
15
{{% notice Note %}}
12
-
This section uses Visual Studio Code with GitHub Copilot. If you prefer a different AI assistant, see [Configure other AI agents](#configure-other-ai-agents) at the end of this section for equivalent configurations for Kiro and OpenAI Codex.
16
+
The section uses Visual Studio Code with GitHub Copilot. If you prefer a different AI assistant, see [Configure other AI agents](#configure-other-ai-agents) at the end of this section for equivalent configurations for Kiro and OpenAI Codex.
13
17
{{% /notice %}}
14
18
15
19
The Arm MCP Server repository includes a ready-made prompt file called `performance-beginner` that guides an AI agent through the full Code Hotspots workflow: baseline profiling, hotspot identification, targeted code changes, and re-profiling to confirm the improvement. You don't need to write this file yourself, you copy it from the repository.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/performix-mcp-agent/4-optimize.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
1
---
2
-
title: Apply optimizations and verify improvements
2
+
title: Optimize code with AI-driven profiling feedback
3
3
weight: 5
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
8
9
-
## Apply the agent's proposed optimizations
9
+
## Apply AI-suggested optimizations
10
10
11
11
In the previous section, the agent identified three optimization opportunities:
12
12
@@ -47,7 +47,7 @@ The fix is to replace `std::complex<double>` in `getIterations` with plain `doub
47
47
$$re_{new} = re_z^2 - im_z^2 + re_c$$
48
48
$$im_{new} = 2 \cdot re_z \cdot im_z + im_c$$
49
49
50
-
This eliminates every `std::complex` method call from the inner loop. If the agent hasn't already proposed this change, use the following prompt to direct it:
50
+
The fix eliminates every `std::complex` method call from the inner loop. If the agent hasn't already proposed this change, use the following prompt to direct it:
51
51
52
52
```text
53
53
On the remote server, rewrite the getIterations function in
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/performix-mcp-agent/_index.md
-4Lines changed: 0 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,6 @@
1
1
---
2
2
title: Identify code hotspots using Arm Performix through the Arm MCP Server
3
3
4
-
draft: true
5
-
cascade:
6
-
draft: true
7
-
8
4
description: Learn how to use an AI agent and the Performix tool through the Arm MCP Server to run the Code Hotspots recipe on a C++ application, interpret flame graph results, and apply targeted optimizations on Arm Neoverse.
0 commit comments