Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
141 commits
Select commit Hold shift + click to select a range
f97ad0e
Adding NXP learning path
armwaheed Sep 4, 2025
7f48088
Removing capital letters and spaces
armwaheed Sep 4, 2025
f56c158
Reducing the number of prerequisites
armwaheed Sep 4, 2025
9694be1
Added NXP persistent WiFi
armwaheed Sep 17, 2025
34c9163
Fundamentals
dawidborycki Sep 25, 2025
e59c08d
Update 02_Setup.md
dawidborycki Sep 26, 2025
7e0006d
Data
dawidborycki Sep 29, 2025
2cf3a82
Training
dawidborycki Oct 2, 2025
e6e7473
6 & 7
dawidborycki Dec 15, 2025
2172d8d
Update 06_SudokuProcessor.md
dawidborycki Dec 15, 2025
bc8c81f
Update 07_Optimisation.md
dawidborycki Dec 17, 2025
8c81816
ONNX
dawidborycki Dec 21, 2025
bac2541
Update 08_Android.md
dawidborycki Dec 21, 2025
a188e04
Fixes
dawidborycki Dec 22, 2025
c78a8c3
Update 08_Android.md
dawidborycki Dec 22, 2025
fa361cc
Update 01_Fundamentals.md
dawidborycki Dec 22, 2025
22e1d0c
Update NSS in UE LP with UE5.6
annietllnd Dec 31, 2025
1083a39
Updated Helm learning path to include GKE and Helm-based app deployments
odidev Jan 6, 2026
1ead4e1
Update APerf guide with the latest changes
CongkaiTan Jan 9, 2026
8dfd179
Fix: Exclude deleted files from capital letter check
jaidev17 Jan 10, 2026
6076558
Update titles and content for clarity in CCA Learning Path materials
madeline-underwood Jan 10, 2026
db43fc9
Update image caption in Confidential Containers architecture diagram …
madeline-underwood Jan 10, 2026
65e2f72
Refine content for LLM CPU inference performance tuning
madeline-underwood Jan 10, 2026
a171557
Update alt text for PyTorch threading model diagram in background.md
madeline-underwood Jan 10, 2026
bf859a6
Add guidelines for code fence integrity in Copilot instructions
madeline-underwood Jan 11, 2026
8d22e0d
Resize images changed in the last week
pareenaverma Jan 12, 2026
775789a
[performance_onnxruntime_kleidiai_sme2] Second (and last) round of te…
Arnaud-de-Grandmaison-ARM Jan 9, 2026
bb25d0a
Add meta description tag for improved SEO and AI selection
madeline-underwood Jan 12, 2026
0e7cbb7
Add comment to clarify distinction between schema description and HTM…
madeline-underwood Jan 12, 2026
b0d2c8b
Trim whitespace from meta description for cleaner output
madeline-underwood Jan 12, 2026
d08445e
Merge pull request #2750 from ArmDeveloperEcosystem/resize-images
pareenaverma Jan 12, 2026
9389467
Merge pull request #2749 from madeline-underwood/ins_update
pareenaverma Jan 12, 2026
f67971e
Update _index.md
pareenaverma Jan 12, 2026
bdb26ed
Update background.md
pareenaverma Jan 12, 2026
d1f17d4
Update request-lto.md
pareenaverma Jan 12, 2026
46285e3
Update request-lto.md
pareenaverma Jan 12, 2026
42e744f
Update performance-uplift.md
pareenaverma Jan 12, 2026
49efbe6
Improve formatting of bullet points in performance uplift doc
pareenaverma Jan 12, 2026
2b36439
Merge pull request #2753 from pareenaverma/content_review
pareenaverma Jan 12, 2026
8a69ea6
Merge pull request #2751 from Arnaud-de-Grandmaison-ARM/performance_o…
jasonrandrews Jan 12, 2026
e93eb1b
Merge pull request #2748 from madeline-underwood/thread
jasonrandrews Jan 12, 2026
8e5b2a4
Merge pull request #2747 from madeline-underwood/ccakata
jasonrandrews Jan 12, 2026
db92323
Update breadcrumbs.html
chrismoroney Jan 12, 2026
04ac808
Update usage of mcpu flag in MCA
Jan 12, 2026
213e916
Merge pull request #2755 from Asher8118/main
jasonrandrews Jan 12, 2026
f745298
Merge pull request #2741 from jaidev17/fix-exclude-deleted-files
jasonrandrews Jan 12, 2026
aa54da9
Minor edits for clarification
jasonrandrews Jan 12, 2026
9cdfccd
Merge pull request #2756 from jasonrandrews/review
jasonrandrews Jan 12, 2026
04c1eb9
Merge pull request #2754 from ArmDeveloperEcosystem/STESOL-103
chrismoroney Jan 12, 2026
865e5aa
Merge pull request #2752 from madeline-underwood/enable-meta-descript…
pareenaverma Jan 12, 2026
4d0be9e
Update title and content for FEXPA learning path
madeline-underwood Jan 12, 2026
bf7c1cc
Revise conclusion to highlight SVE FEXPA benefits
madeline-underwood Jan 12, 2026
4909c69
Update FEXPA instruction details and implementation steps
madeline-underwood Jan 12, 2026
4d6778b
Revise implementation details for exponential function
madeline-underwood Jan 12, 2026
e1d2910
Revise theory content for exponential function optimization
madeline-underwood Jan 12, 2026
917f071
Add description field for x86-to-Arm application migration using Arm …
madeline-underwood Jan 12, 2026
e83481d
Add description field for distributed inference with llama.cpp on Arm…
madeline-underwood Jan 12, 2026
c343197
Add description field for LLM chatbot deployment with llama.cpp on Ar…
madeline-underwood Jan 12, 2026
0fe7f99
Add description field for glibc with LSE learning path to enhance cla…
madeline-underwood Jan 12, 2026
57d57cb
Add description field for Geekbench learning path to enhance clarity
madeline-underwood Jan 12, 2026
88041e7
Deploy RabbitMQ on Arm64 Cloud Platforms (Azure & GCP)
odidev Dec 18, 2025
504df22
Update description for x86-to-Arm application migration learning path…
madeline-underwood Jan 13, 2026
7eed6c7
Merge pull request #2757 from madeline-underwood/fexpa
jasonrandrews Jan 13, 2026
4e60fae
Update description for LLM chatbot deployment learning path to enhanc…
madeline-underwood Jan 13, 2026
300a122
Update description for glibc with LSE learning path to enhance clarity
madeline-underwood Jan 13, 2026
6536d29
Update description for Geekbench learning path to enhance clarity
madeline-underwood Jan 13, 2026
463d758
Set ONNX topic as draft and updated metadata
pareenaverma Jan 13, 2026
dc5e404
Update description for distributed inference with llama.cpp learning …
madeline-underwood Jan 13, 2026
8daaa50
Merge pull request #2758 from madeline-underwood/pilot-meta-descriptions
jasonrandrews Jan 13, 2026
8001c6e
Merge pull request #2689 from dawidborycki/LP-ONNX
pareenaverma Jan 13, 2026
5395c0e
Fixes for ONNX LP
pareenaverma Jan 13, 2026
444ebfd
Merge pull request #2759 from pareenaverma/content_review
pareenaverma Jan 13, 2026
528f909
Review vLLM INT4 quantization Learning Path
jasonrandrews Jan 13, 2026
7d78de2
Enhance INT4 quantization instructions for models
pareenaverma Jan 13, 2026
4666515
Merge pull request #2760 from jasonrandrews/review
jasonrandrews Jan 13, 2026
9525c4b
Merge pull request #2736 from CongkaiTan/main
jasonrandrews Jan 13, 2026
9a9c4ae
Refine ONNX Runtime learning path content for clarity and accuracy, e…
madeline-underwood Jan 13, 2026
b55bde1
Refactor documentation for ONNX Runtime learning path: enhance clarit…
madeline-underwood Jan 13, 2026
5952d11
Update armips section in ONNX Runtime learning path: replace specific…
madeline-underwood Jan 13, 2026
5dcb87d
Update _index.md
pareenaverma Jan 14, 2026
476c120
Merge pull request #2275 from armwaheed/linux-nxp-board
pareenaverma Jan 14, 2026
7745852
Update overview.md to enhance clarity on ONNX Runtime architecture an…
madeline-underwood Jan 14, 2026
05cd20d
initial draft of CPU affinity learning path
Jan 14, 2026
f56c0fd
renamed title
Jan 14, 2026
58cb1bc
minor tweaks before PR
Jan 14, 2026
c764271
Claude Code Install Guide
pareenaverma Jan 14, 2026
ddfabe1
Merge pull request #2764 from pareenaverma/content_review
pareenaverma Jan 14, 2026
33ad1a3
Merge pull request #2676 from odidev/rabbit_LP
jasonrandrews Jan 14, 2026
4b59e56
Merge pull request #2763 from kieranhejmadi01/pinning-threads
jasonrandrews Jan 14, 2026
890f244
starting tech review of CPU affinity
jasonrandrews Jan 14, 2026
11fcac4
Clarify VkConfig notice
annietllnd Jan 14, 2026
5a10daa
Edits for the Claude Code install guide
JoeStech Jan 14, 2026
2fc7cca
switch to tested windows command
JoeStech Jan 14, 2026
5e5d31d
Merge pull request #2767 from JoeStech/claude-code-edits
pareenaverma Jan 14, 2026
cabbd9e
Test uppercase fix
annietllnd Jan 14, 2026
72b4f44
Clean up remaining upper-case image files
annietllnd Jan 14, 2026
669d978
Update .md references for renamed images
annietllnd Jan 14, 2026
cb5b2ae
stage one done
mohamed-ismail99 Jan 15, 2026
acbd26c
Second time around
mohamed-ismail99 Jan 15, 2026
c79681b
Updated languages
mohamed-ismail99 Jan 15, 2026
988e3f2
Merge pull request #2768 from annietllnd/fix
pareenaverma Jan 15, 2026
20d547b
Merge pull request #2766 from jasonrandrews/review
jasonrandrews Jan 15, 2026
ad9037d
Merge pull request #2765 from annietllnd/neural-graphics
pareenaverma Jan 15, 2026
830488b
Merge branch 'main' into main
pareenaverma Jan 15, 2026
33e45e7
Merge pull request #2771 from mohamed-ismail99/main
pareenaverma Jan 15, 2026
6d2e2cd
Merge pull request #2712 from odidev/updated_helm
jasonrandrews Jan 15, 2026
a2aaaac
Remove unreferenced images
annietllnd Jan 15, 2026
458a740
Merge pull request #2774 from annietllnd/fix-images
pareenaverma Jan 15, 2026
28fdf4d
tech review of CPU affinity
jasonrandrews Jan 15, 2026
16fd356
Merge pull request #2775 from jasonrandrews/review
jasonrandrews Jan 15, 2026
e18105a
Refine installation guide for Claude Code: update headings, remove dr…
madeline-underwood Jan 15, 2026
f795f09
Update install guide description
madeline-underwood Jan 15, 2026
6acd05d
Update 1-setup.md
V3x-0E Jan 16, 2026
ded3802
Merge pull request #2778 from madeline-underwood/ig_boilerplate_update
pareenaverma Jan 16, 2026
1ec85bc
Merge pull request #2779 from V3x-0E/main
pareenaverma Jan 16, 2026
fa18ee5
Merge pull request #2762 from madeline-underwood/unleash
jasonrandrews Jan 16, 2026
3f7e2cd
fix broken link on migration page
jasonrandrews Jan 16, 2026
78ba3d2
Merge pull request #2780 from jasonrandrews/review2
jasonrandrews Jan 16, 2026
746c196
Merge pull request #2777 from madeline-underwood/claude
jasonrandrews Jan 16, 2026
19d420f
Refactor CPU affinity learning path content for clarity and detail
madeline-underwood Jan 16, 2026
a524c55
Update skill level to Advanced and improve clarity in taskset documen…
madeline-underwood Jan 16, 2026
5bcc69f
update introduction in fvps-on-macos.md for clarity and detail
madeline-underwood Jan 16, 2026
5662371
Add clarification on 5.5 installation
annietllnd Jan 16, 2026
948989a
spelling updates
jasonrandrews Jan 16, 2026
2037354
Merge pull request #2782 from madeline-underwood/ig_copy_fix
pareenaverma Jan 16, 2026
8d529ce
Merge pull request #2784 from annietllnd/neural-graphics
pareenaverma Jan 16, 2026
97629a7
Updare RabbitMQ GCP and Azure content based on testing and feedback
madeline-underwood Jan 16, 2026
32cbb66
Update RabbitMQ GCP Learning Path Content
madeline-underwood Jan 16, 2026
57a2add
Merge pull request #2783 from jasonrandrews/review2
jasonrandrews Jan 16, 2026
aa7d5d9
Merge pull request #2785 from madeline-underwood/rabbit_iteration
jasonrandrews Jan 16, 2026
d6aea81
Merge pull request #2781 from madeline-underwood/threads
jasonrandrews Jan 16, 2026
32258b5
Refine APerf installation guide for clarity and detail
madeline-underwood Jan 16, 2026
4c38974
Update stats_current_test_info.yml
madeline-underwood Jan 16, 2026
8dda8b1
Merge pull request #2787 from ArmDeveloperEcosystem/update-stats-curr…
jasonrandrews Jan 16, 2026
f54212b
Merge pull request #2786 from madeline-underwood/aperf
jasonrandrews Jan 16, 2026
5343383
update tags
jasonrandrews Jan 16, 2026
2bb6761
Merge pull request #2788 from jasonrandrews/review2
jasonrandrews Jan 16, 2026
51eeed5
Put Helm Learning Path in draft during review
jasonrandrews Jan 16, 2026
7f2c82d
Merge pull request #2789 from jasonrandrews/review2
jasonrandrews Jan 16, 2026
f5be412
Restore missing image
jasonrandrews Jan 17, 2026
f90ce49
Merge pull request #2793 from jasonrandrews/review2
jasonrandrews Jan 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,12 @@ Voice and Tone:
- Formatting standards: **Bold text** for UI elements (buttons, menu items, field names), *Italic text* for emphasis and new terms, `Code formatting` for file names, commands, code elements.
- Use shortcodes for common pitfalls, warnings, important notes.

