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/cpu_hotspot_performix/how-to-2.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ You don't need to understand the Mandelbrot algorithm in detail to follow this L
17
17
18
18
## Connect to Target
19
19
20
-
If this is your first time setting up Arm Performix, follow the [Arm Performix installation guide](/install-guides/performix/). In this Learning Path you'll connect to an AWS Graviton3 metal instance (`m7g.metal`) with 64 Neoverse V1 cores, your remote target server. From the host machine, test the connection to the remote server by navigating to **Targets** > **Test Connection**. You should see the successful connection screen below.
20
+
If this is your first time setting up Arm Performix, follow the [Arm Performix install guide](/install-guides/performix/). In this Learning Path you'll connect to an AWS Graviton3 metal instance (`m7g.metal`) with 64 Neoverse V1 cores, your remote target server. From the host machine, test the connection to the remote server by navigating to **Targets** > **Test Connection**. You should see the successful connection screen below.
21
21
22
22

Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/cpu_hotspot_performix/how-to-3.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,10 +8,10 @@ layout: learningpathall
8
8
9
9
## Run Code Hotspots recipe
10
10
11
-
As shown in the `src/main_single_thread.cpp` file below, the program generates a 1920×1080 bitmap image of the fractal. To identify performance bottlenecks, run the Code Hotspots recipe in Arm Performix (APX). APX uses sampling to estimate where the CPU spends most of its time, allowing it to highlight the hottest functions—especially useful in larger applications where it isn't obvious ahead of time which functions will dominate runtime.
11
+
As shown in the `src/main_single_thread.cpp` file below, the program generates a 1920×1080 bitmap image of the fractal. To identify performance bottlenecks, run the Code Hotspots recipe in Arm Performix. It uses sampling to estimate where the CPU spends most of its time, highlighting the hottest functions—especially useful in larger applications where it isn't obvious ahead of time which functions will dominate runtime.
12
12
13
13
{{% notice Note %}}
14
-
The `myplot.draw()` call uses a relative path (`./images/green.bmp`). When APX launches the binary, it runs it from a temporary location, so the image would be written there rather than to your project directory. To ensure the output is saved where you expect it, update the first string argument in `src/main_single_thread.cpp` to the absolute path of the output file, for example `/home/ec2-user/Mandelbrot-Example/images/green.bmp`.
14
+
The `myplot.draw()` call uses a relative path (`./images/green.bmp`). When Arm Performix launches the binary, it runs it from a temporary location, so the image would be written there rather than to your project directory. To ensure the output is saved where you expect it, update the first string argument in `src/main_single_thread.cpp` to the absolute path of the output file, for example `/home/ec2-user/Mandelbrot-Example/images/green.bmp`.
15
15
{{% /notice %}}
16
16
17
17
```cpp
@@ -40,11 +40,11 @@ make clean
40
40
make single_thread DEBUG=1
41
41
```
42
42
43
-
Open APX from the host machine. Select the **Code Hotspot** recipe. If this is the first time running the recipe on this target machine you might need to select the install tools button.
43
+
Open Arm Performix from the host machine. Select the **Code Hotspot** recipe. If this is the first time running the recipe on this target machine you might need to select the install tools button.
44
44
45
45

46
46
47
-
Configure the recipe to launch a new process. APX will automatically start collecting metrics when the program starts and stop when the program exits.
47
+
Configure the recipe to launch a new process. Arm Performix will automatically start collecting metrics when the program starts and stop when the program exits.
48
48
49
49
Provide the absolute path to the binary built in the previous step: `/home/ec2-user/Mandelbrot-Example/build/mandelbrot_single_thread_debug`.
50
50
@@ -54,7 +54,7 @@ Use the default sampling rate of **Normal**. If your application is short-runnin
54
54
55
55
## Analyze results
56
56
57
-
A flame graph is generated once the run completes. The default colour mode labels the hottest functions—those using CPU most frequently—in the darkest shade. In this example, the `__complex_abs__` function is present in approximately 65% of samples, and it calls the `__hypot` symbol in `libm.so`.
57
+
A flame graph is generated once the run completes. The default color mode labels the hottest functions—those using CPU most frequently—in the darkest shade. In this example, the `__complex_abs__` function is present in approximately 65% of samples, and it calls the `__hypot` symbol in `libm.so`.
58
58
59
59

Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/cpu_hotspot_performix/how-to-4.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -66,7 +66,7 @@ make clean
66
66
make parallel DEBUG=1
67
67
```
68
68
69
-
Update the binary path in APX to `./builds/mandelbrot_parallel_debug` and pass the desired thread count as an argument, then rerun the recipe from the host.
69
+
Update the binary path in Arm Performix to `./builds/mandelbrot_parallel_debug` and pass the desired thread count as an argument, then rerun the recipe from the host.
70
70
71
71
To compare with a previous run, switch to comparison mode. Under the **Run Details** tab, execution time drops further from 0m 32s to 7s with 32 threads.
72
72
@@ -77,7 +77,7 @@ The proportion of samples has not changed significantly overall, but with 64 thr
77
77

78
78
79
79
{{% notice Note %}}
80
-
The total run duration shown in APX includes tooling setup and data analysis time, not just application execution time. To measure only the application, use the `time` command: the application now runs in approximately 1 second — close to a 100x improvement over the original single-threaded baseline.
80
+
The total run duration shown in Arm Performix includes tooling setup and data analysis time, not just application execution time. To measure only the application, use the `time` command: the application now runs in approximately 1 second — close to a 100x improvement over the original single-threaded baseline.
0 commit comments