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
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`:
96
96
97
97
```bash
98
98
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
108
108
109
109
### How do I verify that ASCT is installed?
110
110
111
-
After installing ASCT, verify the installation by checking the version:
111
+
Verify the installation by checking the version:
112
112
113
113
```bash
114
114
asct version
@@ -120,19 +120,19 @@ The output is similar to:
120
120
ASCT 0.4.2+3b955c2
121
121
```
122
122
123
-
You can also display the help information:
123
+
Display the help information:
124
124
125
125
```bash
126
126
asct --help
127
127
```
128
128
129
-
The output displays available commands and benchmarks.
129
+
This displays available commands and benchmarks.
130
130
131
131
## How do I use ASCT?
132
132
133
133
ASCT provides several commands for benchmarking and system analysis, including `run`, `system-info`, `list`, `diff`, and `sysreg`.
134
134
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.
136
136
137
137
### Get system information
138
138
@@ -269,7 +269,7 @@ Some of the tests also generate graphs.
269
269
270
270
An example of a bandwidth graph is shown below:
271
271
272
-

272
+

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.
192
187
193
-
###Create a passphrase-free key for ATP (if needed)
188
+
## Create a passphrase-free key for ATP (if needed)
194
189
195
190
If your existing SSH key has a passphrase, generate a new key specifically for ATP:
196
191
@@ -212,9 +207,9 @@ If your existing key is in the default location (`~/.ssh/id_ed25519` or `~/.ssh/
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.
216
211
217
-
###Enable passwordless sudo on the target
212
+
## Enable passwordless sudo on the target
218
213
219
214
ATP needs to run commands with elevated privileges on the target system. Because ATP cannot enter sudo passwords interactively, configure passwordless sudo access.
220
215
@@ -238,7 +233,7 @@ After installing ATP and preparing your target, you can connect using either the
238
233
239
234
### Connect using the ATP GUI
240
235
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.
242
237
243
238
Open the ATP application.
244
239
@@ -248,24 +243,25 @@ Select **Add Target**.
248
243
249
244
In the **Configure Target** form, provide the following details:
250
245
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**
256
251
* For manual selection, enter the path to your private key (usually `~/.ssh/id_rsa` or `~/.ssh/id_ed25519`)
257
252
***Host Key Verification**: Choose **Strict** (recommended) or **Ignore**
258
253
* Strict mode verifies the server identity using your `~/.ssh/known_hosts` file
259
254
260
-

255
+

256
+
261
257
262
258
Select **Add Target**.
263
259
264
260
The target appears in the targets list and is ready for profiling.
265
261
266
262
You can select the **Test Connection** button to verify your connection to the ATP Linux target is successful.
267
263
268
-

264
+

269
265
270
266
#### Configure jump nodes (optional)
271
267
@@ -310,7 +306,7 @@ atperf --help
310
306
311
307
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.
312
308
313
-
Verify the localhost target is available:
309
+
Verify the localhost target is available by listing all configured targets:
314
310
315
311
```bash
316
312
atperf target list
@@ -328,7 +324,7 @@ Your local machine is now ready to use as a target. Specify `--target=localhost`
328
324
329
325
#### Add a remote target
330
326
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:
Copy file name to clipboardExpand all lines: content/learning-paths/cross-platform/_example-learning-path/questions.md
-6Lines changed: 0 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,12 +6,6 @@ weight: 11
6
6
layout: "learningpathall"
7
7
---
8
8
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
-
15
9
### Why are my Learning Path pages in the wrong order?
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.
12
12
13
13
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.
14
14
15
15
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.
16
16
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 scale—without 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 scalewithout relying on external services.
18
18
19
-
## Common Development Challenges:
19
+
## What are some common development challenges?
20
20
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.
22
22
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.
28
24
29
25
## Why use Arm and DGX Spark?
30
26
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/).
32
28
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.
34
30
35
31
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