Skip to content

Commit e00f3f3

Browse files
Merge branch 'ArmDeveloperEcosystem:main' into PortingPerfLib
2 parents c4375e3 + 6da345f commit e00f3f3

File tree

61 files changed

+2279
-216
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+2279
-216
lines changed

.github/workflows/deploy.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ on:
2121
required: true
2222
HUGO_AUDIO_API:
2323
required: true
24+
HUGO_DEV_PROG_SIGNIUP_FORM_MUNCHKIN_ID:
25+
required: true
26+
HUGO_FORM_ID_FOR_PROGRAM_SIGNUP:
27+
required: true
2428

2529
env:
2630
HUGO_VERSION: 0.130.0
@@ -69,6 +73,8 @@ jobs:
6973
HUGO_LLM_API: ${{ secrets.HUGO_LLM_API }}
7074
HUGO_RAG_API: ${{ secrets.HUGO_RAG_API }}
7175
HUGO_AUDIO_API: ${{ secrets.HUGO_AUDIO_API }}
76+
HUGO_DEV_PROG_SIGNIUP_FORM_MUNCHKIN_ID: ${{ secrets.HUGO_DEV_PROG_SIGNIUP_FORM_MUNCHKIN_ID }}
77+
HUGO_FORM_ID_FOR_PROGRAM_SIGNUP: ${{ secrets.HUGO_FORM_ID_FOR_PROGRAM_SIGNUP }}
7278

7379
# Deploys website to AWS S3 and invalidate CloudFront Cache
7480
- name: Deploy to S3

.github/workflows/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,5 @@ jobs:
2424
HUGO_LLM_API: ${{ secrets.HUGO_LLM_API }}
2525
HUGO_RAG_API: ${{ secrets.HUGO_RAG_API }}
2626
HUGO_AUDIO_API: ${{ secrets.HUGO_AUDIO_API }}
27+
HUGO_DEV_PROG_SIGNIUP_FORM_MUNCHKIN_ID: ${{ secrets.HUGO_DEV_PROG_SIGNIUP_FORM_MUNCHKIN_ID }}
28+
HUGO_FORM_ID_FOR_PROGRAM_SIGNUP: ${{ secrets.HUGO_FORM_ID_FOR_PROGRAM_SIGNUP }}

.github/workflows/production.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,5 @@ jobs:
2424
HUGO_LLM_API: ${{ secrets.HUGO_LLM_API }}
2525
HUGO_RAG_API: ${{ secrets.HUGO_RAG_API }}
2626
HUGO_AUDIO_API: ${{ secrets.HUGO_AUDIO_API }}
27+
HUGO_DEV_PROG_SIGNIUP_FORM_MUNCHKIN_ID: ${{ secrets.HUGO_DEV_PROG_SIGNIUP_FORM_MUNCHKIN_ID }}
28+
HUGO_FORM_ID_FOR_PROGRAM_SIGNUP: ${{ secrets.HUGO_FORM_ID_FOR_PROGRAM_SIGNUP }}

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ node_modules/
66
package-lock.json
77
.hugo_build.lock
88
.vscode
9+
.env
10+
startup.sh
911

1012
# macOS files
1113
*.DS_Store

assets/css/feedback.css

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11

22
#feedback-container {
33
min-height: 200px;
4-
54
}
65

76
/****************************************************/
578 KB
Loading

content/install-guides/wperf.md

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,46 @@ WindowsPerf consists of a kernel-mode driver and a user-space command-line tool.
3939
You cannot use WindowsPerf on virtual machines, such as cloud instances.
4040
{{% /notice %}}
4141

