Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
98f9d79
Updated MLEK to Corstone-320 and removed AVH
RonanSynnottArm Jan 15, 2025
dc9d7b2
Address review feedback
RonanSynnottArm Jan 16, 2025
bf8829f
Update README.md
BmanClark Jan 16, 2025
6995ee0
Adding ExecuTorch profiling instructions
BmanClark Jan 16, 2025
c2d4cd6
Editorial first-pass.
madeline-underwood Jan 16, 2025
6d0f508
refinfra: minor wording update
danielnguyen-arm Jan 21, 2025
41ea4f4
addition of = and using " mean that this code will work with both bui…
BmanClark Jan 21, 2025
a8237af
change graviton references to axion and show how to set up network rules
JoeStech Jan 22, 2025
90ebd54
Update _index.md
pareenaverma Jan 22, 2025
0bb626a
Merge pull request #1552 from JoeStech/rag-axion-lp-edits
pareenaverma Jan 22, 2025
f06142f
Rebase TinyML LP WIP
annietllnd Jan 23, 2025
4aa2432
sve_armie.md: Fix documentation of how to specify vector length
georges-arm Jan 23, 2025
853abfe
Add ACfL system package steps for Amazon Linux 2023
garyjcarroll Jan 16, 2025
fd8eb17
Add ACfL system package steps for RHEL 9
LukeIreland1 Jan 23, 2025
8ea04b7
Update index.html
dav-mac Jan 23, 2025
c7da95f
Merge pull request #1554 from georges-arm/geoste01/sve-armie-vl-fix
jasonrandrews Jan 23, 2025
089ab88
Update _index.md
pareenaverma Jan 23, 2025
9017254
Merge pull request #1529 from RonanSynnottArm/mlek
jasonrandrews Jan 23, 2025
20bf6af
update to the learn.arm.arm href for the rag demo
pareenaverma Jan 23, 2025
af713cd
Merge pull request #1559 from pareenaverma/content_review
pareenaverma Jan 23, 2025
14ca709
Update pull-request template.
jasonrandrews Jan 23, 2025
52ec630
Merge pull request #1560 from jasonrandrews/review
jasonrandrews Jan 23, 2025
44d3c32
Update gcloud install guide with installation from archive file.
jasonrandrews Jan 23, 2025
817d0a2
Merge pull request #1561 from jasonrandrews/tool-installs
jasonrandrews Jan 23, 2025
5548edb
Merge pull request #1532 from BmanClark/patch-5
jasonrandrews Jan 24, 2025
1e96e5b
Update index.html
dav-mac Jan 24, 2025
43c78cd
Update _index.md
madeline-underwood Jan 24, 2025
471dbaa
Update 2-multithreading.md
madeline-underwood Jan 24, 2025
931a19c
Merge pull request #1558 from dav-mac/AI-generated-content-disclaimer
jasonrandrews Jan 24, 2025
d8aa2c0
Merge pull request #1557 from LukeIreland1/publish_obs
jasonrandrews Jan 24, 2025
b6b942c
adding analytics to share & CTAs on next steps
Jan 24, 2025
c396c54
Merge branch 'ArmDeveloperEcosystem:main' into main
zachlasiuk Jan 24, 2025
1d66c9b
Merge branch 'ArmDeveloperEcosystem:main' into Win-Arm-Perf-Lib
madeline-underwood Jan 26, 2025
989fc6e
Further editorial work.
madeline-underwood Jan 26, 2025
eb72a85
Continued editorial.
madeline-underwood Jan 26, 2025
7d54079
Further improvements.
madeline-underwood Jan 26, 2025
a5d07f4
automatic update of stats files
Jan 27, 2025
603f9f5
Merge branch 'ArmDeveloperEcosystem:main' into Win-Arm-Perf-Lib
madeline-underwood Jan 27, 2025
a9ce157
Further improvements.
madeline-underwood Jan 27, 2025
66ebf80
Merge pull request #1563 from zachlasiuk/main
pareenaverma Jan 27, 2025
46bc21f
Update deploy.yml
pareenaverma Jan 27, 2025
a76ad62
Update deploy.yml
pareenaverma Jan 27, 2025
900701d
Update deploy.yml
pareenaverma Jan 27, 2025
125d49b
Merge pull request #1533 from BmanClark/main
pareenaverma Jan 27, 2025
1c57c1d
Merge pull request #1534 from madeline-underwood/patch-34
pareenaverma Jan 27, 2025
21688ce
Update deploy.yml
pareenaverma Jan 27, 2025
c9ad134
Update deploy.yml
pareenaverma Jan 27, 2025
df289b5
Update deploy.yml
pareenaverma Jan 27, 2025
28e5510
Merge pull request #1565 from pareenaverma/main
pareenaverma Jan 27, 2025
0ff6e2c
Merge pull request #1540 from danielnguyen-arm/main
jasonrandrews Jan 27, 2025
516e804
review Neoverse reference design changes
jasonrandrews Jan 27, 2025
d3be902
Merge pull request #1566 from jasonrandrews/review
jasonrandrews Jan 27, 2025
d601428
Further enhancements
madeline-underwood Jan 27, 2025
c4ff114
TEMPLATE: Author analytics tracking enhanced.
Jan 27, 2025
cb78d39
Merge branch 'main' of https://github.com/zachlasiuk/arm-learning-paths
Jan 27, 2025
968de64
Merge branch 'ArmDeveloperEcosystem:main' into main
zachlasiuk Jan 27, 2025
0fff344
Further improvements.
madeline-underwood Jan 27, 2025
5d2de09
Update
madeline-underwood Jan 27, 2025
4eca2b1
Figure titles.
madeline-underwood Jan 27, 2025
d54e8ef
Further updates.
madeline-underwood Jan 27, 2025
14fae61
Merge pull request #1553 from annietllnd/tinyml-review
pareenaverma Jan 27, 2025
d8cac1e
Merge pull request #1567 from zachlasiuk/main
pareenaverma Jan 27, 2025
02fd1d1
Further improvements.
madeline-underwood Jan 28, 2025
20e71bf
fix: update windowsperf vs extension image links
nader-zouaoui Jan 28, 2025
c848b67
Added further figure labels.
madeline-underwood Jan 28, 2025
e3c73b9
Update
madeline-underwood Jan 28, 2025
8711982
Editorial
madeline-underwood Jan 28, 2025
5c607ae
Editorial
madeline-underwood Jan 28, 2025
0c1deb0
minor fixes
BmanClark Jan 28, 2025
7f6ae9a
Merge pull request #1571 from BmanClark/main
jasonrandrews Jan 28, 2025
af49cac
Merge pull request #1570 from madeline-underwood/Google_RAG_Final
pareenaverma Jan 28, 2025
8791306
review Introduction to TinyML
jasonrandrews Jan 28, 2025
a693b35
Merge pull request #1572 from jasonrandrews/review
jasonrandrews Jan 28, 2025
569b05b
Merge pull request #1569 from madeline-underwood/Win-Arm-Perf-Lib
jasonrandrews Jan 28, 2025
1e09b91
Remove Windows Dev Kit references because it is no longer available
jasonrandrews Jan 28, 2025
272d5d8
Review Windows applications using Arm PL.
jasonrandrews Jan 28, 2025
abde81c
Merge pull request #1573 from jasonrandrews/spelling
jasonrandrews Jan 28, 2025
30cabba
Merge pull request #1568 from nader-zouaoui/update-learning-path-pict…
pareenaverma Jan 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Before submitting a pull request for a new Learning Path, please review [Create a Learning Path](https://learn.arm.com//learning-paths/cross-platform/_example-learning-path/)
- [ ] I have reviewed Create a Learning Path

Please do not include any confidential information in your contribution. This includes confidential microarchitecture details and unannounced product information. No AI tool can be used to generate either content or code when creating a learning path or install guide.
Please do not include any confidential information in your contribution. This includes confidential microarchitecture details and unannounced product information.

- [ ] I have checked my contribution for confidential information

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ env:
jobs:
build_and_deploy:
# The type of runner that the job will run on
runs-on: ubuntu-latest
runs-on: ubuntu-24.04-arm
permissions:
id-token: write
contents: read
Expand Down Expand Up @@ -59,7 +59,7 @@ jobs:
run: |
hugo --minify
cp learn-image-sitemap.xml public/learn-image-sitemap.xml
bin/pagefind --site "public"
bin/pagefind.aarch64 --site "public"
env:
HUGO_LLM_API: ${{ secrets.HUGO_LLM_API }}
HUGO_RAG_API: ${{ secrets.HUGO_RAG_API }}
Expand Down
15 changes: 14 additions & 1 deletion .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3558,4 +3558,17 @@ threadCount
threadNum
useAPL
vvenc
workspaces
workspaces
ETDump
ETRecord
FAISS
IVI
PDFs
Powertrain
SpinTheCubeInGDI
TaaS
cloudsdk
highcpu
proj
sln
uploader
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ The Learning Paths created here are maintained by Arm and the Arm software devel

All contributions are welcome as long as they relate to software development for the Arm architecture.
* Write a Learning Path (or improve existing content)
* Fork this repo and submit pull requests; follow the step by step instructions in [Create a Learning Path](https://learn.arm.com//learning-paths/cross-platform/_example-learning-path/) on the website.
* Fork this repo and submit pull requests; follow the step by step instructions in [Create a Learning Path](https://learn.arm.com/learning-paths/cross-platform/_example-learning-path/) on the website.
* Ideas for a new Learning Path
* Create a new GitHub idea under the [Discussions](https://github.com/ArmDeveloperEcosystem/arm-learning-paths/discussions) area in this GitHub repo.
* Log a code issue (or other general issues)
Expand Down
78 changes: 66 additions & 12 deletions content/install-guides/acfl.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,33 +142,87 @@ install takes place **after** ACfL, you will no longer be able to fully
uninstall ACfL.
{{% /notice %}}

## Download and install using System Packages - Ubuntu Linux
## Download and install using System Packages

### Ubuntu Linux 20.04 and 22.04

Arm Compiler for Linux is available to install with the Ubuntu system package manager `apt` command.

### Setup the ACfL package repository:
#### Set up the ACfL package repository

Add the ACfL `apt` package repository to your Ubuntu 20.04 or 22.04 system:

```bash { target="ubuntu:latest" }
sudo apt update
sudo apt install -y curl
source /etc/os-release
sudo apt install -y curl environment-modules python3 libc6-dev
. /etc/os-release
curl "https://developer.arm.com/packages/ACfL%3A${NAME}-${VERSION_ID/%.*/}/${VERSION_CODENAME}/Release.key" | sudo tee /etc/apt/trusted.gpg.d/developer-arm-com.asc
echo "deb https://developer.arm.com/packages/ACfL%3A${NAME}-${VERSION_ID/%.*/}/${VERSION_CODENAME}/ ./" | sudo tee /etc/apt/sources.list.d/developer-arm-com.list
sudo apt update
```

The ACfL Ubuntu package repository is now ready to use.

### Install ACfL
#### Install ACfL

Download and install Arm Compiler for Linux with:

```bash { target="ubuntu:latest" }
sudo apt install acfl
```

### Amazon Linux 2023

Arm Compiler for Linux is available to install with either the `dnf` or `yum` system package manager.

#### Install ACfL from the Amazon Linux 2023 package repository

Install ACfL and prerequisites from the Amazon Linux 2023 `rpm` package repository with `dnf`:

```bash
sudo dnf update
sudo dnf install 'dnf-command(config-manager)' procps psmisc make environment-modules
sudo dnf config-manager --add-repo https://developer.arm.com/packages/ACfL%3AAmazonLinux-2023/latest/ACfL%3AAmazonLinux-2023.repo
sudo dnf install acfl
```

Or using the equivalent `yum` commands:

```bash
sudo yum update
sudo yum install 'dnf-command(config-manager)' procps psmisc make environment-modules
sudo yum config-manager --add-repo https://developer.arm.com/packages/ACfL%3AAmazonLinux-2023/latest/ACfL%3AAmazonLinux-2023.repo
sudo yum install acfl
```

The ACfL tools are now ready to use.

### Red Hat Enterprise Linux (RHEL) 9

Arm Compiler for Linux is available to install with either the `dnf` or `yum` system package manager.

#### Install ACfL from the RHEL 9 package repository

Install ACfL and prerequisites from the RHEL 9 `rpm` package repository with `dnf`:

```bash
sudo dnf update
sudo dnf install 'dnf-command(config-manager)' procps psmisc make environment-modules
sudo dnf config-manager --add-repo https://developer.arm.com/packages/ACfL%3ARHEL-9/standard/ACfL%3ARHEL-9.repo
sudo dnf install acfl
```

Or using the equivalent `yum` commands:

```bash
sudo yum update
sudo yum install 'dnf-command(config-manager)' procps psmisc make environment-modules
sudo yum config-manager --add-repo https://developer.arm.com/packages/ACfL%3ARHEL-9/standard/ACfL%3ARHEL-9.repo
sudo yum install acfl
```

The ACfL tools are now ready to use.

### Set up environment

Arm Compiler for Linux uses environment modules to dynamically modify your user environment. Refer to the [Environment Modules documentation](https://lmod.readthedocs.io/en/latest/#id) for more information.
Expand All @@ -178,17 +232,17 @@ Set up the environment, for example, in your `.bashrc` and add module files.
#### Ubuntu Linux:

```bash { target="ubuntu:latest" }
echo "source /usr/share/modules/init/bash" >> ~/.bashrc
echo ". /usr/share/modules/init/bash" >> ~/.bashrc
echo "module use /opt/arm/modulefiles" >> ~/.bashrc
source ~/.bashrc
. ~/.bashrc
```

#### Red Hat Linux:
#### Red Hat or Amazon Linux:

```bash { target="fedora:latest" }
echo "source /usr/share/Modules/init/bash" >> ~/.bashrc
echo ". /usr/share/Modules/init/bash" >> ~/.bashrc
echo "module use /opt/arm/modulefiles" >> ~/.bashrc
source ~/.bashrc
. ~/.bashrc
```

To list available modules:
Expand Down Expand Up @@ -217,7 +271,7 @@ Arm Compiler for Linux is available with the [Spack](https://spack.io/) package

See the [Arm Compiler for Linux and Arm PL now available in Spack](https://community.arm.com/arm-community-blogs/b/high-performance-computing-blog/posts/arm-compiler-for-linux-and-arm-pl-now-available-in-spack) blog for full details.

### Setup Spack
### Set up Spack

Clone the Spack repository and add `bin` directory to the path:

Expand Down Expand Up @@ -248,7 +302,7 @@ If you wish to install just the Arm Performance Libraries, use:
spack install armpl-gcc
```

### Setup environment
### Set up environment
Use the commands below to set up the environment:

```console
Expand Down
2 changes: 1 addition & 1 deletion content/install-guides/cmake.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ This article provides quick instructions to install CMake for Arm Linux distribu

### How do I download and install CMake for Windows on Arm?

Confirm you are using a Windows on Arm device such as Windows Dev Kit 2023 or a laptop such as Lenovo ThinkPad X13s or Surface Pro 9 with 5G.
Confirm you are using a Windows on Arm device such as the Lenovo ThinkPad X13s or Surface Pro 9 with 5G.

### How do I download and install CMake for Arm Linux distributions?

Expand Down
61 changes: 57 additions & 4 deletions content/install-guides/gcloud.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ minutes_to_complete: 5
author_primary: Jason Andrews
multi_install: false
multitool_install_part: false
official_docs: https://cloud.google.com/sdk/docs/install-sdk
official_docs: https://cloud.google.com/sdk/docs/install-sdk#deb
test_images:
- ubuntu:latest
test_maintenance: false
Expand Down Expand Up @@ -44,7 +44,9 @@ aarch64

If you see a different result, you are not using an Arm computer running 64-bit Linux.

## How do I download and install for Ubuntu on Arm?
## How do I download and install gcloud for Ubuntu on Arm?

### Install gcloud using the package manager

The easiest way to install `gcloud` for Ubuntu on Arm is to use the package manager.

Expand All @@ -62,13 +64,64 @@ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-get update && sudo apt-get install google-cloud-cli -y
```

Confirm the executable is available.
### Install gcloud using the archive file

If you cannot use the package manager or you get a Python version error such as the one below you can use the archive file.

```output
The following packages have unmet dependencies:
google-cloud-cli : Depends: python3 (< 3.12) but 3.12.3-0ubuntu2 is to be installed
```

Download the archive file and extract the contents:

```bash { target="ubuntu:latest" }
wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-linux-arm.tar.gz
sudo tar -xzf google-cloud-cli-linux-arm.tar.gz -C /opt
```

Run the installer:

```bash { target="ubuntu:latest" }
cd /opt/google-cloud-sdk
sudo ./install.sh -q
```

{{% notice Note %}}
You can change the installation directory from `/opt` to a location of your choice.
{{% /notice %}}

Add the installation directory to your search path. The installer will print the path to a script you can source to add `gcloud` to your search path.

```output
==> Source [/opt/google-cloud-sdk/completion.bash.inc] in your profile to enable shell command completion for gcloud.
==> Source [/opt/google-cloud-sdk/path.bash.inc] in your profile to add the Google Cloud SDK command line tools to your $PATH.

For more information on how to get started, please visit:
https://cloud.google.com/sdk/docs/quickstarts
```

Source the file to include `gcloud` in your search path:

```bash { target="ubuntu:latest" }
source /opt/google-cloud-sdk/path.bash.inc
```

Alternatively, you can add the `bin` directory to your path by adding the line below to your `$HOME/.bashrc` file.

```console
export PATH="/opt/google-cloud-sdk/bin:$PATH"
```

## Test gcloud

Confirm the executable is available and print the version:

```bash { target="ubuntu:latest" }
gcloud -v
```

The output should be similar to:
The output is similar to:

```output
Google Cloud SDK 418.0.0
Expand Down
6 changes: 3 additions & 3 deletions content/install-guides/windows-perf-vs-extension.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,13 @@ The WindowsPerf GUI extension is composed of several key features, each designed
- **Output Logging**: All commands executed through the GUI are logged, ensuring transparency and supporting performance analysis.
- **Sampling UI**: Customize your sampling experience by selecting events, setting frequency and duration, choosing programs for sampling, and comprehensively analyzing results. See screenshot below.

![Sampling preview #center](../_images/wperf-vs-extension-sampling-preview.png "Sampling settings UI Overview")
![Sampling preview #center](/install_guides/_images/wperf-vs-extension-sampling-preview.png "Sampling settings UI Overview")


- **Counting Settings UI**: Build a `wperf stat` command from scratch using the configuration interface, then view the output in the IDE or open it with Windows Performance Analyzer (WPA). See screenshot below.


![Counting preview #center](../_images/wperf-vs-extension-counting-preview.png "Counting settings UI Overview")
![Counting preview #center](/install_guides/_images/wperf-vs-extension-counting-preview.png "Counting settings UI Overview")

## Before you begin

Expand All @@ -69,7 +69,7 @@ To install the WindowsPerf Visual Studio Extension from Visual Studio:
4. Click on the search bar (Ctrl+L) and type `WindowsPerf`.
5. Click on the **Install** button and restart Visual Studio.

![WindowsPerf install page #center](../_images/wperf-vs-extension-install-page.png)
![WindowsPerf install page #center](/install_guides/_images/wperf-vs-extension-install-page.png)

### Installation from GitHub

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ weight: 2
layout: learningpathall
---

This Learning Path is about TinyML. It serves as a starting point for learning how cutting-edge AI technologies may be put on even the smallest of devices, making Edge AI more accessible and efficient. You will learn how to setup on your host machine and target device to facilitate compilation and ensure smooth integration across all devices.
This Learning Path is about TinyML. It serves as a starting point for learning how cutting-edge AI technologies may be used on even the smallest devices, making Edge AI more accessible and efficient. You will learn how to set up your host machine and target device to facilitate compilation and ensure smooth integration across devices.

In this section, you get an overview of the domain with real-life use-cases and available devices.

## Overview
TinyML represents a significant shift in machine learning deployment. Unlike traditional machine learning, which typically depends on cloud-based servers or high-powered hardware, TinyML is tailored to function on devices with limited resources, constrained memory, low power, and less processing capabilities. TinyML has gained popularity because it enables AI applications to operate in real-time, directly on the device, with minimal latency, enhanced privacy, and the ability to work offline. This shift opens up new possibilities for creating smarter and more efficient embedded systems.
TinyML represents a significant shift in machine learning deployment. Unlike traditional machine learning, which typically depends on cloud-based servers or high-performance hardware, TinyML is tailored to function on devices with limited resources, constrained memory, low power, and less processing capabilities. TinyML has gained popularity because it enables AI applications to operate in real-time, directly on the device, with minimal latency, enhanced privacy, and the ability to work offline. This shift opens up new possibilities for creating smarter and more efficient embedded systems.

### Benefits and applications

Expand Down Expand Up @@ -42,7 +42,7 @@ TinyML is being deployed across multiple industries, enhancing everyday experien

### Examples of Arm-based devices

There are many Arm-based off-the-shelf devices you can use for TinyML projects. Some of them are listed below, but the list is not exhaustive.
There are many Arm-based devices you can use for TinyML projects. Some of them are listed below, but the list is not exhaustive.

#### Raspberry Pi 4 and 5

Expand All @@ -64,6 +64,6 @@ The Arduino Nano, equipped with a suite of sensors, supports TinyML and is ideal

In addition to hardware, there are software platforms that can help you build TinyML applications.

Edge Impulse platform offers a suite of tools for developers to build and deploy TinyML applications on Arm-based devices. It supports devices like Raspberry Pi, Arduino, and STMicroelectronics boards.
Edge Impulse offers a suite of tools for developers to build and deploy TinyML applications on Arm-based devices. It supports devices like Raspberry Pi, Arduino, and STMicroelectronics boards.

Now that you have an overview of the subject, move on to the next section where you will set up an environment on your host machine.
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ learning_objectives:
- Understand the benefits of deploying AI models on Arm-based edge devices.
- Select Arm-based devices for TinyML.
- Install and configure a TinyML development environment.
- Perform best practices for ensuring optimal performance on constrained edge devices.
- Apply best practices for ensuring optimal performance on constrained edge devices.


prerequisites:
- Basic knowledge of machine learning concepts.
- A Linux host machine or VM running Ubuntu 22.04 or higher.
- A [Grove Vision AI Module](https://wiki.seeedstudio.com/Grove-Vision-AI-Module/) **or** an Arm license to run the Corstone-300 Fixed Virtual Platform (FVP).
- A [Grove Vision AI Module](https://wiki.seeedstudio.com/Grove-Vision-AI-Module/) or an Arm license to run the Corstone-300 Fixed Virtual Platform (FVP).


author_primary: Dominica Abena O. Amanfo
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ further_reading:
title: TinyML Brings AI to Smallest Arm Devices
link: https://newsroom.arm.com/blog/tinyml
type: blog
- resource:
title: Arm Compiler for Embedded
link: https://developer.arm.com/Tools%20and%20Software/Arm%20Compiler%20for%20Embedded
type: documentation
- resource:
title: Arm GNU Toolchain
link: https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain
type: documentation



Expand Down
Loading
Loading