### Code fence integrity

- Every fenced code block opened with triple backticks (```) MUST be explicitly closed with matching triple backticks before any non-code content resumes
- Never generate unterminated or partial code fences
- Do not rely on implicit closure, indentation, or surrounding formatting to end a code block

## Arm naming and architecture terms

- Use Arm for the brand in prose (for example, "Arm processors", "Arm servers").
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-lp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:

tmpfile=$(mktemp)

git diff --name-only origin/${{ github.base_ref }}...HEAD |
git diff --name-only --diff-filter=d origin/${{ github.base_ref }}...HEAD |
grep '^content/' |
while read -r path; do
name=$(basename "$path")
Expand Down
100 changes: 99 additions & 1 deletion .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5493,4 +5493,102 @@ preselected
reconfiguring
torchscript
xxxxxx
Modescope
Modescope

APerf's
AdamW
AndroidX
AssetManager
BGA
BatchNormalization
BoardRenderer
CVVXMAB
DigitNet
EPs
IC
ImageFolder
MAB
MIMX
NXP's
Netron
ONNX's
OTP
Opset
Opsets
Otsu
PGDATA
PSK
PrepareData
PrepareModelForAndroid
QDQ
QuantizeModel
Relu
RemainAfterExit
RunSudokuProcessor
Runlevel
Runtime's
SBBM
SSID
SSIDs
ScrollView
SessionOptions
SmallNet
SudokuEngine
SudokuProcessor
SudokuSolver
SudokuSolverOnnx
TCMalloc
VVX
WantedBy
YOLOv
accuracies
acyclic
androidx
aug
bitnami
claude
dataloaders
deployability
deterministically
digitnet
dirs
drawable
drawables
flto
frdm
hpa
httproute
ifconfig
initDebug
interprocedural
mgmt
misrecognized
mlan
moal
modprobe
netdev
netron
oneshot
onnxscript
opset
opsets
picocom
psk
pvc
reimplemented
scarthgap
serviceaccount
silabs
smallnet
sourcecode
ssid
stepwise
sudoku
sudokusolveronnx
tensor's
thumbdrive
ttyLP
udhcpc
usb
vcp
Aperf's
Binary file removed content/install-guides/_images/about-wpa.png
Binary file not shown.
Binary file removed content/install-guides/_images/aperf.webp
Binary file not shown.
Binary file removed content/install-guides/_images/aperf0.webp
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file removed content/install-guides/_images/win-sys-path.png
Binary file not shown.
Binary file not shown.
Binary file removed content/install-guides/_images/windows-sys-prop.png
Binary file not shown.
138 changes: 84 additions & 54 deletions content/install-guides/aperf.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,20 @@ official_docs: https://github.com/aws/aperf
test_images:
- ubuntu:latest
test_maintenance: true
title: AWS Perf (APerf)
title: APerf
tool_install: true
weight: 1
---

APerf (AWS Perf) is an open source command line performance analysis tool which saves time by collecting information which is normally collected by multiple tools such as `perf`, `sysstat`, and `sysctl`.
APerf is an open source command line tool maintained by AWS. It helps you monitor and debug performance on Linux systems by collecting a wide range of performance-related system metrics and data that traditionally require multiple tools, such as `perf`, `sysstat`, and `sysctl`.

APerf was created by AWS to help with Linux performance analysis.
APerf collects system data and saves it in an archive. It then generates a static HTML report from one or more archives to visualize the data. When you generate the report, APerf analyzes the data to automatically detect potential performance issues. You can open the report in a browser to view all collected data and analytical findings.

In addition to the CLI, APerf includes an HTML view to visualize the collected data.
## Install APerf

## What should I do before I begin installing APerf?
This guide provides a quick solution to install APerf on Arm Linux and get started.

APerf works on Linux, and is available as a single binary.

APerf works best if `perf` is installed. Refer to the [Perf for Linux on Arm](/install-guides/perf) install guide for instructions.

This article provides a quick solution to install APerf on Arm Linux and get started.
## Before you begin

Confirm you are using an Arm machine by running:

Expand All @@ -39,37 +35,52 @@ The output should be:
aarch64
```

If you see a different result, you are not using an Arm computer running 64-bit Linux.
{{% notice Note %}} If you see a different result, you are not using an Arm computer running 64-bit Linux. APerf can only run on Linux.{{% /notice %}}

To allow APerf to collect PMU (Processor Monitoring Unit) metrics without sudo or root permissions, set `/proc/sys/kernel/perf_event_paranoid` to -1:

```bash
sudo sysctl -w kernel.perf_event_paranoid=-1
```

To use APerf's CPU profiling option (`--profile`), install the `perf` binary. See the [Perf for Linux on Arm](/install-guides/perf) install guide for instructions.

## How do I download and install APerf?
For kernel address visibility, set `/proc/sys/kernel/kptr_restrict` to 0:

The easiest way to install APerf is to download a release from GitHub, extract it, and setup your `PATH` environment variable or copy the executable to a directory already in your search path.
```bash
sudo sysctl -w kernel.kptr_restrict=0
```

To use APerf's Java profiling option (`--profile-java`), install the [async-profiler](https://github.com/async-profiler/async-profiler) tool.

## Download and install APerf
The easiest way to install APerf is to download a release from GitHub and extract it.

Visit the [releases page](https://github.com/aws/aperf/releases/) to see a list of available releases.
Visit the [releases page](https://github.com/aws/aperf/releases/) to see available releases.

You can also download a release from the command line:
You can download a release from the command line:

```bash { target="ubuntu:latest" }
wget https://github.com/aws/aperf/releases/download/v0.1.15-alpha/aperf-v0.1.15-alpha-aarch64.tar.gz
wget https://github.com/aws/aperf/releases/download/v1.0.0/aperf-v1.0.0-aarch64.tar.gz
```

Extract the release:

```bash { target="ubuntu:latest" }
tar xvfz aperf-v0.1.15-alpha-aarch64.tar.gz
tar xvfz aperf-v1.0.0-aarch64.tar.gz
```

Add the path to `aperf` in your `.bashrc` file.

```console
echo 'export PATH="$PATH:$HOME/aperf-v0.1.15-alpha-aarch64"' >> ~/.bashrc
echo 'export PATH="$PATH:$HOME/aperf-v1.0.0-aarch64"' >> ~/.bashrc
source ~/.bashrc
```

Alternatively, you can copy the `aperf` executable to a directory already in your search path.

```bash { target="ubuntu:latest" }
sudo cp aperf-v0.1.15-alpha-aarch64/aperf /usr/local/bin
sudo cp aperf-v1.0.0-aarch64/aperf /usr/local/bin
```

Confirm `aperf` is installed by printing the version:
Expand All @@ -81,81 +92,100 @@ aperf --version
The output should print the version:

```output
aperf 0.1.0 (4b910d2)
aperf 1.0.0 (4cf8d28)
```

## How do I verify APerf is working?
## Verify APerf is working

### How do I create and view a report?
To confirm APerf is working, start a collection run with the default settings. The default interval is 1 second, and the default period is 10 seconds.

To confirm APerf is working, start it for 10 seconds and take a sample every 1 second.
Run the following command to start data collection:

```console
sudo aperf record -i 1 -p 10 -r run1 --profile
aperf record -r test_1
```

After 10 seconds `aperf` completes and you see a directory named `run1` and a tar file named `run1.tar.gz`.
After 10 seconds, the collection completes. APerf creates a directory named `test_1` and a tar file named `test_1.tar.gz`.

If you need CPU profiling, add the `--profile` flag. For Java profiling, add the `--profile-java` flag.

### How do I create and view a report?

Next, generate a report from the recorded data:
Generate a report from the recorded data:

```console
sudo aperf report -r run1 -n report1
aperf report -r test_1 -n test_report
```

The name of the report is `report1` and you will see a `report1` directory and a tar file named `report1.tar.gz`.

The tar files are useful if you want to copy them to another machine.
APerf creates a directory named `test_report` and a tar file named `test_report.tar.gz`. The tar file is useful when you want to copy the report to another machine.

Using a web browser, open the file `index.html` in the `report1/` directory. To open the file use `Ctrl+O` for Linux and Windows and use `⌘+O` for macOS.
To view the report, open the `index.html` file in the `test_report/` directory using a web browser. Press `Ctrl+O` on Linux and Windows, or `⌘+O` on macOS.

The report is now visible in the browser.
The report's home page displays system information from the APerf run, followed by analytical findings that highlight potential performance issues:

There are a number of tabs on the left side showing the collected data.
![APerf report home page showing system information and analytical findings alt-txt#center](/install-guides/_images/aperf_report_home.png "APerf report home page")

You can browse the data and see what has been collected.
You can browse through all collected data using the navigation panel on the left.

![APerf #center](/install-guides/_images/aperf0.webp)
To learn more about a specific metric, select the info button next to it to open the help panel:

{{% notice Note %}}
The Kernel Config and Sysctl Data tabs are blank unless you click No.
{{% /notice %}}
![APerf report help panel showing detailed metric information alt-txt#center](/install-guides/_images/aperf_report_help_panel.png "APerf report help panel")

### How do I create and view a report containing 2 runs?
### How do I compare multiple runs?

To demonstrate comparing 2 runs, create a second run with `aperf record`:
To demonstrate comparing multiple runs, create a second run with `aperf record`:

```console
sudo aperf record -i 1 -p 10 -r run2 --profile
aperf record -r test_2
```

After 10 seconds `aperf` completes and you see a directory named `run2` and a tar file named `run2.tar.gz`.
Similarly, after 10 seconds the collection completes, and APerf produces a directory named `test_2` and a tar file named `test_2.tar.gz`.

Generate a report with both the first and second runs included:
Generate a report that includes both runs. The first run in the `-r` arguments becomes the base run for automatic comparisons:

```console
sudo aperf report -r run1 -r run2 -n compare
aperf report -r test_1 test_2 -n compare_report
```

The name of the report is `compare` and you will see a `compare` directory and a tar file named `compare.tar.gz`.
APerf creates a directory named `compare_report` and a tar file named `compare_report.tar.gz`.

Open the `index.html` file in the `compare_report/` directory using a web browser.

Because the report includes multiple runs, APerf compares all runs against the base run and displays statistical findings on the home page:

Open the `index.html` file in the `compare/` directory to see the 2 runs side by side.
![APerf report home page showing statistical comparisons between multiple runs alt-text#center](/install-guides/_images/aperf_report_statistical_findings.png "APerf report statistical findings")

A screenshot is shown below:
When you view metric graphs, APerf aligns graphs of the same metric from different runs side by side for easy comparison:

![APerf #center](/install-guides/_images/aperf.webp)
![APerf report showing aligned metric graphs from multiple runs for comparison alt-text#center](/install-guides/_images/aperf_report_aligned_graphs.png "APerf report aligned graphs")

### How do I use an HTTP server to view reports?
### How do I view reports from a remote system?

If you are doing performance analysis on a remote system or cloud instance without a remote desktop, you can view the APerf reports from your local browser by running a simple web server on the remote machine.
If you're working on a remote system or cloud instance without a desktop environment, you can view APerf reports in your local browser by running a web server on the remote machine.

Navigate to the directory containing the report and the `index.html` file:

```console
cd test_report
```

In the directory with the report data and the `index.html` file run a simple web server:
Start a simple HTTP server:

```console
python -m http.server 3000
```

Make sure port 3000 is open on the remote system and enter the IP address of the remote system followed by `:3000` in your browser address bar.
The server starts on port 3000. Make sure this port is open in your firewall or security group settings.

Open a web browser on your local machine and navigate to:

```output
http://<remote-ip-address>:3000
```

Replace `<remote-ip-address>` with the IP address of your remote system.

The APerf report opens in your browser without needing to copy files to your local machine.

You will see the same APerf report, and avoid the need to copy files to your local machine from the remote system for viewing.
You're now ready to use APerf for performance analysis on your Arm Linux system.

You are ready to use APerf for performance analysis on your Arm Linux system.
Loading
Loading