Skip to content

Commit 7311f18

Browse files
authored
Merge branch 'ArmDeveloperEcosystem:main' into main
2 parents 62c88b1 + 3a63779 commit 7311f18

14 files changed

Lines changed: 903 additions & 1041 deletions

File tree

.wordlist.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5638,3 +5638,10 @@ ZYNQ
56385638
zypper
56395639
ZZa
56405640
ZZZZZ
5641+
ASCT
5642+
ArmTotalPerformance
5643+
Numbat
5644+
SKUs
5645+
asct
5646+
geminicli
5647+
passwordless

content/install-guides/asct.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ wget https://artifacts.tools.arm.com/asct/dist/0.4.2/asct-0.4.2+3b955c2.tar.gz
9292

9393
### How do I install ASCT using uv?
9494

95-
The recommended installation method uses [uv](https://github.com/astral-sh/uv), a fast Python package installer. First, install `uv`:
95+
The recommended method uses [uv](https://github.com/astral-sh/uv), a fast Python package installer. Install `uv`:
9696

9797
```bash
9898
curl -LsSf https://astral.sh/uv/install.sh | sh
@@ -108,7 +108,7 @@ This installs ASCT to `/usr/local/bin` making it available system-wide. Installi
108108

109109
### How do I verify that ASCT is installed?
110110

111-
After installing ASCT, verify the installation by checking the version:
111+
Verify the installation by checking the version:
112112

113113
```bash
114114
asct version
@@ -120,19 +120,19 @@ The output is similar to:
120120
ASCT 0.4.2+3b955c2
121121
```
122122

123-
You can also display the help information:
123+
Display the help information:
124124

125125
```bash
126126
asct --help
127127
```
128128

129-
The output displays available commands and benchmarks.
129+
This displays available commands and benchmarks.
130130

131131
## How do I use ASCT?
132132

133133
ASCT provides several commands for benchmarking and system analysis, including `run`, `system-info`, `list`, `diff`, and `sysreg`.
134134

135-
Some benchmarks require `sudo` or root privileges to configure huge pages and access certain system information. You can run ASCT without `sudo`, but some benchmarks might be unavailable or limited in functionality.
135+
Some benchmarks require `sudo` or root privileges to configure huge pages and access certain system information. You can run ASCT without `sudo`, but some benchmarks can be unavailable or limited in functionality.
136136

137137
### Get system information
138138

@@ -269,7 +269,7 @@ Some of the tests also generate graphs.
269269

270270
An example of a bandwidth graph is shown below:
271271

272-
![Example bandwidth sweep benchmark output showing memory bandwidth measurements across different data sizes on an Arm system, with a graph displaying bandwidth in GB/s on the y-axis and data size in MB on the x-axis](/install-guides/_images/asct-bw.webp)
272+
![Graph showing memory bandwidth sweep benchmark results with data size in MB on x-axis ranging from 0.001 to 1000, and bandwidth in GB/s on y-axis ranging from 0 to 300, displaying multiple colored lines representing different CPU configurations with performance peaks at smaller data sizes and declining bandwidth as data size increases beyond cache levels alt-txt#center](/install-guides/_images/asct-bw.webp "Bandwidth sweep benchmark results")
273273

274274
## How do I uninstall ASCT?
275275

content/install-guides/atp.md

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
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 Total Performance
53

6-
### Optional additional search terms (one per line) to assist in finding the article
74
additional_search_terms:
85
- performance
96
- profiling
@@ -13,20 +10,18 @@ additional_search_terms:
1310
- perf
1411
- top-down
1512

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

15+
author: Pareena Verma
16+
1917
### Link to official documentation
2018
official_docs: https://arm-total-performance.tools.arm.com/
2119

22-
author: Pareena Verma
23-
24-
### PAGE SETUP
25-
weight: 1 # Defines page ordering. Must be 1 for first (or only) page.
26-
tool_install: false # Set to true to be listed in main selection page, else false
27-
multi_install: false # Set to true if first page of multi-page article, else false
28-
multitool_install_part: false # Set to true if a sub-page of a multi-page article, else false
29-
layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles
20+
weight: 1
21+
tool_install: false
22+
multi_install: false
23+
multitool_install_part: false
24+
layout: installtoolsall
3025

3126
build:
3227
list: false # Exclude from .Pages collections and listings
@@ -140,7 +135,7 @@ Verify the installation by checking the version:
140135
./atperf version
141136
```
142137

143-
The output displays the installed version number.
138+
The output shows the installed version number:
144139

145140
```output
146141
Arm Total Performance CLI version: 0.39.0
@@ -176,7 +171,7 @@ Before connecting to an Arm Linux target, ensure SSH key-based authentication is
176171

177172
### Check your existing SSH key
178173

179-
Verify that you can connect to your target using SSH:
174+
Verify that you can connect to your target using SSH. Replace `user` with your username and `target_host` with your target's hostname or IP address:
180175

181176
```bash
182177
ssh user@target_host
@@ -190,7 +185,7 @@ ssh-keygen -y -f ~/.ssh/id_ed25519
190185

191186
If you're prompted for a passphrase, your key is protected with one. ATP doesn't support SSH keys with passphrases, so you need to create a separate key without a passphrase for ATP.
192187

193-
### Create a passphrase-free key for ATP (if needed)
188+
## Create a passphrase-free key for ATP (if needed)
194189

195190
If your existing SSH key has a passphrase, generate a new key specifically for ATP:
196191

@@ -212,9 +207,9 @@ If your existing key is in the default location (`~/.ssh/id_ed25519` or `~/.ssh/
212207
ssh-copy-id -i ~/.ssh/atp_key.pub user@target_host
213208
```
214209

215-
You can now use `~/.ssh/atp_key` as the private key when configuring ATP's target connection.
210+
You can now use `~/.ssh/atp_key` as the private key when configuring the ATP target connection.
216211

217-
### Enable passwordless sudo on the target
212+
## Enable passwordless sudo on the target
218213

219214
ATP needs to run commands with elevated privileges on the target system. Because ATP cannot enter sudo passwords interactively, configure passwordless sudo access.
220215

@@ -238,7 +233,7 @@ After installing ATP and preparing your target, you can connect using either the
238233

239234
### Connect using the ATP GUI
240235

241-
The GUI is typically used on Windows and macOS hosts, though it's also available on Linux.
236+
Use the GUI on Windows and macOS hosts, though you can also run it on Linux.
242237

243238
Open the ATP application.
244239

@@ -248,24 +243,25 @@ Select **Add Target**.
248243

249244
In the **Configure Target** form, provide the following details:
250245

251-
* **Host**: The hostname or IP address of the target machine
252-
* **Name**: A descriptive name for the target
253-
* **Port**: The SSH port number (default is 22)
254-
* **User**: The username for SSH connection
255-
* **SSH Private Key**: Choose **Automatically Detect Key** or **Select Key Manually**
246+
* **Host**: the hostname or IP address of the target machine
247+
* **Name**: a descriptive name for the target
248+
* **Port**: the SSH port number (default is 22)
249+
* **User**: the username for SSH connection
250+
* **SSH Private Key**: choose **Automatically Detect Key** or **Select Key Manually**
256251
* For manual selection, enter the path to your private key (usually `~/.ssh/id_rsa` or `~/.ssh/id_ed25519`)
257252
* **Host Key Verification**: Choose **Strict** (recommended) or **Ignore**
258253
* Strict mode verifies the server identity using your `~/.ssh/known_hosts` file
259254

260-
![ATP target configuration example #center](_images/atp-target-config.png)
255+
![ATP target configuration form displaying input fields including Host with IP address 192.168.1.10, Name field for descriptive target identifier, Port field set to 22, User field for SSH username, SSH Private Key section with radio buttons for Automatically Detect Key and Select Key Manually options, and Host Key Verification dropdown menu set to Strict mode with explanation text about verifying server identity using known_hosts file alt-txt#center](/install-guides/_images/atp-target-config.png "Configure Target form with connection settings")
256+
261257

262258
Select **Add Target**.
263259

264260
The target appears in the targets list and is ready for profiling.
265261

266262
You can select the **Test Connection** button to verify your connection to the ATP Linux target is successful.
267263

268-
![ATP connection test #center](_images/atp-connection-test.png)
264+
![ATP graphical interface displaying connection test results with green checkmark icon indicating success, target name my-target shown in header, host IP address 192.168.1.10 listed below, connection status field showing Connected in green text, and blue Test Connection button at bottom of panel#center](/install-guides/_images/atp-connection-test.png "Successful ATP target connection test")
269265

270266
#### Configure jump nodes (optional)
271267

@@ -310,7 +306,7 @@ atperf --help
310306

311307
If your target is the same machine where you installed ATP (the host machine itself), ATP automatically provides a built-in `localhost` target. You don't need to configure authentication, SSH keys, or host verification for local profiling.
312308

313-
Verify the localhost target is available:
309+
Verify the localhost target is available by listing all configured targets:
314310

315311
```bash
316312
atperf target list
@@ -328,7 +324,7 @@ Your local machine is now ready to use as a target. Specify `--target=localhost`
328324

329325
#### Add a remote target
330326

331-
To profile a workload on a remote machine, add it as a target using the standard syntax:
327+
To profile a workload on a remote machine, add it as a target using the standard syntax. This command registers the remote system with ATP:
332328

333329
```bash
334330
atperf target add <user>@<host>:<port>:<private_ssh_key_path>
@@ -452,11 +448,11 @@ atperf target remove my-target
452448

453449
To remove ATP from your system, use the appropriate method for your platform:
454450

455-
**Windows**: Open **Settings** > **Apps**, find **Arm Total Performance**, and select **Uninstall**.
451+
* For Windows, open **Settings** > **Apps**, find **Arm Total Performance**, and select **Uninstall**.
456452

457-
**macOS**: Drag the Arm Total Performance application from **Applications** to the **Trash**.
453+
* For macOS, drag the Arm Total Performance application from **Applications** to the **Trash**.
458454

459-
**Linux**: Remove the package:
455+
* For Linux, remove the package:
460456

461457
```bash
462458
sudo apt remove arm-total-performance

content/learning-paths/cross-platform/_example-learning-path/questions.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,6 @@ weight: 11
66
layout: "learningpathall"
77
---
88

9-
### Why is the search box missing on the home page?
10-
11-
The search index is not automatically generated, but you can add it to enable the search box.
12-
13-
Refer to the information about the search box in the [Learning Path setup](/learning-paths/cross-platform/_example-learning-path/setup/#search) section.
14-
159
### Why are my Learning Path pages in the wrong order?
1610

1711
Each markdown file has a value called weight.
Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,31 @@
11
---
2-
title: Understanding Offline Voice Assistants
2+
title: Learn about offline voice assistants
33
weight: 2
44

55
### FIXED, DO NOT MODIFY
66
layout: learningpathall
77
---
88

9-
## Why Build an Offline Voice Assistant?
9+
## Why build an offline voice assistant?
1010

1111
Voice-based AI assistants are becoming essential in customer support, productivity tools, and embedded interfaces. For example, a retail kiosk might need to answer product-related questions verbally without relying on internet access. However, many of these systems depend heavily on cloud services for speech recognition and language understanding, raising concerns around latency, cost, and data privacy.
1212

1313
In addition, a healthcare terminal or legal consultation assistant may need to handle voice queries involving sensitive personal information, where sending audio data to the cloud would violate privacy requirements. Running your voice assistant entirely offline solves these problems.
1414

1515
You avoid unpredictable latency caused by network fluctuations, prevent sensitive voice data from leaving the local machine, and eliminate recurring API costs that make large-scale deployment expensive. It also boosts trust for on-device deployments and compliance-sensitive industries.
1616

17-
By combining local speech-to-text (STT) with a locally hosted large language model (LLM), you gain full control over the pipeline and eliminate API dependencies. This gives you full control to experiment, customize, and scalewithout relying on external APIs.
17+
By combining local speech-to-text (STT) with a locally hosted large language model (LLM), you gain complete control over the pipeline and eliminate API dependencies. You can experiment, customize, and scale without relying on external services.
1818

19-
## Common Development Challenges:
19+
## What are some common development challenges?
2020

21-
While the benefits are clear, building a local voice assistant involves several engineering challenges:
21+
While the benefits are clear, building a local voice assistant involves several engineering challenges.
2222

23-
- Managing audio stream segmentation and speech detection in real-time: It's hard to reliably identify when the user starts and stops speaking, especially with natural pauses and background noise.
24-
25-
- Avoiding latency or misfires in STT/LLM integration: Timing mismatches can cause delayed responses or repeated input, reducing the conversational quality.
26-
27-
- Keeping the pipeline responsive on local hardware without overloading resources: You need to carefully balance CPU/GPU workloads so that inference doesn't block audio capture or processing.
23+
Real-time audio segmentation requires reliably identifying when users start and stop speaking, accounting for natural pauses and background noise. Timing mismatches between STT and LLM components can cause delayed responses or repeated input, reducing conversational quality. You also need to balance CPU/GPU workloads to keep the pipeline responsive without overloading resources or blocking audio capture.
2824

2925
## Why use Arm and DGX Spark?
3026

31-
Arm-powered platforms like [DGX Spark](https://www.nvidia.com/en-gb/products/workstations/dgx-spark/) allow efficient parallelism: use CPU cores for audio preprocessing and whisper inference, while offloading LLM reasoning to powerful GPUs. This architecture balances throughput and energy efficiency—ideal for private, on-prem AI workloads. Check this [learning path](https://learn.arm.com/learning-paths/laptops-and-desktops/dgx_spark_llamacpp/1_gb10_introduction/) to understand the CPU and GPU architecture of DGX Spark.
27+
Arm-powered platforms like [DGX Spark](https://www.nvidia.com/en-gb/products/workstations/dgx-spark/) allow efficient parallelism: use CPU cores for audio preprocessing and whisper inference, while offloading LLM reasoning to powerful GPUs. This architecture balances throughput and energy efficiency—ideal for private, on-premises AI workloads. To understand the CPU and GPU architecture of DGX Spark, refer to [Unlock quantized LLM performance on Arm-based NVIDIA DGX Spark](/learning-paths/laptops-and-desktops/dgx_spark_llamacpp/).
3228

33-
DGX Spark also supports standard USB interfaces, making it easy to connect consumer-grade microphones for development or deployment. This makes it viable not just for data center use, but also for edge inference or desktop-style prototyping.
29+
DGX Spark also supports standard USB interfaces, making it easy to connect consumer-grade microphones for development or deployment. This makes it viable for edge inference and desktop-style prototyping.
3430

3531
In this Learning Path, you’ll build a complete, offline voice chatbot prototype using PyAudio, faster-whisper, and vLLM on an Arm-based system—resulting in a fully functional assistant that runs entirely on local hardware with no internet dependency.

0 commit comments

Comments
 (0)