Skip to content

Commit 4656bdf

Browse files
merging tech review updates
2 parents 48d7a87 + caeef46 commit 4656bdf

37 files changed

Lines changed: 953 additions & 225 deletions

content/install-guides/arm-toolchains-repository.md

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,32 @@
11
---
2-
### Title the install tools article with the name of the tool to be installed
3-
### Include vendor name where appropriate
42
title: Arm Toolchains Repository
53

64
draft: true
75

8-
### Optional additional search terms (one per line) to assist in finding the article
96
additional_search_terms:
107
- Arm Toolchains
118
- Arm Toolchain for Linux
129
- Arm Performance Libraries
1310
- Linux
1411
- HPC
1512

16-
### Estimated completion time in minutes (please use integer multiple of 5)
1713
minutes_to_complete: 15
1814

1915
test_maintenance: false
2016
test_images:
2117
- ubuntu:latest
2218

23-
### Link to official documentation
2419
official_docs: https://developer.arm.com/tools-and-software
2520
description: Configure the Arm Toolchains Repository package archive on supported Linux AArch64 distributions to enable installing Arm Toolchains products using the system package manager.
2621
author: Gary Carroll
2722

28-
### PAGE SETUP
2923
weight: 1 # Defines page ordering. Must be 1 for first (or only) page.
3024
tool_install: true # Set to true to be listed in main selection page, else false
3125
multi_install: false # Set to true if first page of multi-page article, else false
3226
multitool_install_part: false # Set to true if a sub-page of a multi-page article, else false
3327
layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles
3428
---
3529

36-
# Arm Toolchains Repository
37-
3830
The Arm Toolchains Linux repositories provide a native and convenient way to install selected Arm software products on supported Linux hosts using the host operating system package manager.
3931

