diff --git a/.wordlist.txt b/.wordlist.txt index ea06868f72..e88832fe22 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -6313,4 +6313,15 @@ microVM microVMs microvm npx -sbx \ No newline at end of file +sbx +IndexByte +Mosquitto +SplitN +burstable +faqs +mqtt +perfrunbook +pprof +prj +reflashing +unwinder \ No newline at end of file diff --git a/archetypes/learning-path/_index.md b/archetypes/learning-path/_index.md index ec8f0e4589..61c7447549 100644 --- a/archetypes/learning-path/_index.md +++ b/archetypes/learning-path/_index.md @@ -15,6 +15,16 @@ prerequisites: author: PLACEHOLDER NAME +# New Learning Paths are opted in for the next manual generated summary/FAQ run. +# The generator resets this to false after a successful write. +generate_summary_faq: true + +# Optional one-shot controls: set either field to true to regenerate just that +# generated section the next time the summary/FAQ tool runs. The tool resets +# them to false after a successful write. +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: PLACEHOLDER SKILLLEVEL subjects: PLACEHOLDER SUBJECT @@ -27,8 +37,6 @@ tools_software_languages: operatingsystems: - PLACEHOLDER OS G - - further_reading: - resource: title: PLACEHOLDER MANUAL @@ -43,8 +51,6 @@ further_reading: link: PLACEHOLDER GENERAL WEBSITE LINK type: website - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly diff --git a/assets/contributors.csv b/assets/contributors.csv index 0dee5589bd..7ea5309e90 100644 --- a/assets/contributors.csv +++ b/assets/contributors.csv @@ -125,3 +125,4 @@ Akash Malik,Arm,akashmalik19973,akash-malik-a65bab219,, Matt Cossins,Arm,matt-cossins,,, Sue Wu,Arm,,,, Sabika Tasneem,Memgraph,,,, +Tomas Agustin Gonzalez Orlando,Arm,tgonzalezorlandoarm,tgorlando,, diff --git a/assets/css/content-pages.css b/assets/css/content-pages.css index 6e95ef59d9..88b8789908 100644 --- a/assets/css/content-pages.css +++ b/assets/css/content-pages.css @@ -261,6 +261,80 @@ html[theme='dark'] .incorrect-explain {color: #e86868} /* 27% lighter than arm's color: var(--arm-green); } + + +/* Generated AI-assisted summary/FAQ block +*******************************************************************/ +.generated-summary-faq__heading { + align-items: center; + display: flex; + flex-wrap: wrap; + column-gap: 12px; + margin-bottom: 16px; + row-gap: 8px; +} + +.generated-summary-faq__heading h3 { + line-height: 1.1; + margin: 0; +} + +.generated-summary-faq__assist { + align-items: center; + display: inline-flex; + gap: 6px; +} + +.generated-summary-faq__assist ads-modal { + display: inline-flex; +} + +ads-tag.generated-summary-faq__ai-tag { + --ads-tag-background-color: transparent; + --ads-tag-background-color-hover: transparent; + --ads-tag-border-color: 1px solid var(--arm-web-safe-blue); + --ads-tag-border-color-hover: 1px solid var(--arm-green); + --ads-tag-color: var(--arm-web-safe-blue); + --ads-tag-color-hover: var(--arm-green); +} + +html[theme='dark'] ads-tag.generated-summary-faq__ai-tag { + --ads-tag-border-color: 1px solid var(--arm-light-blue); + --ads-tag-border-color-hover: 1px solid var(--arm-green); + --ads-tag-color: var(--arm-light-blue); + --ads-tag-color-hover: var(--arm-green); +} + +ads-button.generated-summary-faq__info { + --ads-button-color: var(--arm-web-safe-blue); + --ads-button-color-hover: var(--arm-green); + --ads-button-border-color: var(--arm-web-safe-blue); + --ads-button-border-color-hover: var(--arm-green); +} + +html[theme='dark'] ads-button.generated-summary-faq__info { + --ads-button-color: var(--arm-light-blue); + --ads-button-color-hover: var(--arm-green); + --ads-button-border-color: var(--arm-light-blue); + --ads-button-border-color-hover: var(--arm-green); +} + +ads-expansion-panel.generated-summary-faq__panel { + --ads-expansion-panel-border-color: var(--arm-light-grey); + --ads-expansion-panel-content-background-color: transparent; + --ads-expansion-panel-toggle-background-color: transparent; + --ads-expansion-panel-toggle-background-color-hover: transparent; + --ads-expansion-panel-toggle-icon-color-hover: var(--arm-green); +} + +html[theme='dark'] ads-expansion-panel.generated-summary-faq__panel { + --ads-expansion-panel-border-color: rgba(163, 168, 174, 0.25); + --ads-expansion-panel-content-background-color: transparent; + --ads-expansion-panel-toggle-background-color: transparent; + --ads-expansion-panel-toggle-background-color-hover: transparent; + --ads-expansion-panel-toggle-icon-color-hover: var(--arm-green); +} + .share-icon { width: 36px; height: 36px; diff --git a/config.toml b/config.toml index afd889a99a..c8c86c9e20 100644 --- a/config.toml +++ b/config.toml @@ -17,6 +17,7 @@ cloudFrontDistributionID = "EAMKPMDBM18II" name = "prod" URL = "s3://arm-learning-paths-prod?region=us-east-1" cloudFrontDistributionID = "E2IA2AC83UE2VJ" +exclude = "md/**" [markup] [markup.goldmark] diff --git a/content/install-guides/sbx.md b/content/install-guides/sbx.md index 01a8d8f6b7..c592312548 100644 --- a/content/install-guides/sbx.md +++ b/content/install-guides/sbx.md @@ -1,7 +1,7 @@ --- title: Docker Sandboxes (sbx) -description: Install Docker Sandboxes (sbx) on macOS with Apple Silicon to run AI coding agents in isolated Arm Linux microVMs using Apple's virtualization framework. +description: Install Docker Sandboxes (sbx) on macOS with Apple Silicon or Arm Linux to run AI coding agents in isolated microVMs. minutes_to_complete: 10 @@ -13,7 +13,6 @@ additional_search_terms: - sandbox - microvm - containers -- apple silicon author: Jason Andrews @@ -30,21 +29,35 @@ layout: installtoolsall Docker Sandboxes (`sbx`) is a standalone CLI from Docker for running AI coding agents in isolated microVMs. Each sandbox gets its own filesystem, network, and Docker daemon, so agents can install packages, modify files, and run containers without touching your host system. {{% notice Note %}} -`sbx` is not available on Arm Linux. +Arm Linux support is available in `sbx` version 0.33 and later. {{% /notice %}} On macOS with Apple Silicon, `sbx` uses Apple's virtualization framework to launch Arm Linux (Ubuntu) microVMs. You don't need Docker Desktop. +On Arm Linux, `sbx` uses the KVM hypervisor to launch microVMs. KVM requires bare metal and does not work on virtual machines. + ## Before you begin +### macOS prerequisites + You need: - A Mac with Apple Silicon (M1 or later) running macOS Sonoma (version 14) or later. -- A [Docker Hub](https://hub.docker.com/) account to authenticate `sbx`. - [Homebrew](https://brew.sh/) installed. +- A [Docker Hub](https://hub.docker.com/) account to authenticate `sbx`. + +### Arm Linux prerequisites + +You need: + +- An Arm Linux system running Ubuntu 24.04 LTS or later on aarch64 architecture. +- Kernel-based Virtual Machine (KVM) enabled on bare metal hardware. +- A [Docker Hub](https://hub.docker.com/) account to authenticate `sbx`. ## Install the sbx CLI +### macOS installation + Install `sbx` using Homebrew: ```bash @@ -53,6 +66,76 @@ brew install docker/tap/sbx Homebrew installs the `sbx` binary at `/opt/homebrew/bin/sbx`. +### Arm Linux installation + +On Arm Linux, `sbx` requires KVM acceleration. KVM does not typically work on virtual machines. It requires bare metal. + +Install and run the `kvm-ok` command to confirm KVM is available. + +Install `kvm-ok` on Debian-based Linux distributions: + +```bash +sudo apt install cpu-checker -y +``` + +To check if KVM is available, run: + +```console +sudo kvm-ok +``` + +If KVM is available, the output is similar to: + +```output +INFO: /dev/kvm exists +KVM acceleration can be used +``` + +If KVM is not available, the output is similar to: + +```output +INFO: /dev/kvm does not exist +HINT: sudo modprobe kvm +INFO: For more detailed results, you should run this as root +HINT: sudo /usr/sbin/kvm-ok +``` + +After KVM is available, install `sbx` using the appropriate .deb package for your Ubuntu version. First, check your Ubuntu version: + +```bash +grep VERSION_ID /etc/os-release +``` + +{{% notice Note %}} +The following commands use Docker Sandboxes version 0.33.0. The same commands work with other versions. Replace the file used in these steps with the file for your version of choice. To find the latest release and available Ubuntu versions, see the [sbx releases page](https://github.com/docker/sbx-releases/releases). +{{% /notice %}} + +For Ubuntu 26.04, download and install the .deb package: + +```bash +wget https://github.com/docker/sbx-releases/releases/download/v0.33.0/DockerSandboxes-linux-arm64-ubuntu2604.deb +sudo apt install ./DockerSandboxes-linux-arm64-ubuntu2604.deb +``` + +For Ubuntu 24.04, download and install the .deb package: + +```bash +wget https://github.com/docker/sbx-releases/releases/download/v0.33.0/DockerSandboxes-linux-arm64-ubuntu2404.deb +sudo apt install ./DockerSandboxes-linux-arm64-ubuntu2404.deb +``` + +Verify the installation: + +```bash +which sbx +``` + +The output is similar to: + +```output +/usr/bin/sbx +``` + ## Verify the installation After installing the CLI, verify that the installation was successful. @@ -66,13 +149,13 @@ sbx version ``` {{% notice Note %}} -The following output shows the version at the time this guide was written. Homebrew installs the latest available version. To find the latest release, see the [sbx releases page](https://github.com/docker/sbx-releases/releases). +The following output shows the version at the time this guide was written. To find the latest release, see the [sbx releases page](https://github.com/docker/sbx-releases/releases). {{% /notice %}} The output is similar to: ```output -sbx version: v0.32.0 55580366449bcfebfc1787b9944284cf64c856d7 +sbx version: v0.33.0 d7da69cb30eb3000c4d4ef0c848ffe84f32058bf ``` ### Authenticate with Docker Hub @@ -94,6 +177,7 @@ sbx run shell ``` This launches a bare Arm Linux microVM with a shell prompt. No AI agent runs inside it. + On your first run, the CLI will ask you to select a network policy: - `Open`: allows all network access from within the sandbox. @@ -140,7 +224,7 @@ UBUNTU_CODENAME=resolute LOGO=ubuntu-logo ``` -This confirms that the shell sandbox is running Arm Linux (Ubuntu on aarch64) inside the microVM. +This confirms that the shell sandbox is running Arm Linux (Ubuntu on aarch64) inside the microVM. Keep the shell running to test management commands in another terminal. @@ -156,22 +240,22 @@ The output is similar to: ```output SANDBOX AGENT STATUS PORTS WORKSPACE -shell-arm-learning-paths shell stopped /Users/arm-learning-paths +shell-arm-learning-paths shell stopped ~/my-project ``` -Copy a file from your Mac into the sandbox. For example: +Copy a file from your host into the sandbox. For example: ```bash sbx cp ./myfile.txt :/home/user/myfile.txt ``` -Copy a file from a sandbox back to your Mac. For example: +Copy a file from a sandbox back to your host. For example: ```bash sbx cp :/home/user/output.txt ./output.txt ``` -## Clean up +## Clean up Stop the running shell sandbox using its name: @@ -191,7 +275,7 @@ You'll be prompted to confirm whether you want to remove the sandbox. Answer `y` ## Next steps -You're now ready to use Docker Sandboxes to run AI agents in isolated microVMs on macOS. +You're now ready to use Docker Sandboxes to run AI agents in isolated microVMs on macOS or Arm Linux. To launch an agent sandbox, provide the name of the agent sandbox in the run command. For example, to launch a Claude sandbox: diff --git a/content/learning-paths/automotive/intro/_index.md b/content/learning-paths/automotive/intro/_index.md index 20aa7cb6da..d7362086c8 100644 --- a/content/learning-paths/automotive/intro/_index.md +++ b/content/learning-paths/automotive/intro/_index.md @@ -15,9 +15,12 @@ prerequisites: draft: true cascade: draft: true - author: Jason Andrews +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -29,7 +32,6 @@ operatingsystems: - RTOS tools_software_languages: - further_reading: - resource: title: Raspberry Pi Pico @@ -40,7 +42,6 @@ further_reading: link: https://microbit.org/ type: website - weight: 1 layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. diff --git a/content/learning-paths/automotive/openadkit1_container/_index.md b/content/learning-paths/automotive/openadkit1_container/_index.md index cb0edace8b..dd2af119e6 100644 --- a/content/learning-paths/automotive/openadkit1_container/_index.md +++ b/content/learning-paths/automotive/openadkit1_container/_index.md @@ -17,6 +17,10 @@ prerequisites: author: Odin Shen +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Containers and Virtualization @@ -29,7 +33,6 @@ tools_software_languages: operatingsystems: - Linux - further_reading: - resource: title: Autoware OpenAD Kit demo project @@ -48,11 +51,10 @@ further_reading: link: https://docs.ros.org/en/humble/ type: documentation - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/automotive/openadkit2_safetyisolation/_index.md b/content/learning-paths/automotive/openadkit2_safetyisolation/_index.md index 32e15dd30a..0bbae6a5c4 100644 --- a/content/learning-paths/automotive/openadkit2_safetyisolation/_index.md +++ b/content/learning-paths/automotive/openadkit2_safetyisolation/_index.md @@ -20,6 +20,10 @@ author: - Odin Shen - Julien Jayat +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Containers and Virtualization @@ -66,8 +70,6 @@ further_reading: title: Eclipse Cyclone DDS link: https://github.com/eclipse-cyclonedds/cyclonedds type: documentation - - ### FIXED, DO NOT MODIFY # ================================================================================ @@ -75,3 +77,4 @@ weight: 1 # _index.md always has weight of 1 to order corr layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/automotive/system76-auto/_index.md b/content/learning-paths/automotive/system76-auto/_index.md index fc1e11f441..6985d98f30 100644 --- a/content/learning-paths/automotive/system76-auto/_index.md +++ b/content/learning-paths/automotive/system76-auto/_index.md @@ -16,6 +16,10 @@ prerequisites: author: Jason Andrews +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Containers and Virtualization @@ -39,10 +43,10 @@ further_reading: link: https://parsec.community/ type: documentation - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/automotive/zenacssdebug/_index.md b/content/learning-paths/automotive/zenacssdebug/_index.md index 63268f8479..84d35f8ca3 100644 --- a/content/learning-paths/automotive/zenacssdebug/_index.md +++ b/content/learning-paths/automotive/zenacssdebug/_index.md @@ -20,6 +20,10 @@ prerequisites: author: Ronan Synnott +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -43,10 +47,10 @@ further_reading: link: https://developer.arm.com/Tools%20and%20Software/Arm%20Development%20Studio type: website - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/_example-learning-path/_index.md b/content/learning-paths/cross-platform/_example-learning-path/_index.md index 5603e466b2..c9e6588889 100644 --- a/content/learning-paths/cross-platform/_example-learning-path/_index.md +++ b/content/learning-paths/cross-platform/_example-learning-path/_index.md @@ -18,6 +18,10 @@ prerequisites: author: Zach Lasiuk +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: @@ -27,17 +31,16 @@ operatingsystems: tools_software_languages: - Hugo - further_reading: - resource: title: GitHub Project Repository link: https://github.com/ArmDeveloperEcosystem/arm-learning-paths type: website - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/adler32/_index.md b/content/learning-paths/cross-platform/adler32/_index.md index ebf0fcc4fb..1dc71413ff 100644 --- a/content/learning-paths/cross-platform/adler32/_index.md +++ b/content/learning-paths/cross-platform/adler32/_index.md @@ -16,6 +16,10 @@ prerequisites: author: Jason Andrews +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -34,7 +38,6 @@ shared_between: - laptops-and-desktops - mobile-graphics-and-gaming - further_reading: - resource: title: Arm C Language Extensions @@ -49,10 +52,10 @@ further_reading: link: https://developer.arm.com/documentation/den0018/a type: Documentation - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/automate-mcp-with-testcontainers/_index.md b/content/learning-paths/cross-platform/automate-mcp-with-testcontainers/_index.md index 33c689e7c4..66f28592d3 100644 --- a/content/learning-paths/cross-platform/automate-mcp-with-testcontainers/_index.md +++ b/content/learning-paths/cross-platform/automate-mcp-with-testcontainers/_index.md @@ -19,6 +19,10 @@ prerequisites: author: Neethu Elizabeth Simon +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: CI-CD @@ -60,10 +64,10 @@ further_reading: link: https://docs.pytest.org/ type: documentation - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/avh_cicd/_index.md b/content/learning-paths/cross-platform/avh_cicd/_index.md index b222e60628..22b26fcacf 100644 --- a/content/learning-paths/cross-platform/avh_cicd/_index.md +++ b/content/learning-paths/cross-platform/avh_cicd/_index.md @@ -16,6 +16,10 @@ prerequisites: author: Pareena Verma +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: CI-CD @@ -42,10 +46,10 @@ further_reading: link: https://arm-software.github.io/AVH/main/examples/html/GetStarted.html type: documentation - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/avh_cicd2/_index.md b/content/learning-paths/cross-platform/avh_cicd2/_index.md index dbd9e8ca13..7f53e6d0bd 100644 --- a/content/learning-paths/cross-platform/avh_cicd2/_index.md +++ b/content/learning-paths/cross-platform/avh_cicd2/_index.md @@ -17,6 +17,10 @@ prerequisites: author: Pareena Verma +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ##### Tags skilllevels: Advanced subjects: CI-CD @@ -43,11 +47,10 @@ further_reading: link: https://arm-software.github.io/AVH/main/examples/html/GetStarted.html type: documentation - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/aws-greengrass-pacbti-test/_index.md b/content/learning-paths/cross-platform/aws-greengrass-pacbti-test/_index.md index a1b0b86ab4..37bc467da8 100644 --- a/content/learning-paths/cross-platform/aws-greengrass-pacbti-test/_index.md +++ b/content/learning-paths/cross-platform/aws-greengrass-pacbti-test/_index.md @@ -2,7 +2,7 @@ title: Deploy an AWS IoT Greengrass custom component to Arm devices and verify PAC/BTI support description: Learn how to register Arm devices as AWS IoT Greengrass core devices, build and deploy a custom component, and use MQTT to verify PAC/BTI support across Armv8 and Armv9 platforms. - + minutes_to_complete: 30 who_is_this_for: This Learning Path is for IoT and embedded developers who want to deploy and manage components on Arm devices using AWS IoT Greengrass, and verify PAC/BTI security feature support across different Arm platforms. @@ -19,11 +19,14 @@ prerequisites: - An NVIDIA Jetson Thor device running JetPack 7.1 or later - Familiarity with AWS IoT Core and basic cloud concepts - author: - Varun Chari - Doug Anson +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -63,7 +66,6 @@ further_reading: link: https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html type: website - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly diff --git a/content/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/_index.md b/content/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/_index.md index 17803b4371..39cdd15bc6 100644 --- a/content/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/_index.md +++ b/content/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/_index.md @@ -1,6 +1,6 @@ --- title: Build an edge AI Reachy Mini app with Raspberry Pi, MediaPipe, and MuJoCo - + description: Run MediaPipe gesture inference on a Raspberry Pi 5, connect to a Reachy Mini MuJoCo simulation on a development machine, and use a browser dashboard to decide Reachy's fate with a thumbs-up or thumbs-down. minutes_to_complete: 60 @@ -24,6 +24,10 @@ prerequisites: author: Matt Cossins +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: ML @@ -65,8 +69,6 @@ further_reading: link: https://ai.google.dev/edge/mediapipe/solutions/vision/gesture_recognizer type: documentation - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly diff --git a/content/learning-paths/cross-platform/cca_rme/_index.md b/content/learning-paths/cross-platform/cca_rme/_index.md index e951bbc9a9..5782183afe 100644 --- a/content/learning-paths/cross-platform/cca_rme/_index.md +++ b/content/learning-paths/cross-platform/cca_rme/_index.md @@ -17,6 +17,10 @@ prerequisites: author: Ronan Synnott +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -24,7 +28,7 @@ armips: - Neoverse - Cortex-A - Armv9-A - + operatingsystems: - Linux - Android @@ -36,7 +40,6 @@ tools_software_languages: - CCA - Runbook - ### Cross-platform metadata only shared_path: true shared_between: @@ -58,10 +61,10 @@ further_reading: link: https://developer.arm.com/documentation/den0126 type: documentation - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/cpp-loop-size-context/_index.md b/content/learning-paths/cross-platform/cpp-loop-size-context/_index.md index 760e05f318..d42316e52f 100644 --- a/content/learning-paths/cross-platform/cpp-loop-size-context/_index.md +++ b/content/learning-paths/cross-platform/cpp-loop-size-context/_index.md @@ -18,6 +18,10 @@ prerequisites: author: Kieran Hejmadi +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -46,10 +50,10 @@ further_reading: link: https://llvm.org/docs/Vectorizers.html type: documentation - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/create-your-own-topo-templates/_index.md b/content/learning-paths/cross-platform/create-your-own-topo-templates/_index.md index ba340cd48a..5c2ffecec7 100644 --- a/content/learning-paths/cross-platform/create-your-own-topo-templates/_index.md +++ b/content/learning-paths/cross-platform/create-your-own-topo-templates/_index.md @@ -1,6 +1,6 @@ --- title: Create and deploy a custom Topo Template - + description: Understand how to create and modify Topo Templates, allowing you to deploy your projects as containerized workloads to Arm-based Linux targets over SSH. minutes_to_complete: 30 @@ -23,6 +23,10 @@ prerequisites: author: Tomas Agustin Gonzalez Orlando +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Containers and Virtualization @@ -64,7 +68,6 @@ further_reading: link: https://github.com/arm/remoteproc-runtime type: documentation - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly diff --git a/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/_index.md b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/_index.md index 7c2c8ea576..843b93eaea 100644 --- a/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/_index.md +++ b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/_index.md @@ -1,7 +1,7 @@ --- title: Deploy containerized workloads to Arm-based Linux targets with Topo -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. +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. minutes_to_complete: 30 @@ -11,6 +11,7 @@ learning_objectives: - Install Topo and verify that the host and target environments are ready for deployment - Run health checks and generate a target description to identify compatible Arm processor features and templates - Clone a Topo template and deploy a containerized workload to an Arm-based Linux target + - (Optional) Use the Topo VS Code extension to run the same target, template, and deployment workflow from Visual Studio Code - (Optional) Deploy firmware and applications to heterogeneous Cortex-A + Cortex-M devices using remoteproc-runtime prerequisites: @@ -18,10 +19,15 @@ prerequisites: - An Arm-based Linux target accessible over SSH, for example an Arm-based Linux VM, Raspberry Pi, DGX Spark, or NXP i.MX 93 - Docker installed on the host and target. For installation steps, see [Install Docker](/install-guides/docker/). - lscpu installed on the target (pre-installed on most Linux distributions) + - (Optional) Visual Studio Code installed if you want to use the Topo VS Code extension. - Basic familiarity with containers and CLI tools author: Matt Cossins +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Containers and Virtualization @@ -33,6 +39,7 @@ tools_software_languages: - Topo - Docker - SSH + - Visual Studio Code operatingsystems: - Linux - macOS @@ -62,8 +69,10 @@ further_reading: title: remoteproc-runtime link: https://github.com/arm/remoteproc-runtime type: documentation - - + - resource: + title: Topo VS Code extension + link: https://marketplace.visualstudio.com/items?itemName=Arm.topo + type: website ### FIXED, DO NOT MODIFY # ================================================================================ diff --git a/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/deploy-workload.md b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/deploy-workload.md index 3cb3831b1e..931affa1a6 100644 --- a/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/deploy-workload.md +++ b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/deploy-workload.md @@ -178,8 +178,8 @@ Use Topo to deploy a containerized workload to my Arm target at user@my-target. The agent reads the Topo `README.md`, runs health checks, selects a template, and deploys it end-to-end with minimal manual input. -## What you've accomplished +## What you've accomplished and what's next You have now deployed a containerized workload to your Arm-based Linux target using Topo. You validated the deployment by accessing the application in a web browser. You also learned how to stop the deployment and forward ports if needed. -Next you should explore modification and creation of Topo Templates in the follow-up Learning Path: [Create and deploy a custom Topo Template](/learning-paths/cross-platform/create-your-own-topo-templates/) \ No newline at end of file +Next, you can try the same workflow in Visual Studio Code using the Topo extension, or explore modification and creation of Topo Templates in the follow-up Learning Path: [Create and deploy a custom Topo Template](/learning-paths/cross-platform/create-your-own-topo-templates/). diff --git a/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/deploy_vscode.png b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/deploy_vscode.png new file mode 100644 index 0000000000..b730d9fafb Binary files /dev/null and b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/deploy_vscode.png differ diff --git a/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/deployed_llm.png b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/deployed_llm.png new file mode 100644 index 0000000000..c30a0c02d7 Binary files /dev/null and b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/deployed_llm.png differ diff --git a/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/topo-vscode-extension.md b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/topo-vscode-extension.md new file mode 100644 index 0000000000..105e1030db --- /dev/null +++ b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/topo-vscode-extension.md @@ -0,0 +1,63 @@ +--- +title: (Optional) Use the Topo VS Code extension +weight: 5 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Use Topo from VS Code + +You have used the Topo CLI to check your target, list compatible templates, clone a template, deploy the workload, and inspect the running application. + +You can also perform the same workflow from Visual Studio Code using the [Topo extension](https://marketplace.visualstudio.com/items?itemName=Arm.topo). The extension provides a graphical interface for Topo deployment. + +## Install the extension + +Install the Topo extension from the Visual Studio Marketplace using the link above. + +![Screenshot of the Topo extension install page in Visual Studio Code.#center](topo_vscode.png "Topo extension install page for Visual Studio Code") + +A guide is provided on the extension page, but some brief steps are also shown here. If you are familiar with Topo CLI, you should have little trouble using the extension. After installation, open the Topo view from the VS Code activity bar. + +## Add and inspect a target + +The Topo sidebar shows your host by default. Use the sidebar to also add your Arm-based Linux target. The target is the same SSH destination you used with the CLI, for example `user@my-target`. + +The extension shows the host and target state, available Topo actions, and deployed applications, providing similar insights to `topo health` and `topo ps`. + +![Screenshot of the Topo sidebar in Visual Studio Code showing target and deployment actions.#center](topo_sidebar.png "Topo sidebar in Visual Studio Code") + +## Run Topo commands + +The command palette exposes the usual Topo commands such as listing compatible templates, cloning templates, and deploying projects. + +![Screenshot of Topo commands in Visual Studio Code.#center](topo_commands.png "Topo commands in Visual Studio Code") + +These commands correspond to the CLI commands you used earlier, such as: + +```bash +topo templates --target user@my-target +topo clone +topo deploy --target user@my-target +``` + +## Deploy from VS Code + +After cloning or selecting a Topo Template, you can deploy it. Open or clone the LLM Chatbot example, then deploy it using the VS Code extension. + +![Screenshot of deploying a Topo workload from Visual Studio Code.#center](deploy_vscode.png "Deploy a Topo workload from Visual Studio Code") + +When deployment completes, you will see the processes running on the target in the Topo sidebar: + +![Screenshot of a deployed LLM chatbot processes shown in the Topo VS Code extension.#center](deployed_llm.png "Deployed LLM chatbot processes in the Topo VS Code extension") + +Open the application in your browser just as you did with the CLI workflow: + +```output +http://:3000 +``` + +## What you've accomplished + +You have now seen two ways to deploy Topo workloads: directly from the command line and from Visual Studio Code. Both approaches use the same target checks, template metadata, and deployment flow, so you can choose the interface that best fits your workflow. diff --git a/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/topo_commands.png b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/topo_commands.png new file mode 100644 index 0000000000..8b98bb30de Binary files /dev/null and b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/topo_commands.png differ diff --git a/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/topo_sidebar.png b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/topo_sidebar.png new file mode 100644 index 0000000000..bf42e8a8e5 Binary files /dev/null and b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/topo_sidebar.png differ diff --git a/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/topo_vscode.png b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/topo_vscode.png new file mode 100644 index 0000000000..eabdfe4137 Binary files /dev/null and b/content/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/topo_vscode.png differ diff --git a/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/_index.md b/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/_index.md index fe53b052cf..d60d1c3340 100644 --- a/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/_index.md +++ b/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/_index.md @@ -28,6 +28,10 @@ prerequisites: author: Tomas Agustin Gonzalez Orlando +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Containers and Virtualization diff --git a/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/deploy.md b/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/deploy.md index f99db902ef..659e2aa797 100644 --- a/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/deploy.md +++ b/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/deploy.md @@ -204,7 +204,7 @@ http://:3002 You should see something similar to: -![Screenshot of the web interface running on an Arm-based target, showing an image and the model response. This confirms successful deployment and provides a visual reference for the expected result.#center](topo_npu_classifier.png "Image classification as seen in the web app") +![Screenshot of the web interface running on an Arm-based target, showing an image and the model response. This confirms successful deployment and provides a visual reference for the expected result.#center](topo_npu_classifier.webp "Image classification as seen in the web app") ## What you've accomplished diff --git a/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/topo_npu_classifier.png b/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/topo_npu_classifier.png deleted file mode 100644 index f744e12c64..0000000000 Binary files a/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/topo_npu_classifier.png and /dev/null differ diff --git a/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/topo_npu_classifier.webp b/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/topo_npu_classifier.webp new file mode 100644 index 0000000000..2393184074 Binary files /dev/null and b/content/learning-paths/cross-platform/deploy-ml-model-to-npu-with-topo/topo_npu_classifier.webp differ diff --git a/content/learning-paths/cross-platform/docker-build-cloud/_index.md b/content/learning-paths/cross-platform/docker-build-cloud/_index.md index b54bf8a88f..f4cdbe3845 100644 --- a/content/learning-paths/cross-platform/docker-build-cloud/_index.md +++ b/content/learning-paths/cross-platform/docker-build-cloud/_index.md @@ -18,6 +18,10 @@ prerequisites: author: Jason Andrews +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Containers and Virtualization @@ -45,10 +49,10 @@ further_reading: link: https://www.docker.com/blog/introducing-docker-build-cloud/ type: blog - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/docker/_index.md b/content/learning-paths/cross-platform/docker/_index.md index 57e2098b50..c59eab3445 100644 --- a/content/learning-paths/cross-platform/docker/_index.md +++ b/content/learning-paths/cross-platform/docker/_index.md @@ -19,6 +19,10 @@ prerequisites: author: Jason Andrews +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Containers and Virtualization @@ -55,10 +59,10 @@ further_reading: link: https://www.docker.com/blog/how-to-rapidly-build-multi-architecture-images-with-buildx type: blog - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/dynamic-memory-allocator/_index.md b/content/learning-paths/cross-platform/dynamic-memory-allocator/_index.md index 54ed81adec..aa110e7fbd 100644 --- a/content/learning-paths/cross-platform/dynamic-memory-allocator/_index.md +++ b/content/learning-paths/cross-platform/dynamic-memory-allocator/_index.md @@ -18,6 +18,10 @@ prerequisites: author: David Spickett +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + test_images: - ubuntu:latest test_link: null @@ -51,10 +55,10 @@ shared_between: - laptops-and-desktops - embedded-and-microcontrollers - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/eigen-linear-algebra-on-arm/_index.md b/content/learning-paths/cross-platform/eigen-linear-algebra-on-arm/_index.md index 992decceec..a54caa82f5 100644 --- a/content/learning-paths/cross-platform/eigen-linear-algebra-on-arm/_index.md +++ b/content/learning-paths/cross-platform/eigen-linear-algebra-on-arm/_index.md @@ -16,6 +16,10 @@ prerequisites: author: Konstantinos Margaritis +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -35,7 +39,6 @@ shared_between: - servers-and-cloud-computing - mobile-graphics-and-gaming - further_reading: - resource: title: Eigen official Tutorial on Matrix class @@ -50,10 +53,10 @@ further_reading: link: https://www.tensorflow.org/install/source type: documentation - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/ernie_moe_v9/_index.md b/content/learning-paths/cross-platform/ernie_moe_v9/_index.md index be39782954..de0331764a 100644 --- a/content/learning-paths/cross-platform/ernie_moe_v9/_index.md +++ b/content/learning-paths/cross-platform/ernie_moe_v9/_index.md @@ -17,6 +17,10 @@ prerequisites: author: Odin Shen +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: ML @@ -51,10 +55,10 @@ further_reading: link: /learning-paths/servers-and-cloud-computing/llama_cpp_streamline/ type: website - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/floating-point-behavior/_index.md b/content/learning-paths/cross-platform/floating-point-behavior/_index.md index 8f02a1c599..d021835eaa 100644 --- a/content/learning-paths/cross-platform/floating-point-behavior/_index.md +++ b/content/learning-paths/cross-platform/floating-point-behavior/_index.md @@ -20,6 +20,10 @@ author: - Kieran Hejmadi - Jason Andrews +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -52,3 +56,4 @@ weight: 1 # _index.md always has weight of 1 to order corr layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/function-multiversioning/_index.md b/content/learning-paths/cross-platform/function-multiversioning/_index.md index 81b88182e3..b76d6cd69a 100644 --- a/content/learning-paths/cross-platform/function-multiversioning/_index.md +++ b/content/learning-paths/cross-platform/function-multiversioning/_index.md @@ -23,6 +23,10 @@ prerequisites: author: Alexandros Lamprineas +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -55,8 +59,8 @@ further_reading: link: https://arm-software.github.io/acle/main/acle.html type: documentation - weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/github-arm-runners/_index.md b/content/learning-paths/cross-platform/github-arm-runners/_index.md index ba6149aec7..a3a52a991c 100644 --- a/content/learning-paths/cross-platform/github-arm-runners/_index.md +++ b/content/learning-paths/cross-platform/github-arm-runners/_index.md @@ -17,6 +17,10 @@ prerequisites: author: Jason Andrews +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: CI-CD @@ -49,10 +53,10 @@ further_reading: link: https://github.blog/2024-06-03-arm64-on-github-actions-powering-faster-more-efficient-build-systems/ type: blog - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/gitlab-managed-runners/_index.md b/content/learning-paths/cross-platform/gitlab-managed-runners/_index.md index f11a5914eb..2c4c71f619 100644 --- a/content/learning-paths/cross-platform/gitlab-managed-runners/_index.md +++ b/content/learning-paths/cross-platform/gitlab-managed-runners/_index.md @@ -1,7 +1,6 @@ --- title: Build a CI/CD pipeline using GitLab-hosted Arm runners - minutes_to_complete: 30 who_is_this_for: This is an introductory topic for DevOps engineers who want to build CI/CD pipelines on Arm-based infrastructure using GitLab-hosted runners. @@ -13,13 +12,16 @@ learning_objectives: - Configure pipeline stages to use Arm64 runners - Build and containerize applications for Arm64 architecture - Store container images in GitLab Container Registry - prerequisites: - A GitLab account (free tier includes Arm64 runner access) author: Mohamed Ismail +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: CI-CD @@ -58,11 +60,10 @@ further_reading: link: https://learn.arm.com/install-guides/docker/ type: documentation - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/gitlab/_index.md b/content/learning-paths/cross-platform/gitlab/_index.md index 4a059659b0..35332e1452 100644 --- a/content/learning-paths/cross-platform/gitlab/_index.md +++ b/content/learning-paths/cross-platform/gitlab/_index.md @@ -20,6 +20,10 @@ prerequisites: author: Pranay Bakre +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Containers and Virtualization @@ -58,11 +62,10 @@ further_reading: link: https://cloud.google.com/kubernetes-engine/docs type: documentation - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/integer-vs-floats/_index.md b/content/learning-paths/cross-platform/integer-vs-floats/_index.md index f7912d8b5d..72151fd5af 100644 --- a/content/learning-paths/cross-platform/integer-vs-floats/_index.md +++ b/content/learning-paths/cross-platform/integer-vs-floats/_index.md @@ -15,6 +15,10 @@ prerequisites: author: Konstantinos Margaritis +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -35,7 +39,6 @@ shared_between: - servers-and-cloud-computing - mobile-graphics-and-gaming - further_reading: - resource: title: Arm Neoverseā„¢ N1 Software Optimization Guide @@ -58,11 +61,10 @@ further_reading: link: https://en.wikipedia.org/wiki/Bfloat16_floating-point_format type: website - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/intrinsics/_index.md b/content/learning-paths/cross-platform/intrinsics/_index.md index 88d0dd032b..0b76dc42fd 100644 --- a/content/learning-paths/cross-platform/intrinsics/_index.md +++ b/content/learning-paths/cross-platform/intrinsics/_index.md @@ -20,6 +20,10 @@ prerequisites: author: Jason Andrews +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + test_images: - amd64/ubuntu:latest - arm64v8/ubuntu:latest @@ -69,3 +73,4 @@ weight: 1 # _index.md always has weight of 1 to order corr layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/ipexplorer/_index.md b/content/learning-paths/cross-platform/ipexplorer/_index.md index 4c6484dbe6..60b0739cc1 100644 --- a/content/learning-paths/cross-platform/ipexplorer/_index.md +++ b/content/learning-paths/cross-platform/ipexplorer/_index.md @@ -16,6 +16,10 @@ prerequisites: author: Ronan Synnott +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -43,10 +47,10 @@ further_reading: link: https://ipexplorer.arm.com/ type: website - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/kleidiai-explainer/_index.md b/content/learning-paths/cross-platform/kleidiai-explainer/_index.md index f7e786dc91..c00acba4de 100644 --- a/content/learning-paths/cross-platform/kleidiai-explainer/_index.md +++ b/content/learning-paths/cross-platform/kleidiai-explainer/_index.md @@ -9,12 +9,17 @@ learning_objectives: - Describe how basic math operations power Large Language Models. - Describe how the KleidiAI micro-kernels speed up Generative AI inference performance. - Run a basic C++ matrix multiplication example to showcase the speedup that KleidiAI micro-kernels can deliver. - + prerequisites: - An Arm-based Linux machine that implements the Int8 Matrix Multiplication (*i8mm*) architecture feature. The example in this Learning Path is run on an AWS Graviton 3 instance. Instructions on setting up an Arm-based server are [found here](/learning-paths/servers-and-cloud-computing/csp/aws/). - A basic understanding of linear algebra terminology, such as dot product and matrix multiplication. author: Zach Lasiuk + +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: ML @@ -36,8 +41,6 @@ shared_between: - servers-and-cloud-computing - mobile-graphics-and-gaming - - further_reading: - resource: title: KleidiAI documentation @@ -48,12 +51,10 @@ further_reading: link: https://community.arm.com/arm-community-blogs/b/ai-and-ml-blog/posts/kleidiai type: blog - - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/llm-fine-tuning-for-web-applications/_index.md b/content/learning-paths/cross-platform/llm-fine-tuning-for-web-applications/_index.md index 51398b5edc..ee776e9da3 100644 --- a/content/learning-paths/cross-platform/llm-fine-tuning-for-web-applications/_index.md +++ b/content/learning-paths/cross-platform/llm-fine-tuning-for-web-applications/_index.md @@ -26,15 +26,18 @@ prerequisites: - An Android smartphone with the i8mm feature and 16GB of RAM. - Basic understanding of machine learning and deep learning. - Familiarity with deep learning frameworks such as PyTorch and Hugging Face Transformers. - author: Parichay Das +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: ML armips: - Neoverse - + tools_software_languages: - LLM - Generative AI @@ -59,9 +62,6 @@ further_reading: title: PyTorch Documentation link: https://pytorch.org/docs/stable/index.html type: documentation - - - ### FIXED, DO NOT MODIFY # ================================================================================ diff --git a/content/learning-paths/cross-platform/loop-reflowing/_index.md b/content/learning-paths/cross-platform/loop-reflowing/_index.md index a80d144c41..8bb70eca5b 100644 --- a/content/learning-paths/cross-platform/loop-reflowing/_index.md +++ b/content/learning-paths/cross-platform/loop-reflowing/_index.md @@ -14,6 +14,10 @@ prerequisites: author: Konstantinos Margaritis +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -33,7 +37,6 @@ shared_between: - laptops-and-desktops - mobile-graphics-and-gaming - further_reading: - resource: title: An update on GNU performance @@ -52,11 +55,10 @@ further_reading: link: https://gcc.gnu.org/projects/tree-ssa/vectorization.html type: website - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/matrix/_index.md b/content/learning-paths/cross-platform/matrix/_index.md index b30e9fd1b7..7d2d27fe3e 100644 --- a/content/learning-paths/cross-platform/matrix/_index.md +++ b/content/learning-paths/cross-platform/matrix/_index.md @@ -21,6 +21,9 @@ prerequisites: author: Arnaud de Grandmaison +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false ### Tags skilllevels: Advanced @@ -56,11 +59,10 @@ further_reading: link: https://google.github.io/googletest/quickstart-cmake.html type: documentation - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/mca-godbolt/_index.md b/content/learning-paths/cross-platform/mca-godbolt/_index.md index 7d76a87d59..4b7c580098 100644 --- a/content/learning-paths/cross-platform/mca-godbolt/_index.md +++ b/content/learning-paths/cross-platform/mca-godbolt/_index.md @@ -17,6 +17,10 @@ prerequisites: author: Asher Dobrescu +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -46,11 +50,10 @@ further_reading: link: https://developer.arm.com/documentation/109898/0300/?lang=en type: documentation - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/mcp-ai-agent/_index.md b/content/learning-paths/cross-platform/mcp-ai-agent/_index.md index 511d27dae6..a5e5816da0 100644 --- a/content/learning-paths/cross-platform/mcp-ai-agent/_index.md +++ b/content/learning-paths/cross-platform/mcp-ai-agent/_index.md @@ -20,6 +20,10 @@ prerequisites: author: Andrew Choi +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + skilllevels: Introductory subjects: ML armips: @@ -47,10 +51,10 @@ further_reading: link: https://openai.github.io/openai-agents-python/ type: blog - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/memory-latency/_index.md b/content/learning-paths/cross-platform/memory-latency/_index.md index 7945e6ff98..bb12e35095 100644 --- a/content/learning-paths/cross-platform/memory-latency/_index.md +++ b/content/learning-paths/cross-platform/memory-latency/_index.md @@ -15,6 +15,10 @@ prerequisites: author: Konstantinos Margaritis +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -54,10 +58,10 @@ further_reading: link: https://colin-scott.github.io/personal_website/research/interactive_latency.html type: website - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/multimodel_mnn_v9/_index.md b/content/learning-paths/cross-platform/multimodel_mnn_v9/_index.md index b1d4951ae9..0d30420517 100644 --- a/content/learning-paths/cross-platform/multimodel_mnn_v9/_index.md +++ b/content/learning-paths/cross-platform/multimodel_mnn_v9/_index.md @@ -1,7 +1,6 @@ --- title: Build a Multimodal Retail Restocking Assistant on Armv9 With MNN - minutes_to_complete: 90 who_is_this_for: This Learning Path is for developers and engineers who want to run multimodal image, audio, and text models on Armv9 Linux systems using MNN as a portable, CPU-first inference runtime. It is aimed at readers who are comfortable building software from source and want a reproducible on-device workflow without quantization or heterogeneous scheduling. @@ -20,6 +19,10 @@ prerequisites: author: Odin Shen +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: ML @@ -67,3 +70,4 @@ weight: 1 # _index.md always has weight of 1 to order corr layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/multiplying-matrices-with-sme2/_index.md b/content/learning-paths/cross-platform/multiplying-matrices-with-sme2/_index.md index 71c81d366d..e3984a4c13 100644 --- a/content/learning-paths/cross-platform/multiplying-matrices-with-sme2/_index.md +++ b/content/learning-paths/cross-platform/multiplying-matrices-with-sme2/_index.md @@ -26,6 +26,10 @@ prerequisites: author: Arnaud de Grandmaison +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -96,10 +100,10 @@ further_reading: link: https://github.com/ARM-software/abi-aa type: website - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/psa-tfm/_index.md b/content/learning-paths/cross-platform/psa-tfm/_index.md index 86c0c9babb..45080f8785 100644 --- a/content/learning-paths/cross-platform/psa-tfm/_index.md +++ b/content/learning-paths/cross-platform/psa-tfm/_index.md @@ -18,9 +18,12 @@ learning_objectives: prerequisites: - Ubuntu host or access to AWS - Optional MPS3 FPGA prototyping board - author: Ronan Synnott +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -35,7 +38,6 @@ tools_software_languages: - FVP - GCC - ### Cross-platform metadata only shared_path: true shared_between: diff --git a/content/learning-paths/cross-platform/pytorch-digit-classification-arch-training/_index.md b/content/learning-paths/cross-platform/pytorch-digit-classification-arch-training/_index.md index 3b6cd4c1a6..6e7de51fed 100644 --- a/content/learning-paths/cross-platform/pytorch-digit-classification-arch-training/_index.md +++ b/content/learning-paths/cross-platform/pytorch-digit-classification-arch-training/_index.md @@ -20,10 +20,13 @@ learning_objectives: prerequisites: - A machine that can run Python3, Visual Studio Code, and Android Studio. - For the OS, you can use Windows, Linux, or macOS. - author: Dawid Borycki +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: ML @@ -57,11 +60,10 @@ further_reading: link: https://code.visualstudio.com type: website - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/remoteit/_index.md b/content/learning-paths/cross-platform/remoteit/_index.md index 72dd2b2e1a..dfc88afb86 100644 --- a/content/learning-paths/cross-platform/remoteit/_index.md +++ b/content/learning-paths/cross-platform/remoteit/_index.md @@ -19,6 +19,10 @@ prerequisites: author: Brenda Strech +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + further_reading: - resource: title: Developer Documentation @@ -68,3 +72,4 @@ weight: 1 # _index.md always has weight of 1 to order corr layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/restrict-keyword-c99/_index.md b/content/learning-paths/cross-platform/restrict-keyword-c99/_index.md index 675b0136aa..c854c1d471 100644 --- a/content/learning-paths/cross-platform/restrict-keyword-c99/_index.md +++ b/content/learning-paths/cross-platform/restrict-keyword-c99/_index.md @@ -15,6 +15,10 @@ prerequisites: author: Konstantinos Margaritis +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -35,24 +39,22 @@ shared_between: - laptops-and-desktops - servers-and-cloud-computing - mobile-graphics-and-gaming - further_reading: - resource: title: How to use the restrict qualifier in C link: https://www.oracle.com/solaris/technologies/solaris10-cc-restrict.html type: blog - + - resource: title: Explore the usage of restrict with Godbolt link: https://godbolt.org/z/PxWxjc1oh type: website - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/rust_armds/_index.md b/content/learning-paths/cross-platform/rust_armds/_index.md index 4cb9e746c7..4a42aadcad 100644 --- a/content/learning-paths/cross-platform/rust_armds/_index.md +++ b/content/learning-paths/cross-platform/rust_armds/_index.md @@ -17,6 +17,9 @@ prerequisites: author: Ronan Synnott +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false ### Tags skilllevels: Introductory @@ -55,3 +58,4 @@ weight: 1 # _index.md always has weight of 1 to order corr layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/simd-info-demo/_index.md b/content/learning-paths/cross-platform/simd-info-demo/_index.md index 313febf26d..b19a99dfa5 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/_index.md +++ b/content/learning-paths/cross-platform/simd-info-demo/_index.md @@ -18,6 +18,10 @@ author: - Georgios Mermigkis - Konstantinos Margaritis +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -45,11 +49,10 @@ further_reading: link: https://simd.info type: website - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/simd-loops/_index.md b/content/learning-paths/cross-platform/simd-loops/_index.md index f9c64f92d0..7a72195c62 100644 --- a/content/learning-paths/cross-platform/simd-loops/_index.md +++ b/content/learning-paths/cross-platform/simd-loops/_index.md @@ -22,6 +22,10 @@ author: - Alejandro Martinez Vicente - Mohamad Najem +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -98,10 +102,10 @@ further_reading: link: https://github.com/ARM-software/abi-aa type: website - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/simd-on-rust/_index.md b/content/learning-paths/cross-platform/simd-on-rust/_index.md index 219fe1da68..115a8a00c0 100644 --- a/content/learning-paths/cross-platform/simd-on-rust/_index.md +++ b/content/learning-paths/cross-platform/simd-on-rust/_index.md @@ -18,6 +18,10 @@ prerequisites: author: Konstantinos Margaritis +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -38,7 +42,6 @@ shared_between: - servers-and-cloud-computing - mobile-graphics-and-gaming - further_reading: - resource: title: Rust std::arch documentation @@ -57,10 +60,10 @@ further_reading: link: https://gendignoux.com/blog/2023/01/05/rust-arm-simd-android.html#implicit-feature-detection-beware-of-target-feature type: blog - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/sme-executorch-profiling/_index.md b/content/learning-paths/cross-platform/sme-executorch-profiling/_index.md index 8e17edca37..b0740bc305 100644 --- a/content/learning-paths/cross-platform/sme-executorch-profiling/_index.md +++ b/content/learning-paths/cross-platform/sme-executorch-profiling/_index.md @@ -18,12 +18,16 @@ prerequisites: - An Apple Silicon macOS host with Python 3.9 or later and CMake 3.29 or later - Basic familiarity with ExecuTorch or PyTorch - Optionally, an Android device with Armv9 and SME2 support for on-device testing (if used, configure power management settings to ensure consistent performance measurements) - + author: - Jason Zhu - Tyler Mullenbach - Damien Dooley +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: ML @@ -64,3 +68,4 @@ weight: 1 layout: "learningpathall" learning_path_main_page: "yes" --- + diff --git a/content/learning-paths/cross-platform/tinkerblox_ultraedge/_index.md b/content/learning-paths/cross-platform/tinkerblox_ultraedge/_index.md index 04c94b8e14..95df6c7b42 100644 --- a/content/learning-paths/cross-platform/tinkerblox_ultraedge/_index.md +++ b/content/learning-paths/cross-platform/tinkerblox_ultraedge/_index.md @@ -12,7 +12,6 @@ learning_objectives: - Deploy the MicroPacs on Linux-based compute systems and scale to cloud or data-center environments - Optimize performance for edge-cloud scenarios, enabling near real-time data flows - prerequisites: - Experience using Linux on embedded or SBC platforms - Understanding of container runtimes (containerd) and CNI networking @@ -21,6 +20,10 @@ prerequisites: author: Tinkerblox +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Containers and Virtualization @@ -32,7 +35,7 @@ cloud_service_providers: armips: - Neoverse - + operatingsystems: - Linux - other @@ -48,10 +51,10 @@ further_reading: link: https://tinkerblox.io type: website - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/topdown-compare/_index.md b/content/learning-paths/cross-platform/topdown-compare/_index.md index 044f20ac10..2fe6f43f57 100644 --- a/content/learning-paths/cross-platform/topdown-compare/_index.md +++ b/content/learning-paths/cross-platform/topdown-compare/_index.md @@ -20,6 +20,10 @@ prerequisites: author: - Jason Andrews +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -56,10 +60,10 @@ further_reading: link: /learning-paths/servers-and-cloud-computing/arm_pmu/ type: website - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/vectorization-comparison/_index.md b/content/learning-paths/cross-platform/vectorization-comparison/_index.md index 9b056affba..769b9c5c6d 100644 --- a/content/learning-paths/cross-platform/vectorization-comparison/_index.md +++ b/content/learning-paths/cross-platform/vectorization-comparison/_index.md @@ -10,7 +10,6 @@ who_is_this_for: This is an advanced topic for developers migrating vectorized ( learning_objectives: - Identify how Arm vector extensions including Neon, Scalable Vector Extension (SVE), and Scalable Matrix Extension (SME) map to vector extensions from other architectures - Plan a migration strategy using autovectorization, intrinsics, or library substitution - prerequisites: - Familiarity with vector extensions, SIMD programming, and compiler intrinsics @@ -19,6 +18,10 @@ prerequisites: author: - Jason Andrews +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -82,5 +85,3 @@ layout: "learningpathall" # All files under learning paths have this same learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- - - diff --git a/content/learning-paths/cross-platform/vectorization-friendly-data-layout/_index.md b/content/learning-paths/cross-platform/vectorization-friendly-data-layout/_index.md index 52739047e5..e9766e4830 100644 --- a/content/learning-paths/cross-platform/vectorization-friendly-data-layout/_index.md +++ b/content/learning-paths/cross-platform/vectorization-friendly-data-layout/_index.md @@ -15,6 +15,10 @@ prerequisites: author: Konstantinos Margaritis +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -34,7 +38,6 @@ shared_between: - laptops-and-desktops - mobile-graphics-and-gaming - further_reading: - resource: title: Array of Structures (AoS), Structure of Arrays (SoA) @@ -49,11 +52,10 @@ further_reading: link: https://arm-software.github.io/acle/neon_intrinsics/advsimd.html type: documentation - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/windowsperf_sampling_cpython_spe/_index.md b/content/learning-paths/cross-platform/windowsperf_sampling_cpython_spe/_index.md index 6469e56283..3980aecad2 100644 --- a/content/learning-paths/cross-platform/windowsperf_sampling_cpython_spe/_index.md +++ b/content/learning-paths/cross-platform/windowsperf_sampling_cpython_spe/_index.md @@ -18,9 +18,13 @@ prerequisites: - An installation of [WindowsPerf](/install-guides/wperf/). - An installation of [Visual Studio](/install-guides/vs-woa/). - An installation of [Git](/install-guides/git-woa/). - + author: Przemyslaw Wirkus +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -100,3 +104,4 @@ weight: 1 # _index.md always has weight of 1 to order corr layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/woa_azure/_index.md b/content/learning-paths/cross-platform/woa_azure/_index.md index ea70d41434..fd48228793 100644 --- a/content/learning-paths/cross-platform/woa_azure/_index.md +++ b/content/learning-paths/cross-platform/woa_azure/_index.md @@ -17,6 +17,10 @@ prerequisites: author: Pareena Verma +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Containers and Virtualization @@ -41,10 +45,10 @@ further_reading: link: https://azure.microsoft.com/en-us/blog/azure-virtual-machines-with-ampere-altra-arm-based-processors-generally-available/ type: blog - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/cross-platform/zenoh-multinode-ros2/_index.md b/content/learning-paths/cross-platform/zenoh-multinode-ros2/_index.md index 290a354ce7..be12027637 100644 --- a/content/learning-paths/cross-platform/zenoh-multinode-ros2/_index.md +++ b/content/learning-paths/cross-platform/zenoh-multinode-ros2/_index.md @@ -7,7 +7,6 @@ description: Learn how to build and deploy distributed Zenoh systems on Arm devi who_is_this_for: This Learning Path is for robotics developers, industrial automation engineers, and IoT system architects who are building distributed, scalable, and low-latency applications. Whether you're using the Robot Operating System (ROS), developing autonomous systems, or designing multi-node communication frameworks, you can use Eclipse Zenoh on Arm-based platforms, both in the cloud and on local devices like Raspberry Pi. - learning_objectives: - Understand Zenoh's architecture and how it integrates pub/sub, storage, querying, and computation models - Build and run Zenoh examples on both Arm servers and Raspberry Pi @@ -22,6 +21,10 @@ author: - William Liang - ChenYing Kuo +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + skilllevels: Introductory subjects: Performance and Architecture armips: @@ -55,11 +58,10 @@ further_reading: link: https://github.com/eclipse-zenoh/zenoh-plugin-ros2dds type: documentation - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/advanced_soc/_index.md b/content/learning-paths/embedded-and-microcontrollers/advanced_soc/_index.md index 45d8cdaa2e..a39c9f36c2 100644 --- a/content/learning-paths/embedded-and-microcontrollers/advanced_soc/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/advanced_soc/_index.md @@ -19,6 +19,10 @@ prerequisites: author: Pareena Verma +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -45,3 +49,4 @@ learning_path_main_page: "yes" # Indicates this should be surfaced when looking # Prereqs --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/alif-image-classification/_index.md b/content/learning-paths/embedded-and-microcontrollers/alif-image-classification/_index.md index 82d729997b..8b2bb4d144 100644 --- a/content/learning-paths/embedded-and-microcontrollers/alif-image-classification/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/alif-image-classification/_index.md @@ -22,6 +22,10 @@ prerequisites: author: Gabriel Peterson +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + skilllevels: Advanced subjects: ML armips: @@ -60,3 +64,4 @@ weight: 1 # _index.md always has weight of 1 to order corr layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/arduino-pico/_index.md b/content/learning-paths/embedded-and-microcontrollers/arduino-pico/_index.md index 947bcf1751..4706afd0c3 100644 --- a/content/learning-paths/embedded-and-microcontrollers/arduino-pico/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/arduino-pico/_index.md @@ -13,7 +13,6 @@ learning_objectives: - Understand how hardware interrupts are used in embedded systems to respond to external changes - Add interrupt handlers to an embedded application - prerequisites: - The [Arduino IDE with the RP2040 board support package](/install-guides/arduino-pico/) installed on your computer - A [Raspberry Pi Pico](https://www.raspberrypi.com/products/raspberry-pi-pico/) board @@ -22,6 +21,10 @@ prerequisites: author: Michael Hall +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: RTOS Fundamentals @@ -42,10 +45,10 @@ further_reading: link: https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html type: documentation - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/armds/_index.md b/content/learning-paths/embedded-and-microcontrollers/armds/_index.md index c1f0d5a3cc..cfe6f1abf9 100644 --- a/content/learning-paths/embedded-and-microcontrollers/armds/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/armds/_index.md @@ -16,6 +16,10 @@ prerequisites: author: Ronan Synnott +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -46,11 +50,10 @@ further_reading: link: https://developer.arm.com/Tools%20and%20Software/DSTREAM-PT type: website - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/asm/_index.md b/content/learning-paths/embedded-and-microcontrollers/asm/_index.md index 84d2584eb0..328d6c2f61 100644 --- a/content/learning-paths/embedded-and-microcontrollers/asm/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/asm/_index.md @@ -6,6 +6,10 @@ description: Learn how to write mixed C and assembly programs for Cortex-M micro author: Ronan Synnott +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + who_is_this_for: This is an introductory topic for software developers who are interested in programming microcontrollers with C/Assembly. learning_objectives: @@ -41,5 +45,5 @@ weight: 1 # _index.md always has weight of 1 to order corr layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # Indicates this should be surfaced when looking for related content. Only set for _index.md of learning path content. # ================================================================================ - --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/avh_balena/_index.md b/content/learning-paths/embedded-and-microcontrollers/avh_balena/_index.md index b09108b413..6af31ed57c 100644 --- a/content/learning-paths/embedded-and-microcontrollers/avh_balena/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/avh_balena/_index.md @@ -20,6 +20,10 @@ prerequisites: author: Michael Hall +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory @@ -51,11 +55,10 @@ further_reading: link: https://hub.balena.io/ type: website - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/avh_greengrass/_index.md b/content/learning-paths/embedded-and-microcontrollers/avh_greengrass/_index.md index de36c5ccab..53dcc92ff1 100644 --- a/content/learning-paths/embedded-and-microcontrollers/avh_greengrass/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/avh_greengrass/_index.md @@ -18,6 +18,10 @@ prerequisites: author: Michael Hall +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory @@ -34,7 +38,6 @@ tools_software_languages: - AWS IoT Greengrass - Raspberry Pi - further_reading: - resource: title: AWS IoT Greengrass CLI documentation @@ -49,11 +52,10 @@ further_reading: link: https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html type: website - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/avh_matter/_index.md b/content/learning-paths/embedded-and-microcontrollers/avh_matter/_index.md index dbb782b672..2083af8bbe 100644 --- a/content/learning-paths/embedded-and-microcontrollers/avh_matter/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/avh_matter/_index.md @@ -18,6 +18,10 @@ prerequisites: author: Ronan Synnott +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: CI-CD @@ -44,10 +48,10 @@ further_reading: link: https://buildwithmatter.com type: website - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/avh_ppocr/_index.md b/content/learning-paths/embedded-and-microcontrollers/avh_ppocr/_index.md index 796dab64d5..5bbad3d88e 100644 --- a/content/learning-paths/embedded-and-microcontrollers/avh_ppocr/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/avh_ppocr/_index.md @@ -19,6 +19,10 @@ prerequisites: author: Liliya Wu +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: ML @@ -51,11 +55,10 @@ further_reading: link: https://www.arm.com/blogs/blueprint/baidu-paddlepaddle type: blog - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/avh_vio/_index.md b/content/learning-paths/embedded-and-microcontrollers/avh_vio/_index.md index e46b2ea320..698ac367b2 100644 --- a/content/learning-paths/embedded-and-microcontrollers/avh_vio/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/avh_vio/_index.md @@ -16,6 +16,10 @@ prerequisites: author: Pareena Verma +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Virtual Hardware @@ -27,19 +31,16 @@ operatingsystems: tools_software_languages: - Arm Virtual Hardware - further_reading: - resource: title: AVH Virtual Interfaces link: https://arm-software.github.io/AVH/main/simulation/html/group__arm__cmvp.html type: documentation - - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/azure-iot/_index.md b/content/learning-paths/embedded-and-microcontrollers/azure-iot/_index.md index 46927e2945..18a237c01a 100644 --- a/content/learning-paths/embedded-and-microcontrollers/azure-iot/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/azure-iot/_index.md @@ -22,6 +22,10 @@ prerequisites: author: Dawid Borycki +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Performance and Architecture @@ -50,11 +54,10 @@ further_reading: link: https://github.com/Azure-Samples/azure-iot-samples-python type: website - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/bare-metal/_index.md b/content/learning-paths/embedded-and-microcontrollers/bare-metal/_index.md index cdfc0afdef..cfee1074ad 100644 --- a/content/learning-paths/embedded-and-microcontrollers/bare-metal/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/bare-metal/_index.md @@ -19,6 +19,10 @@ prerequisites: author: Ronan Synnott +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -41,10 +45,10 @@ further_reading: link: https://developer.arm.com/documentation/100748 type: documentation - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/cloud-native-deployment-on-hybrid-edge-systems/_index.md b/content/learning-paths/embedded-and-microcontrollers/cloud-native-deployment-on-hybrid-edge-systems/_index.md index e7b080d3b7..db095da711 100644 --- a/content/learning-paths/embedded-and-microcontrollers/cloud-native-deployment-on-hybrid-edge-systems/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/cloud-native-deployment-on-hybrid-edge-systems/_index.md @@ -12,13 +12,16 @@ learning_objectives: - Build a firmware container image. - Build the hybrid-runtime components. - prerequisites: - A valid account with [Arm Virtual Hardware](https://app.avh.arm.com/login) - An Arm Linux host machine (if you want to build your own runtime and container image) author: Basma El Gaabouri +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Containers and Virtualization @@ -33,7 +36,6 @@ tools_software_languages: operatingsystems: - Linux - further_reading: - resource: title: K3s Quick start Guide @@ -48,11 +50,10 @@ further_reading: link: https://github.com/smarter-project/hybrid-runtime/tree/main type: website - - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/cmsis_rtx/_index.md b/content/learning-paths/embedded-and-microcontrollers/cmsis_rtx/_index.md index 1098264f3c..c45b4e2db9 100644 --- a/content/learning-paths/embedded-and-microcontrollers/cmsis_rtx/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/cmsis_rtx/_index.md @@ -16,6 +16,10 @@ prerequisites: author: Ronan Synnott +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: RTOS Fundamentals @@ -38,10 +42,10 @@ further_reading: link: https://www.keil.com/pack/doc/compiler/EventRecorder/html/index.html type: documentation - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/cmsis_rtx_vs/_index.md b/content/learning-paths/embedded-and-microcontrollers/cmsis_rtx_vs/_index.md index 188207d7e5..b43a26a1db 100644 --- a/content/learning-paths/embedded-and-microcontrollers/cmsis_rtx_vs/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/cmsis_rtx_vs/_index.md @@ -18,6 +18,10 @@ prerequisites: author: Ronan Synnott +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: RTOS Fundamentals @@ -40,10 +44,10 @@ further_reading: link: https://www.keil.com/pack/doc/compiler/EventRecorder/html/index.html type: documentation - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/cmsisdsp-dev-with-python/_index.md b/content/learning-paths/embedded-and-microcontrollers/cmsisdsp-dev-with-python/_index.md index cfb93d6a0f..64efe63c6f 100644 --- a/content/learning-paths/embedded-and-microcontrollers/cmsisdsp-dev-with-python/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/cmsisdsp-dev-with-python/_index.md @@ -7,7 +7,6 @@ minutes_to_complete: 45 who_is_this_for: This is an advanced topic for developers looking to integrate the CMSIS-DSP library into their applications using Python. - learning_objectives: - Use the CMSIS-DSP Python package to prototype DSP algorithms. - Understand how the Python API maps to the C implementation. @@ -21,6 +20,10 @@ prerequisites: author: Christophe Favergeon +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Advanced subjects: Libraries @@ -60,10 +63,10 @@ further_reading: link: https://github.com/ARM-software/CMSIS-Stream type: Open-source project - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/context-switch-cortex-m/_index.md b/content/learning-paths/embedded-and-microcontrollers/context-switch-cortex-m/_index.md index 2ee1c4fd28..a41dc5f704 100644 --- a/content/learning-paths/embedded-and-microcontrollers/context-switch-cortex-m/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/context-switch-cortex-m/_index.md @@ -18,6 +18,10 @@ prerequisites: author: Uma Ramalingam +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -45,3 +49,4 @@ weight: 1 # _index.md always has weight of 1 to order corr layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/coverage_mdk/_index.md b/content/learning-paths/embedded-and-microcontrollers/coverage_mdk/_index.md index a27ab3b219..7fbec6004c 100644 --- a/content/learning-paths/embedded-and-microcontrollers/coverage_mdk/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/coverage_mdk/_index.md @@ -16,6 +16,10 @@ prerequisites: author: Ronan Synnott +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Performance and Architecture @@ -42,10 +46,10 @@ further_reading: link: https://www.youtube.com/watch?v=XGmSCVgb6EM type: video - ### FIXED, DO NOT MODIFY # ================================================================================ weight: 1 # _index.md always has weight of 1 to order correctly layout: "learningpathall" # All files under learning paths have this same wrapper learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/_index.md b/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/_index.md index e4fd04b169..22bf1be008 100644 --- a/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/_index.md @@ -3,22 +3,27 @@ title: Device-to-Device communication with Device Connect minutes_to_complete: 25 - -who_is_this_for: This is an introductory topic for developers wiring up heterogeneous edge fleets, where devices need a shared way to find each other and a shared way to be controlled by agents. Device Connect provides this communication protocol between agents and devices, and standardizes how devices from different vendors advertise themselves and exchange structured messages, so both peer devices and AI agents can discover and invoke them through the same driver model. You'll use it to stand up peer-to-peer communication between two devices, with no broker or cloud service in between. +who_is_this_for: This is an introductory topic for developers wiring up heterogeneous edge fleets, where devices need a shared way to find each other and a shared way to be controlled by agents. Device Connect provides this communication protocol between agents and devices, and standardizes how devices from different vendors advertise themselves and exchange structured messages, so both peer devices and AI agents can discover and invoke them through the same driver model. You'll use a Raspberry Pi 5 as the example primary edge device, but the same flow works with another device or with your development machine acting as a simulated device. learning_objectives: - Understand Device Connect Edge SDK primitives - - Set up a Python environment for Device Connect with no hardware required - - Build two simulated devices + - Set up a Python environment for Device Connect on an example edge device and a development machine + - Build two device runtimes, with the primary sensor runtime shown on a Raspberry Pi 5 - Use the Device Connect agent tools to discover both devices on the mesh and invoke their RPCs prerequisites: - Basic familiarity with Python and the command line + - A Raspberry Pi 5, another Linux device, or your development machine to use as the example primary device + - A development machine on the same local network if you run the example across two machines author: - Kavya Sri Chennoju - Annie Tallund +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Libraries @@ -51,3 +56,4 @@ weight: 1 layout: "learningpathall" learning_path_main_page: "yes" --- + diff --git a/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/background.md b/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/background.md index a6b5a38893..c0f303ba31 100644 --- a/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/background.md +++ b/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/background.md @@ -10,7 +10,7 @@ layout: learningpathall Arm processors sit at the heart of a remarkable range of systems, from Cortex-M microcontrollers in industrial sensors, to Cortex-A boards driving robots and appliances, to Neoverse servers in the cloud. Many edge applications need these devices to cooperate: a sensor publishes a reading, a supervisor reacts, a controller adjusts an actuator. The obvious way to wire that up is through a central broker or a cloud service, but both add latency, operational overhead, and a single point of failure you may not want in a lab, a vehicle, or a factory cell. -Direct device-to-device (D2D) communication sidesteps that. Devices on the same local network discover each other, exchange typed events, and call each other's functions directly, with no broker, no registry, and no cloud round-trip. It is a good fit for: +Direct device-to-device (D2D) communication sidesteps that. Devices on the same local network discover each other, exchange typed events, and call each other's functions directly, with no broker, no registry, and no cloud round-trip. This Learning Path uses a Raspberry Pi 5 as the example primary device because it is an Arm-based Linux system that can run the same Python runtime and Device Connect SDK used by larger edge devices. D2D is a good fit for: - prototyping sensor networks and local automation flows - small fleets (roughly 50-100 devices) on a shared network @@ -33,7 +33,7 @@ In D2D mode, every participant is a peer. Each device runtime joins the same pub ``` ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā” -│ Sensor device │ +│ Raspberry Pi 5 sensor device │ │ - device_id: sensor-001 │ │ - @rpc get_reading │ │ - @emit reading_ready ─┐ │ diff --git a/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/d2d-setup.md b/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/d2d-setup.md index f4d65df37e..d75400f68f 100644 --- a/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/d2d-setup.md +++ b/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/d2d-setup.md @@ -6,16 +6,25 @@ weight: 4 layout: learningpathall --- -In this section you'll build two simulated devices on the same mesh: +In this section you'll build two device runtimes on the same mesh, with the Raspberry Pi 5 as the primary edge device: -- a **sensor** that publishes temperature and humidity readings on a schedule -- a **threshold monitor** that subscribes to those readings and raises an alert when the temperature crosses a configurable threshold +- a **sensor** that runs on the Raspberry Pi 5 and publishes temperature and humidity readings on a schedule +- a **threshold monitor** that runs on your development machine, subscribes to those readings, and raises an alert when the temperature crosses a configurable threshold This mirrors a real edge scenario, a room supervisor watching environmental sensors for out-of-bounds conditions, and exercises every Device Connect primitive across two cooperating devices. +{{% notice Note %}} +This Learning Path uses a Raspberry Pi 5 as the example primary device. You can use any device that can run the Device Connect Python packages, and you can also use your development machine as a simulated device by running the sensor and monitor in separate terminals. +{{% /notice %}} + ## Install uv -This walkthrough uses [uv](https://docs.astral.sh/uv/) to manage the project and its Python dependencies. uv will resolve a compatible Python interpreter, create a virtual environment, and install packages for you, so no manual `venv` or `pip` steps are needed. +This walkthrough uses [uv](https://docs.astral.sh/uv/) to manage the project and its Python dependencies. Install uv on both machines: + +- the Raspberry Pi 5 or other device that runs the sensor runtime +- your development machine, which runs the monitor and the agent-tools client + +uv will resolve a compatible Python interpreter, create a virtual environment, and install packages for you, so no manual `venv` or `pip` steps are needed. {{< tabpane code=true >}} {{< tab header="macOS or Linux" language="shell">}} @@ -34,7 +43,7 @@ uv --version ## Create the project -Create a new project and add the Device Connect packages: +Create the same project on the sensor device and your development machine, and add the Device Connect packages: ```bash mkdir ~/device-connect-d2d @@ -45,9 +54,11 @@ uv add device-connect-edge device-connect-agent-tools The [`device-connect-edge`](https://pypi.org/project/device-connect-edge/) package is the device runtime SDK. It is what turns a Python class into a live peer on the messaging mesh. The [`device-connect-agent-tools`](https://pypi.org/project/device-connect-agent-tools/) package is the client side: it lets an agent or script discover devices and invoke their RPCs. In production you might consume devices from a different client, but for this walkthrough it is the fastest way to confirm that discovery and RPC are working. -## Write a simulated sensor device +Keep both runtimes on the same local network. D2D discovery uses local network discovery, so VPNs, guest Wi-Fi isolation, or firewall rules that block local traffic can prevent devices from seeing each other. If you run everything on your development machine, open separate terminals for the sensor, monitor, and agent-tools client. -Create a file called `sensor.py`: +## Write the sensor device + +On the Raspberry Pi 5, another device, or your development machine, create a file called `sensor.py`: ```python import argparse @@ -72,12 +83,12 @@ class SimulatedSensor(DeviceDriver): device_type="simulated_sensor", manufacturer="Device Connect", model="SIM-TH-100", - description="Simulated temperature and humidity sensor", + description="Raspberry Pi 5 temperature and humidity sensor example", ) @property def status(self) -> DeviceStatus: - return DeviceStatus(availability="available", location="simulator") + return DeviceStatus(availability="available", location="raspberry-pi-5") @rpc() async def get_reading(self) -> dict: @@ -120,11 +131,13 @@ This driver uses three of the decorators introduced in the overview: - `@emit` declares `reading_ready` as an event the device publishes to the mesh - `@periodic` runs `publish_reading` every five seconds so the sensor produces fresh data on its own -The `identity` and `status` properties are what other peers see during discovery. They are how this device advertises itself as a `simulated_sensor` with a known manufacturer, model, and availability. +The `identity` and `status` properties are what other peers see during discovery. They are how the sensor runtime advertises itself as a `simulated_sensor` with a known manufacturer, model, and availability. The readings are generated so you can focus on Device Connect behavior first; you can replace `publish_reading()` with a real sensor read later without changing the runtime structure. + +If you are not using a Raspberry Pi 5, update the `description` and `location` values to match your device, for example `location="development-machine"` when you run the sensor locally. ## Write a threshold monitor device -Now create a second device that consumes the sensor's data. Create a file called `monitor.py`: +Now create a second device that consumes the sensor's data. On your development machine, create a file called `monitor.py`: ```python import argparse @@ -155,7 +168,7 @@ class ThresholdMonitor(DeviceDriver): @property def status(self) -> DeviceStatus: - return DeviceStatus(availability="available", location="simulator") + return DeviceStatus(availability="available", location="development-machine") @on(event_name="reading_ready") async def on_reading(self, device_id: str, event_name: str, payload: dict): @@ -202,13 +215,13 @@ The monitor adds one primitive you haven't seen yet: ## Run the sensor and the monitor -Open two terminals in the project directory (`~/device-connect-d2d`). In terminal 1, start the sensor: +Open a terminal on the Raspberry Pi 5, another device, or your development machine in the project directory (`~/device-connect-d2d`). Start the sensor: ```bash uv run python sensor.py --device-id sensor-001 ``` -In terminal 2, start the monitor with a threshold below the sensor's typical temperature range so you see alerts quickly: +On your development machine, open a terminal in the project directory (`~/device-connect-d2d`). Start the monitor with a threshold below the sensor's typical temperature range so you see alerts quickly: ```bash uv run python monitor.py --device-id monitor-001 --threshold 27.0 @@ -216,11 +229,11 @@ uv run python monitor.py --device-id monitor-001 --threshold 27.0 `uv run` executes the command inside the project's managed environment, so you do not need to activate a virtual environment manually. -Within a few seconds, the monitor terminal should start printing `received ... from sensor-001` lines, and an `ALERT:` line each time the simulated temperature rises above 27.0 °C. This is the sensor invoking the monitor across the mesh through its emitted event, and you did not configure any address or pairing between them. +Within a few seconds, the monitor terminal should start printing `received ... from sensor-001` lines, and an `ALERT:` line each time the temperature rises above 27.0 degrees C. This is the sensor invoking the monitor across the mesh through its emitted event, and you did not configure any address or pairing between them. ## Query the monitor from agent tools -Open a third terminal in the project directory and run: +Open a second terminal on your development machine in the project directory and run: ```bash uv run python - <<'PY' @@ -264,4 +277,4 @@ The sensor and monitor did not know about each other before they started. They f ## Outcome -You now have a working D2D deployment where two simulated devices cooperate on the same mesh: a sensor that publishes data and a monitor that reacts to it and exposes its own state. This same driver pattern (a class, a handful of decorators, and a runtime) is how you would describe a real sensor, actuator, or monitor on the network. +You now have a working D2D deployment where an example primary device cooperates with a monitor on the same mesh: the sensor publishes data, and the monitor reacts to it and exposes its own state. This same driver pattern (a class, a handful of decorators, and a runtime) is how you would describe a real sensor, actuator, or monitor on the network. diff --git a/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/overview.md b/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/overview.md index f1d2d845db..b86e614699 100644 --- a/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/overview.md +++ b/content/learning-paths/embedded-and-microcontrollers/device-connect-d2d/overview.md @@ -12,7 +12,7 @@ The [`device-connect-edge`](https://pypi.org/project/device-connect-edge/) packa You describe a device by subclassing `DeviceDriver` from `device_connect_edge.drivers`, then annotating methods and properties with primitives. The runtime wires them into discovery, pub/sub, and RPC for you. -In this Learning Path you'll use these primitives to write two cooperating drivers: a **sensor** runtime that publishes temperature and humidity readings on a schedule, and a **threshold monitor** runtime that reacts to those readings and raises alerts when a threshold is crossed. The subsections below walk through the identity, decorators, and runtime you'll use to build them, and the agent tools package you'll use to invoke them from a separate client. +In this Learning Path you'll use these primitives to write two cooperating drivers: a **sensor** runtime that publishes temperature and humidity readings from an example device on a schedule, and a **threshold monitor** runtime that reacts to those readings and raises alerts when a threshold is crossed. The instructions use a Raspberry Pi 5 for the sensor runtime, but the same code can run on another device or on your development machine. The subsections below walk through the identity, decorators, and runtime you'll use to build them, and the agent tools package you'll use to invoke them from a separate client. ### Identity and status @@ -44,12 +44,12 @@ Any Python process that imports this package can find and drive devices without ## What you'll build -In the next section you will create two cooperating simulated devices on the same local network: +In the next section you will create two cooperating devices on the same local network: -- a **sensor** driver that publishes temperature and humidity readings on a schedule using `@rpc`, `@emit`, and `@periodic` -- a **threshold monitor** driver that uses `@on` to subscribe to the sensor's readings, emits its own `alert_raised` event when a reading crosses a threshold, and exposes the alert history through an `@rpc` method +- a **sensor** driver that runs on a Raspberry Pi 5, another device, or your development machine and publishes temperature and humidity readings on a schedule using `@rpc`, `@emit`, and `@periodic` +- a **threshold monitor** driver that runs on your development machine, uses `@on` to subscribe to the sensor's readings, emits its own `alert_raised` event when a reading crosses a threshold, and exposes the alert history through an `@rpc` method -You will run both devices as independent runtimes on one machine and watch the monitor react to the sensor in real time. Finally, you will use the agent tools package to discover both devices and query their RPCs from a separate terminal. +You can run the devices as independent runtimes on separate machines and watch the monitor react to the Raspberry Pi 5 sensor in real time. If you do not have a Raspberry Pi 5 available, run the sensor runtime in another terminal on your development machine. Finally, you will use the agent tools package to discover both devices and query their RPCs from a separate terminal. By the end, you will have a working D2D deployment where two devices find each other automatically and communicate through typed events and RPCs. This is the same pattern you would use to model a real sensor and a real supervisor on an edge network. diff --git a/content/learning-paths/embedded-and-microcontrollers/device-connect-server/_index.md b/content/learning-paths/embedded-and-microcontrollers/device-connect-server/_index.md index b22a83edc5..400a795cd6 100644 --- a/content/learning-paths/embedded-and-microcontrollers/device-connect-server/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/device-connect-server/_index.md @@ -1,7 +1,7 @@ --- title: Deploy multi-network device meshes using Device Connect server and NATS -description: Connect devices and AI agents across networks using Device Connect server. Learn to provision NATS credentials, commission devices, manage persistent registry, and orchestrate multi-network IoT fleets with secure authentication. +description: Connect an example edge device, secondary devices, and AI agents across networks using Device Connect server. Learn to provision NATS credentials, commission devices, manage persistent registry, and orchestrate multi-network IoT fleets with secure authentication. minutes_to_complete: 30 who_is_this_for: This Learning Path is for developers who have completed the Device-to-device Learning Path and want to build a globally connected fleet of devices and AI agents on top of their Device Connect mesh. You'll add a server layer that gives you persistent registry, distributed state, and security features (commissioning, ACLs) so devices and agents on different networks can find and call each other through a single namespace. If you're new to Device Connect, start with the device-to-device Learning Path first. @@ -9,19 +9,25 @@ who_is_this_for: This Learning Path is for developers who have completed the Dev learning_objectives: - Understand what the Device Connect server adds on top of the edge SDK and when you'd reach for it - Provision a hosted tenant on the Device Connect portal and download per-device NATS credentials - - Commission two simulated devices against your tenant using the credentials the portal issues + - Commission an example primary device and a secondary device against your tenant using the credentials the portal issues - Discover and invoke commissioned devices from a Python client using `device-connect-agent-tools` - Connect a Strands AI agent to the same tenant prerequisites: - Complete the [Device-to-device Learning Path](/learning-paths/embedded-and-microcontrollers/device-connect-d2d/) to understand Device Connect edge SDK basics - An account on the [Device Connect portal](https://portal.deviceconnect.dev/) + - A Raspberry Pi 5, another Linux device, or your development machine to use as the example primary device + - A development machine for the secondary device and Python client - Basic familiarity with Python and the command line author: - Kavya Sri Chennoju - Annie Tallund +generate_summary_faq: true +rerun_summary: false +rerun_faqs: false + ### Tags skilllevels: Introductory subjects: Libraries diff --git a/content/learning-paths/embedded-and-microcontrollers/device-connect-server/background.md b/content/learning-paths/embedded-and-microcontrollers/device-connect-server/background.md index 6c0f66aad7..ef2cc8c3e5 100644 --- a/content/learning-paths/embedded-and-microcontrollers/device-connect-server/background.md +++ b/content/learning-paths/embedded-and-microcontrollers/device-connect-server/background.md @@ -70,7 +70,7 @@ Both answer the same question: is this identity allowed on this mesh? ### What you'll use in this Learning Path -In this Learning Path, you'll use the [Device Connect portal](https://portal.deviceconnect.dev/) to download NATS credentials for three default identities on your tenant. Two identities will run simulated robot arms. The third identity will run the Python client or agent. +In this Learning Path, you'll use the [Device Connect portal](https://portal.deviceconnect.dev/) to download NATS credentials for three default identities on your tenant. The primary identity is shown running on a Raspberry Pi 5, the second identity runs on your development machine as another device, and the third identity runs the Python client or agent. You can use another device, or run the primary identity on your development machine as a simulated device. ## Multi-network deployment architecture @@ -98,7 +98,7 @@ Devices and agents still talk to each other through the same primitives (`@rpc`, ### Real-world example: global device coordination -The animation demonstrates a complete multi-network workflow: a Device Connect server runs in Berlin, robot arms in San Francisco and Tokyo register with it using `device-connect-edge`, and an AI agent in Bangalore orchestrates both robots using `device-connect-agent-tools`. Every `invoke_device` call and event flows through the server, demonstrating how the server enables secure, multi-network device coordination. +The animation demonstrates a complete multi-network workflow: a Device Connect server runs in Berlin, devices in San Francisco and Tokyo register with it using `device-connect-edge`, and an AI agent in Bangalore orchestrates both devices using `device-connect-agent-tools`. Every `invoke_device` call and event flows through the server, demonstrating how the server enables secure, multi-network device coordination.