42+
## Using winget (Recommended)
43+
44+
### Install
45+
46+
You can now install WindowsPerf directly from [winget](https://learn.microsoft.com/en-us/windows/package-manager/). Open an `Administrator` terminal on PowerShell and type
47+
48+
```console
49+
winget install WindowsPerf
50+
```
51+
52+
The output should look like:
53+
54+
```output
55+
Found WindowsPerf [Arm.WindowsPerf] Version 4.3.1.0
56+
This application is licensed to you by its owner.
57+
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
58+
Downloading https://developer.arm.com/-/cdn-downloads/permalink/WindowsPerf/Installer/windowsperf-4.3.1.msi
59+
3.07 MB
60+
Successfully verified installer hash
61+
Starting package install...
62+
Successfully installed
63+
```
64+
65+
![Winget installation video](/install-guides/_images/wperf-winget-installation.gif)
66+
67+
It will install the lastest available WindowsPerf along with the [WPA plugins](/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/). To check that the installation was done correctly open a new terminal tab or window and follow the instructions under the [verify installation section](/install-guides/wperf/#verify-install)
68+
69+
### Uninstall
70+
If you need to uninstall WindowsPerf, open an `Administrator` terminal on PowerShell and run:
71+
```console
72+
winget uninstall WindowsPerf
73+
```
74+
75+
The output from a successfull uninstallation will look like:
76+
```output
77+
Found WindowsPerf [Arm.WindowsPerf]
78+
Starting package uninstall...
79+
Successfully uninstalled
80+
```
81+
4282
## Visual Studio and the Windows Driver Kit (WDK)
4383

4484
WindowsPerf relies on `dll` files installed with Visual Studio, from the Community Edition or higher and, optionally, installers from the Windows Driver Kit extension.
@@ -86,7 +126,7 @@ Make sure you are in the `windowsperf-bin-<version>` directory:
86126
cd windowsperf-bin-4.0.0
87127
```
88128

89-
### Install with wperf-devgen {#devgen_install}
129+
### Install with wperf-devgen
90130

91131
Navigate to the `wperf-driver` folder and run the installer:
92132

@@ -103,7 +143,7 @@ Install requested.
103143
Device installed successfully
104144
```
105145

106-
## Verify install
146+
## Verify install
107147

108148
You can check everything is working by running the `wperf` executable.
109149

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,11 @@ layout: learningpathall
88

99
## TinyML
1010

11-
12-
This Learning Path is about TinyML. It is a starting point for learning how innovative AI technologies can be used on even the smallest of 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.
11+
This Learning Path is about TinyML. It is a starting point for learning how innovative AI technologies can be used on even the smallest of devices, making Edge AI more accessible and efficient. You will learn how to set up your host machine to facilitate compilation and ensure smooth integration across devices.
1312

1413
This section provides an overview of the domain with real-life use cases and available devices.
1514

16-
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 fewer processing capabilities.
15+
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 fewer processing capabilities.
1716

1817
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.
1918

@@ -36,7 +35,7 @@ Here are some of the key benefits of TinyML on Arm:
3635

3736
TinyML is being deployed across multiple industries, enhancing everyday experiences and enabling groundbreaking solutions. The table below shows some examples of TinyML applications.
3837

39-
| Area | Device, Arm IP | Description |
38+
| Area | Example, Arm IP | Description |
4039
| ------ | ------- | ------------ |
4140
| Healthcare | Fitbit Charge 5, Cortex-M | To monitor vital signs such as heart rate, detect arrhythmias, and provide real-time feedback. |
4241
| Agriculture | OpenAg, Cortex-M | To monitor soil moisture and optimize water usage. |
@@ -70,4 +69,4 @@ In addition to hardware, there are software platforms that can help you build Ti
7069

7170
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.
7271

73-
Now that you have an overview of the subject, you can move on to the next section where you will set up an environment on your host machine.
72+
Now that you have an overview of the subject, you can move on to the next section where you will set up a development environment.
Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
11
---
22
# User change
3-
title: "Environment Setup on Host Machine"
3+
title: "Install ExecuTorch"
44

55
weight: 3
66

77
# Do not modify these elements
88
layout: "learningpathall"
99
---
1010

11-
In this section, you will prepare a development environment to compile a Machine Learning model. These instructions have been tested on Ubuntu 22.04, 24.04, and on Windows Subsystem for Linux (WSL).
11+
In this section, you will prepare a development environment to compile a machine learning model.
12+
13+
## Introduction to ExecuTorch
14+
15+
ExecuTorch is a lightweight runtime designed for efficient execution of PyTorch models on resource-constrained devices. It enables machine learning inference on embedded and edge platforms, making it well-suited for Arm-based hardware. Since Arm processors are widely used in mobile, IoT, and embedded applications, ExecuTorch leverages Arm’s efficient CPU architectures to deliver optimized performance while maintaining low power consumption. By integrating with Arm’s compute libraries, it ensures smooth execution of AI workloads on Arm-powered devices, from Cortex-M microcontrollers to Cortex-A application processors.
1216

1317
## Install dependencies
1418

19+
These instructions have been tested on Ubuntu 22.04, 24.04, and on Windows Subsystem for Linux (WSL).
20+
1521
Python3 is required and comes installed with Ubuntu, but some additional packages are needed:
1622

1723
```bash
@@ -45,7 +51,6 @@ Run the commands below to set up the ExecuTorch internal dependencies:
4551
```bash
4652
git submodule sync
4753
git submodule update --init
48-
./install_requirements.sh
4954
./install_executorch.sh
5055
```
5156

@@ -70,8 +75,4 @@ executorch 0.6.0a0+3eea1f1
7075

7176
## Next Steps
7277

73-
Your next steps depend on your hardware.
74-
75-
If you have the Grove Vision AI Module, proceed to [Set up the Grove Vision AI Module V2 Learning Path](/learning-paths/embedded-and-microcontrollers/introduction-to-tinyml-on-arm/setup-7-grove/).
76-
77-
If you do not have the Grove Vision AI Module, you can use the Corstone-320 FVP instead. See the Learning Path [Set up the Corstone-320 FVP](/learning-paths/embedded-and-microcontrollers/introduction-to-tinyml-on-arm/env-setup-6-fvp/).
78+
Proceed to the next section to learn about and set up the virtualized hardware.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
# User change
3+
title: "Set up the Corstone-320 FVP"
4+
5+
weight: 5 # 1 is first, 2 is second, etc.
6+
7+
# Do not modify these elements
8+
layout: "learningpathall"
9+
---
10+
11+
In this section, you will run scripts to set up the Corstone-320 reference package.
12+
13+
The Corstone-320 Fixed Virtual Platform (FVP) is a pre-silicon software development environment for Arm-based microcontrollers. It provides a virtual representation of hardware, allowing developers to test and optimize software before actual hardware is available. Designed for AI and machine learning workloads, it includes support for Arm’s Ethos-U NPU and Cortex-M processors, making it ideal for embedded AI applications. The FVP accelerates development by enabling early software validation and performance tuning in a flexible, simulation-based environment.
14+
15+
The Corstone reference system is provided free of charge, although you will have to accept the license in the next step. For more information on Corstone-320, check out the [official documentation](https://developer.arm.com/documentation/109761/0000?lang=en).
16+
17+
## Corstone-320 FVP Setup for ExecuTorch
18+
19+
Navigate to the Arm examples directory in the ExecuTorch repository. Run the following command.
20+
21+
```bash
22+
cd $HOME/executorch/examples/arm
23+
./setup.sh --i-agree-to-the-contained-eula
24+
```
25+
26+
After the script has finished running, it prints a command to run to finalize the installation. This step adds the FVP executables to your system path.
27+
28+
```bash
29+
source $HOME/executorch/examples/arm/ethos-u-scratch/setup_path.sh
30+
```
31+
32+
Test that the setup was successful by running the `run.sh` script for Ethos-U85, which is the target device for Corstone-320:
33+
34+
```bash
35+
./examples/arm/run.sh --target=ethos-u85-256
36+
```
37+
38+
You will see a number of examples run on the FVP.
39+
40+
This confirms the installation, so you can now proceed to the Learning Path [Build a Simple PyTorch Model](/learning-paths/embedded-and-microcontrollers/introduction-to-tinyml-on-arm/build-model-8/).

0 commit comments

Comments
 (0)