4032
The repositories are published at [https://developer.arm.com/packages/arm-toolchains/](https://developer.arm.com/packages/arm-toolchains/).
@@ -46,7 +38,7 @@ They are used to distribute Linux packages for Arm Toolchains products, includin
4638

4739
Using the Arm Toolchains Linux repositories allows you to install, upgrade, and manage these products using standard Linux package-management tools such as `apt`, `dnf`, `yum`, and `zypper`.
4840

49-
Note: root permissions are required to install system packages.
41+
Root or `sudo` permissions are required to install system packages.
5042

5143
{{% notice Repository signing key update July 2026 %}}
5244
Arm has recently reviewed and strengthened the repository management and publication processes used for the Arm Toolchains Linux repositories.
@@ -60,17 +52,27 @@ Existing installed copies of Arm Toolchain for Linux and Arm Performance Librari
6052

6153
## Before you begin
6254

63-
You need a supported Linux host with `aarch64` architecture.
55+
Confirm you are using an Arm Linux system by running:
56+
57+
```bash
58+
uname -m
59+
```
6460

65-
You also need the package manager for your Linux distribution:
61+
The output should be:
62+
63+
```output
64+
aarch64
65+
```
66+
67+
The commands in this guide use the native package manager for your distribution:
6668

6769
- `apt` for Ubuntu LTS releases from 22.04
6870
- `dnf` or `yum` for RHEL 8 or later and Amazon Linux 2023
6971
- `zypper` for SLES 15 or 16
7072

7173
## What is the Arm Toolchains repository package?
7274

73-
Arm provides an `arm-toolchains-repository` package for each supported Linux distribution.
75+
Arm provides an `arm-toolchains-repository` for each supported Linux distribution.
7476

7577
This package configures the Arm Toolchains Linux package repository on your host system.
7678

@@ -84,27 +86,34 @@ Install this repository package before you install Arm Toolchain for Linux or Ar
8486

8587
## Why the signing key matters
8688

87-
Linux package managers use signing keys to verify that repository metadata and packages come from the expected publisher.
89+
Linux package managers use cryptographic signing keys to verify that repository metadata and packages are authentic and come directly from Arm.
90+
91+
If you are setting up a new system, installing the `arm-toolchains-repository` package automatically configures the current repository signing key for you. No manual key installation or fingerprint verification is required.
8892

89-
For the Arm Toolchains Linux repositories, the signing key is part of the trust model for package installation and upgrades. If your package manager does not have the current Arm Toolchains repository signing key installed, it might refuse to refresh repository metadata or install packages from the repository.
93+
However, if you are upgrading a system that previously configured the Arm Toolchains Linux repository before July 2026, you must update the repository configuration to use the new key. Otherwise, your package manager may refuse to refresh repository metadata or install packages.
9094

91-
The previous Arm Toolchains repository signing key was replaced in July 2026.
95+
### Repository signing key fingerprints
9296

93-
The previous key fingerprint was:
97+
For reference or manual verification, the fingerprints of the previous and current Arm Toolchains signing keys are:
98+
99+
Previous fingerprint:
94100

95101
```output
96102
EE37 7ACD D5AD 4AB6 BD79 9B8A B83D 741E 7A05 AF82
97103
```
98104

99-
The current key fingerprint is:
105+
Current fingerprint:
100106

101107
```output
102108
A406 5BCE 9386 DD1E 62FD E03B 8144 CA16 11A0 BD71
103109
```
104110

105-
You can display the fingerprint from a downloaded key file with:
111+
### (Optional) Manually verifying the signing key
112+
113+
If you want to manually verify the signing key, ensure the `gpg` utility (part of GnuPG) is installed on your system, then download the key file and display its fingerprint:
106114

107115
```bash
116+
curl -O https://developer.arm.com/packages/arm-toolchains/arm-toolchains.gpg
108117
gpg --show-keys --fingerprint arm-toolchains.gpg
109118
```
110119

@@ -149,49 +158,41 @@ The examples below install the repository package directly from [https://develop
149158
{{< tabpane code=true >}}
150159
{{< tab header="Ubuntu 24.04" language="bash" >}}
151160
curl -O https://developer.arm.com/packages/arm-toolchains/ubuntu/pool/arm-toolchains-repository_2-2~noble_all.deb
152-
153161
sudo dpkg -i arm-toolchains-repository_2-2~noble_all.deb
154162
sudo apt update
155163
{{< /tab >}}
156164
{{< tab header="Ubuntu 22.04" language="bash" >}}
157165
curl -O https://developer.arm.com/packages/arm-toolchains/ubuntu/pool/arm-toolchains-repository_2-2~jammy_all.deb
158-
159166
sudo dpkg -i arm-toolchains-repository_2-2~jammy_all.deb
160167
sudo apt update
161168
{{< /tab >}}
162169
{{< tab header="RHEL 10" language="bash" >}}
163170
sudo dnf install -y https://developer.arm.com/packages/arm-toolchains/rhel/el10/aarch64/arm-toolchains-repository-2-2.el10.noarch.rpm
164-
165171
sudo dnf clean all
166172
sudo dnf makecache
167173
{{< /tab >}}
168174
{{< tab header="RHEL 9" language="bash" >}}
169175
sudo dnf install -y https://developer.arm.com/packages/arm-toolchains/rhel/el9/aarch64/arm-toolchains-repository-2-2.el9.noarch.rpm
170-
171176
sudo dnf clean all
172177
sudo dnf makecache
173178
{{< /tab >}}
174179
{{< tab header="RHEL 8" language="bash" >}}
175180
sudo dnf install -y https://developer.arm.com/packages/arm-toolchains/rhel/el8/aarch64/arm-toolchains-repository-2-2.el8.noarch.rpm
176-
177181
sudo dnf clean all
178182
sudo dnf makecache
179183
{{< /tab >}}
180184
{{< tab header="Amazon Linux 2023" language="bash" >}}
181185
sudo dnf install -y https://developer.arm.com/packages/arm-toolchains/amazonlinux/al2023/aarch64/arm-toolchains-repository-2-2.al2023.noarch.rpm
182-
183186
sudo dnf clean all
184187
sudo dnf makecache
185188
{{< /tab >}}
186189
{{< tab header="SLES 15" language="bash" >}}
187190
sudo zypper install -y https://developer.arm.com/packages/arm-toolchains/sles/sles15/aarch64/arm-toolchains-repository-2-2.sles15.noarch.rpm
188-
189191
sudo zypper clean
190192
sudo zypper refresh
191193
{{< /tab >}}
192194
{{< tab header="SLES 16" language="bash" >}}
193195
sudo zypper install -y https://developer.arm.com/packages/arm-toolchains/sles/sles16/aarch64/arm-toolchains-repository-2-2.sles16.noarch.rpm
194-
195196
sudo zypper clean
196197
sudo zypper refresh
197198
{{< /tab >}}
@@ -245,7 +246,6 @@ Install the current Arm Toolchains repository signing key:
245246

246247
```bash
247248
curl -O https://developer.arm.com/packages/arm-toolchains/arm-toolchains.gpg
248-
249249
sudo install -D -m 0644 arm-toolchains.gpg \
250250
/usr/share/keyrings/arm-toolchains-archive-keyring.gpg
251251
```
@@ -294,7 +294,6 @@ Install the current Arm Toolchains repository signing key:
294294

295295
```bash
296296
curl -O https://developer.arm.com/packages/arm-toolchains/arm-toolchains.gpg
297-
298297
sudo rpm --import arm-toolchains.gpg
299298
```
300299

content/learning-paths/cross-platform/ai-agent-cpu-orchestration/2-setup.md

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,6 @@ Prepare the following before running the agent: a Serper API key for web search,
1313

1414
These steps are identical on an Apple silicon MacBook, an Arm Linux machine, and an NVIDIA DGX Spark.
1515

16-
### Get a Serper API key
17-
18-
The agent searches the web through [Serper](https://serper.dev/), a Google Search API. The free tier is enough for you to complete the Learning Path.
19-
20-
To get an API key:
21-
22-
1. Go to [serper.dev](https://serper.dev/) and create a free account.
23-
2. Open your dashboard and copy your API key.
24-
25-
You'll set this key as an environment variable later in this section, so the agent can read it without the key being written into the code.
26-
2716
### Create a project directory and virtual environment
2817

2918
A virtual environment keeps the agent's dependencies isolated from your system Python, so you always run against the right package versions.
@@ -54,16 +43,21 @@ Install the two packages:
5443
pip install requests beautifulsoup4
5544
```
5645

57-
### Set your Serper API key
46+
## Set your Serper API key
5847

59-
Export your API key as an environment variable in the same terminal session:
48+
The agent searches the web through [Serper](https://serper.dev/), a Google Search API. The free tier is enough to complete this Learning Path.
6049

61-
```bash
62-
export SERPER_API_KEY="your-serper-api-key"
63-
```
50+
1. Go to [serper.dev](https://serper.dev/) and create a free account.
51+
2. After logging in, you'll see the dashboard. On the left, select **API Keys**.
52+
3. Copy the Default key.
53+
4. Export your API key as an environment variable in the same terminal session as your virtual environment:
54+
55+
```bash
56+
export SERPER_API_KEY="your-serper-api-key"
57+
```
6458

6559
{{% notice Tip %}}
66-
This variable lasts only for the current terminal session. To keep the variable across sessions, add the same line to your shell profile, for example `~/.zshrc` on macOS or `~/.bashrc` on Linux.
60+
This variable only lasts for the current terminal session. To keep it across sessions, add the same line to your shell profile, for example `~/.zshrc` on macOS or `~/.bashrc` on Linux.
6761
{{% /notice %}}
6862

6963
### Download the agent script

content/learning-paths/cross-platform/ai-agent-cpu-orchestration/3-ollama.md

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,26 +21,33 @@ Running locally has three benefits that matter for an agent:
2121

2222
## Install and start Ollama
2323

24-
Install [Ollama](https://ollama.com/) and start its server using one of the following options. The server exposes a local API at `http://localhost:11434` that the agent connects to.
24+
Install [Ollama](https://ollama.com/) and start its server. The server exposes a local API at `http://localhost:11434` that the agent connects to.
25+
26+
1. Install Ollama using one of the following options:
2527

2628
{{< tabpane code=true >}}
27-
{{< tab header="Homebrew (Recommended)" language="bash">}}
28-
# Install Ollama
29+
{{< tab header="Homebrew" language="bash">}}
2930
brew install ollama
30-
31-
# Start the server as a background service (no terminal to keep open)
32-
brew services start ollama
3331
{{< /tab >}}
3432
{{< tab header="Install script" language="bash">}}
35-
# Install Ollama
3633
curl -fsSL https://ollama.com/install.sh | sh
34+
{{< /tab >}}
35+
{{< /tabpane >}}
36+
37+
2. Start the Ollama server using the same method you used to install it:
3738

38-
# Start the server (leave this running, and open a second terminal)
39+
{{< tabpane code=true >}}
40+
{{< tab header="Homebrew" language="bash">}}
41+
brew services start ollama
42+
{{< /tab >}}
43+
{{< tab header="Install script" language="bash">}}
3944
ollama serve
4045
{{< /tab >}}
4146
{{< /tabpane >}}
4247

43-
With [Homebrew](https://brew.sh/), `brew services` runs Ollama in the background, so you can use the same terminal throughout. With the install script, `ollama serve` runs in the foreground, so keep that terminal open and use a second terminal for the remaining commands.
48+
With [Homebrew](https://brew.sh/), `brew services` runs Ollama in the background, so you can use the same terminal throughout. To stop it later, run `brew services stop ollama`.
49+
50+
With the install script, `ollama serve` runs in the foreground. Keep that terminal open and use a second terminal for the remaining commands. To stop it later, press **Ctrl+C** in the terminal running `ollama serve`.
4451

4552
## Pull the Gemma model
4653

content/learning-paths/servers-and-cloud-computing/minecraft-on-oci/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Run a Minecraft server on an Arm-based Oracle Cloud Infrastructure instan
33

44
description: Deploy a Minecraft Java Edition server on an Arm-based OCI A1 instance, open port `25565`, and connect from the Minecraft client.
55

6-
minutes_to_complete: 10
6+
minutes_to_complete: 30
77

88
who_is_this_for: This is an introductory topic for developers who are new to Oracle Cloud Infrastructure (OCI) and want to provision an arm64 instance and run a persistent Minecraft server on it.
99

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
title: Profile GPT-2 instruction mix with Arm Performix
3+
4+
description: Learn how to profile GPT-2 inference on Arm Neoverse with the Arm Performix Instruction Mix recipe, identify scalar versus vector execution patterns, and improve throughput with NEON, SVE, and KleidiAI kernels.
5+
6+
minutes_to_complete: 45
7+
8+
who_is_this_for: This is an introductory topic for developers who want to get started using the instruction mix recipe in Arm Performix through a practical example.
9+
10+
learning_objectives:
11+
- Explain how the Instruction Mix recipe combines static disassembly with runtime sampling to show execution behavior
12+
- Build and run the GPT-2 inference example on an Arm Linux server
13+
- Identify why matrix multiplication dominates runtime and how vectorization changes the instruction mix
14+
- Compare throughput and instruction mix across scalar, NEON, SVE, and KleidiAI implementations
15+
16+
prerequisites:
17+
- Access to Arm Performix configured with a remote Arm Linux target. For setup, see the [Arm Performix install guide](/install-guides/performix/)
18+
- Basic understanding of C++ and compiler optimization
19+
- Basic understanding of matrix multiplication
20+
- Basic understanding of writing SIMD code with Neon and/or SVE.
21+
22+
author:
23+
- Kieran Hejmadi
24+
- Oliver Grainge
25+
26+
### Tags
27+
skilllevels: Introductory
28+
subjects: Performance and Architecture
29+
armips:
30+
- Neoverse
31+
tools_software_languages:
32+
- Arm Performix
33+
- C++
34+
- LLM
35+
- NEON
36+
- SVE
37+
operatingsystems:
38+
- Linux
39+
further_reading:
40+
- resource:
41+
title: Arm Performix User Guide
42+
link: https://developer.arm.com/documentation/110163/latest
43+
type: documentation
44+
- resource:
45+
title: Find code hotspots with Arm Performix
46+
link: /learning-paths/servers-and-cloud-computing/cpu_hotspot_performix/
47+
type: learning-path
48+
- resource:
49+
title: Identify code hotspots using Arm Performix through the Arm MCP Server
50+
link: /learning-paths/servers-and-cloud-computing/performix-mcp-agent/
51+
type: learning-path
52+
- resource:
53+
title: Arm MCP Server GitHub Repository
54+
link: https://github.com/arm/mcp
55+
type: website
56+
- resource:
57+
title: GPT-2 Example repository
58+
link: https://github.com/arm-education/GPT-2-Example
59+
type: website
60+
61+
62+
63+
### FIXED, DO NOT MODIFY
64+
# ================================================================================
65+
weight: 1 # _index.md always has weight of 1 to order correctly
66+
layout: "learningpathall" # All files under learning paths have this same wrapper
67+
learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content.
68+
---
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
# ================================================================================
3+
# FIXED, DO NOT MODIFY THIS FILE
4+
# ================================================================================
5+
weight: 21 # The weight controls the order of the pages. _index.md always has weight 1.
6+
title: "Next Steps" # Always the same, html page title.
7+
layout: "learningpathall" # All files under learning paths have this same wrapper for Hugo processing.
8+
---
63.7 KB
Loading
44.1 KB
Loading
63.8 KB
Loading
64.8 KB
Loading

0 commit comments

Comments
 (0)