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/cross-platform/deploy-containerized-workloads-with-topo/_index.md
+13-16Lines changed: 13 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,17 +1,17 @@
1
1
---
2
2
title: Deploy containerized workloads to Arm-based Linux targets with Topo
3
3
4
-
description: Use Topo to detect Arm processor capabilities on a target device, select a compatible container template, and deploy containerized workloads to Arm-based Linux targets over SSH using the CLI or VS Code extension.
4
+
description: Use Topo to detect Arm processor capabilities on a target device, select a compatible Topo Project, and deploy containerized workloads to Arm-based Linux targets over SSH using the CLI or VS Code extension.
5
5
6
6
minutes_to_complete: 30
7
7
8
8
who_is_this_for: This is an introductory topic for embedded, edge, and cloud software developers who want to deploy containerized workloads to Arm-based Linux targets using Topo.
9
9
10
10
learning_objectives:
11
11
- Install Topo and verify that the host and target environments are ready for deployment
12
-
- Run health checks and generate a target description to identify compatible Arm processor features and templates
13
-
- Clone a Topo template and deploy a containerized workload to an Arm-based Linux target
14
-
- (Optional) Use the Topo VS Code extension to run the same target, template, and deployment workflow from Visual Studio Code
12
+
- Run health checks and list compatible projects for your target
13
+
- Clone a Topo Project and deploy a containerized workload to an Arm-based Linux target
14
+
- (Optional) Use the Topo VS Code extension to run the same target, project, and deployment workflow from Visual Studio Code
15
15
- (Optional) Deploy firmware and applications to heterogeneous Cortex-A + Cortex-M devices using remoteproc-runtime
16
16
17
17
prerequisites:
@@ -39,9 +39,8 @@ generated_summary_faq:
39
39
summary: >-
40
40
You'll use Topo to deploy containerized workloads to Arm-based Linux targets
41
41
over SSH. You'll install Topo on a host machine, run a health check to validate host and target
42
-
readiness, and generate a target description so Topo can detect Arm CPU features such as Neon
43
-
and SVE and match compatible templates. You'll then clone a starter template using an
44
-
LLM chatbot example, accept default build prompts, and deploy. Topo builds the container image
42
+
readiness, and list projects compatible with the target's Arm CPU features and hardware capabilities.
43
+
You'll then clone a starter project using an LLM chat example and deploy. Topo builds the container image
45
44
on the host, transfers it to the target, and starts the services on the target; it can also
46
45
build directly on the target. You'll also see how to run the same workflow using
47
46
the Topo Visual Studio Code extension.
@@ -55,16 +54,14 @@ generated_summary_faq:
55
54
answer: >-
56
55
Pass `--target` to the Topo command or set `TOPO_TARGET` in your environment. The health check
57
56
output prompts you when a target is not specified.
58
-
- question: How does Topo determine if a template is compatible with my Arm target?
57
+
- question: How does Topo determine if a project is compatible with my Arm target?
59
58
answer: >-
60
59
Topo detects hardware capabilities on the target, including Arm CPU features such as Neon and
61
-
SVE, and uses them to identify compatible templates. Generating a target description helps
62
-
guide template selection.
63
-
- question: What should I expect when cloning the example template and responding to prompts?
60
+
SVE, and uses them to identify compatible projects when you run `topo projects --target`.
61
+
- question: What should I expect when cloning the example project and responding to prompts?
64
62
answer: >-
65
-
Clone the LLM chatbot template with `topo clone` and press Enter to accept the default build
66
-
arguments. The default configuration uses the `bartowski/Qwen_Qwen3.5-0.8B-GGUF` model and
67
-
builds with Neon optimizations.
63
+
Clone the LLM chat project with `topo clone`. The default configuration uses the
64
+
`unsloth/SmolLM2-135M-Instruct-GGUF` model and can be deployed immediately.
68
65
- question: Where are images built and what happens after deployment starts?
69
66
answer: >-
70
67
Topo builds container images on the host, transfers them to the target over SSH, and starts
Run the health command again to verify installation. Topo uses `remoteproc-runtime` internally when deploying to heterogeneous devices.
133
133
134
134
135
-
## Generate a target description
135
+
## Understand target compatibility
136
136
137
-
Ask Topo to probe your target and output a description of the hardware in your terminal.
137
+
Topo probes the target during health checks and project listing. It uses target details such as the CPU architecture, Arm CPU features, memory, and remote processor support to determine which Topo Projects are compatible.
138
138
139
-
On your host device, run:
139
+
The hardware feature list mirrors CPU feature flags reported by the Linux kernel. Key flags include `fp` (hardware floating-point), `asimd` (Neon Advanced SIMD — 128-bit vector acceleration), and `aes` (hardware AES encryption). Topo uses this information to determine which projects are compatible with your target.
140
140
141
-
```bash
142
-
topo describe --target user@my-target
143
-
```
144
-
145
-
The output captures details such as CPU architecture features, which Topo uses to select compatible templates.
146
-
147
-
The following is an example snippet from an AWS Graviton-based instance, showing the main processor and its features, an absence of any remote or auxiliary processors, and the total memory:
148
-
149
-
```output
150
-
host:
151
-
- model: Neoverse-V1
152
-
cores: 4
153
-
features:
154
-
- fp
155
-
- asimd
156
-
- evtstrm
157
-
- aes
158
-
...
159
-
remoteprocs: []
160
-
totalmemory_kb: 16044280
161
-
```
162
-
163
-
The `features` list mirrors the CPU feature flags reported by the Linux kernel. Key flags include `fp` (hardware floating-point), `asimd` (Neon Advanced SIMD — 128-bit vector acceleration), and `aes` (hardware AES encryption). Topo uses this feature list to determine which templates are compatible with your target.
141
+
## List projects compatible with your target
164
142
165
-
## List templates compatible with your target
143
+
Because Topo can identify the capabilities of your target device, it can also advise on the compatibility of projects.
166
144
167
-
Because Topo can identify the capabilities of your target device, it can also advise on the compatibility of templates.
168
-
169
-
Use the following command on your host device to list compatible templates:
145
+
Use the following command on your host device to list compatible projects:
170
146
171
147
```bash
172
-
topo templates --target user@my-target
148
+
topo projects --target user@my-target
173
149
```
174
150
175
151
The following is an example output for an AWS Graviton-based instance:
176
152
177
153
```output
178
-
✅ topo-welcome | https://github.com/Arm-Examples/topo-welcome.git | main
This demo shows real hardware acceleration through three C++ services
218
-
compiled with different architecture flags, processing the same box blur
219
-
algorithm on images. Performance differences are measured in real-time
220
-
and displayed in an interactive web dashboard.
221
-
222
-
Perfect for demonstrating to non-technical audiences the concrete benefits
223
-
of SIMD optimizations, with visual results and quantified speedups.
224
195
```
225
196
226
-
In this example, `topo-lightbulb-moment` is marked as incompatible, because it requires an SoC with both a Cortex-A and a Cortex-M. The instance contains Arm Neoverse cores only. All other templates are marked as compatible. You might see different results depending on the target hardware you use.
197
+
When you provide `--target`, Topo marks each project according to compatibility with your target. For example, `topo-lightbulb-moment` requires `remoteproc-runtime`, so it is incompatible with targets that don't provide a supported remote processor environment. You might see different results depending on the target hardware you use.
227
198
228
199
## What you've accomplished and what's next
229
200
230
-
You have now verified your host and target environments, resolved any missing dependencies, and optionally enabled heterogeneous deployment. You also generated a description of your target's hardware features and identified compatible templates. Next, you'll choose a template containerized workload and deploy it to your target.
201
+
You have now verified your host and target environments, resolved any missing dependencies, and optionally enabled heterogeneous deployment. You also identified compatible projects for your target. Next, you'll choose a containerized workload project and deploy it to your target.
0 commit comments