Skip to content

Commit f1dccbd

Browse files
Merge branch 'ArmDeveloperEcosystem:main' into Executorch_Kleid
2 parents e540024 + e476ff3 commit f1dccbd

File tree

7 files changed

+85
-77
lines changed

7 files changed

+85
-77
lines changed

content/install-guides/wperf.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -30,26 +30,26 @@ multitool_install_part: false # Set to true if a sub-page of a multi-page arti
3030
layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles
3131
---
3232

33-
WindowsPerf is a Linux Perf inspired Windows on Arm performance profiling tool. Profiling is based on ARM64 PMU and its hardware counters. WindowsPerf supports the counting model for obtaining aggregate counts of occurrences of special events, and sampling model for determining the frequencies of event occurrences produced by program locations at the function, basic block, and/or instruction levels. WindowsPerf is an open-source project hosted on [GitHub](https://github.com/arm-developer-tools/windowsperf).
33+
WindowsPerf is a Linux Perf-inspired Windows on Arm performance profiling tool. Profiling is based on the Arm AArch64 PMU and its hardware counters. WindowsPerf supports the counting model for obtaining aggregate counts of occurrences of PMU events, and the sampling model for determining the frequencies of event occurrences produced by program locations at the function, basic block, and instruction levels. WindowsPerf is an open-source project hosted on [GitHub](https://github.com/arm-developer-tools/windowsperf).
3434

35-
WindowsPerf consists of a kernel-mode driver and a user-space command-line tool. The WindowsPerf command line tool can be seamlessly integrated with both the [WindowsPerf Visual Studio Extension](#vs2022) and the [WindowsPerf VS Code Extension](#vscode). These extensions, which can be downloaded from the Visual Studio Marketplace, enhance the functionality of WindowsPerf by providing a more user-friendly interface and additional features for performance analysis and debugging. This integration allows developers to efficiently analyze and optimize their applications directly within their preferred development environment.
35+
WindowsPerf consists of a kernel-mode driver and a user-space command-line tool. You can seamlessly integrate the WindowsPerf command line tool with both the [WindowsPerf Visual Studio Extension](#vs2022) and the [WindowsPerf VS Code Extension](#vscode). These extensions, which you can download from the Visual Studio Marketplace, enhance the functionality of WindowsPerf by providing a user-friendly interface, and additional features for performance analysis and debugging. This integration allows developers to efficiently analyze and optimize their applications directly within their preferred development environment.
3636

3737

38-
{{% notice Virtual Machines%}}
39-
WindowsPerf cannot be used on virtual machines, such as cloud instances.
38+
{{% notice Note%}}
39+
You cannot use WindowsPerf on virtual machines, such as cloud instances.
4040
{{% /notice %}}
4141

4242
## Visual Studio and the Windows Driver Kit (WDK)
4343

44-
WindowsPerf relies on `dll` files installed with Visual Studio (Community Edition or higher) and (optionally) installers from the Windows Driver Kit extension.
44+
WindowsPerf relies on `dll` files installed with Visual Studio, from the Community Edition or higher and, optionally, installers from the Windows Driver Kit extension.
4545

46-
[Download the Windows Driver Kit (WDK)](https://learn.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk) explains the WDK installation process.
46+
For information about the WDK installation process, see [Download the Windows Driver Kit (WDK)](https://learn.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk).
4747

4848
See also the [Visual Studio for Windows on Arm install guide](/install-guides/vs-woa/).
4949

5050
## Download WindowsPerf
5151

52-
The latest release package `windowsperf-bin-<version>.zip` can be downloaded from the Arm GitHub repository:
52+
You can download the latest release package, `windowsperf-bin-<version>.zip` from the Arm GitHub repository:
5353
```url
5454
https://github.com/arm-developer-tools/windowsperf/releases
5555
```
@@ -70,17 +70,17 @@ tar -xmf windowsperf-bin-3.8.0.zip
7070

7171
## Install wperf driver
7272

73-
You can install the kernel driver using supplied `wperf-devgen` installer.
73+
You can install the kernel driver using the supplied `wperf-devgen` installer.
7474

7575
The [wperf-devgen](https://github.com/arm-developer-tools/windowsperf/blob/main/wperf-devgen/README.md) tool has been designated as the preferred installer and uninstaller for the WindowsPerf Kernel Driver in the latest release. This tool offers a simple process for managing the installation and removal of the driver.
7676

7777
{{% notice Note%}}
7878
You must install the driver as `Administrator`.
7979
{{% /notice %}}
8080

81-
Open a `Windows Command Prompt` terminal with `Run as administrator` enabled.
81+
Open a **Windows Command Prompt** terminal with **Run as administrator** selected.
8282

83-
Make sure you are in the `windowsperf-bin-<version>` directory.
83+
Make sure you are in the `windowsperf-bin-<version>` directory:
8484

8585
```command
8686
cd windowsperf-bin-3.8.0
@@ -95,7 +95,7 @@ cd wperf-driver
9595
wperf-devgen install
9696
```
9797

98-
The output is similar to:
98+
The output should be similar to:
9999

100100
```output
101101
Executing command: install.
@@ -108,7 +108,7 @@ Device installed successfully
108108
You can check everything is working by running the `wperf` executable.
109109

110110
{{% notice Note%}}
111-
Once the above driver is installed, you can use `wperf` without `Administrator` privileges.
111+
Once you have installed the driver, you can use `wperf` without `Administrator` privileges.
112112
{{% /notice %}}
113113

114114
For example:
@@ -129,7 +129,7 @@ You see output similar to:
129129
```
130130
## Uninstall wperf driver
131131

132-
You can uninstall (aka "remove") the kernel driver using supplied [wperf-devgen](#devgen_uninstall) uninstaller.
132+
You can uninstall (or *remove*) the kernel driver using supplied [wperf-devgen](#devgen_uninstall) uninstaller.
133133

134134
{{% notice Note%}}
135135
You must uninstall the driver as `Administrator`.
@@ -149,17 +149,17 @@ Executing command: uninstall.
149149
Uninstall requested.
150150
Root\WPERFDRIVER
151151
Device found
152-
Device uninstalled sucessfully
152+
Device uninstalled successfully
153153
```
154154

155155
## Install WindowsPerf Virtual Studio Extension (optional) {#vs2022}
156156

157-
WindowsPerf GUI (Graphical User Interface) project, a Visual Studio 2022 extension designed to bring a seamless UI experience to WindowsPerf, the command-line performance profiling tool for Windows on Arm. Extension is available on the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=Arm.WindowsPerfGUI).
157+
WindowsPerf GUI (Graphical User Interface) is a Visual Studio 2022 extension designed to bring a seamless UI experience to WindowsPerf, the command-line performance profiling tool for Windows on Arm. It is available on the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=Arm.WindowsPerfGUI).
158158

159-
Install by opening `Extensions` menu, select `Manage Extensions` and click `Browse`. Type `WindowsPerf` to search for Arm WindowsPerf GUI extension. Click `Install`.
159+
Install by opening **Extensions** menu, click **Manage Extensions**, and click **Browse**. Type `WindowsPerf` to search for Arm WindowsPerf GUI extension. Click **Install**.
160160

161161
{{% notice How to set up wperf.exe path in the extension%}}
162-
In order to set the path to the `wperf.exe` executable, go to `Tools -> Options -> WindowsPerf -> WindowsPerf Path` and set the absolute path to the wperf.exe executable and then on the Validate button.
162+
In order to set the path to the `wperf.exe` executable, go to **Tools** -> **Options** -> **WindowsPerf** -> **WindowsPerf Path** and set the absolute path to the wperf.exe executable and then click on the **Validate** button.
163163
{{% /notice %}}
164164

165165
Also, visit WindowsPerf GUI project website on [GitHub](https://github.com/arm-developer-tools/windowsperf-vs-extension) for more details and latest updates.
@@ -168,9 +168,9 @@ Also, visit WindowsPerf GUI project website on [GitHub](https://github.com/arm-d
168168

169169
In addition to the command-line tools, `WindowsPerf` is available on the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=Arm.windowsperf).
170170

171-
Install by opening the `Extensions` view (`Ctrl`+`Shift`+`X`) and searching for `WindowsPerf`. Click `Install`.
171+
Install by opening the **Extensions** view (Ctrl+Shift+X) and searching for `WindowsPerf`. Click **Install**.
172172

173-
Open `Settings` (`Ctrl`+`,`) > `Extensions` > `WindowsPerf`, and specify the path to the `wperf` executable.
173+
Open **Settings** (Ctrl+,) > **Extensions** > **WindowsPerf**, and specify the path to the `wperf` executable.
174174

175175
{{% notice Non-Windows on Arm host%}}
176176
You can only generate reports from a Windows on Arm device.

content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
11
---
2-
title: MLOps with Arm-hosted GitHub Runners
3-
draft: true
2+
title: Optimize MLOps with Arm-hosted GitHub Runners
3+
44
cascade:
5-
draft: true
65

7-
minutes_to_complete: 30
6+
minutes_to_complete: 60
87

9-
who_is_this_for: This is an introductory topic for software developers interested in automation for machine learning (ML) tasks.
8+
who_is_this_for: This is an introductory topic for software developers interested in automation for Machine Learning (ML) tasks.
109

1110
learning_objectives:
1211
- Set up an Arm-hosted GitHub runner.
1312
- Train and test a PyTorch ML model with the German Traffic Sign Recognition Benchmark (GTSRB) dataset.
14-
- Use PyTorch compiled with OpenBLAS and oneDNN with Arm Compute Library to compare the performance of a trained model.
15-
- Containerize the model and push the container to DockerHub.
16-
- Automate all the steps in the ML workflow using GitHub Actions.
13+
- Compare the performance of two trained PyTorch ML models; one model compiled with OpenBLAS (Open Basic Linear Algebra Subprograms Library) and oneDNN (Deep Neural Network Library), and the other model compiled with Arm Compute Library (ACL).
14+
- Containerize a ML model and push the container to DockerHub.
15+
- Automate steps in an ML workflow using GitHub Actions.
1716

1817
prerequisites:
1918
- A GitHub account with access to Arm-hosted GitHub runners.
2019
- A Docker Hub account for storing container images.
21-
- Some familiarity with ML and continuous integration and deployment (CI/CD) concepts.
20+
- Familiarity with the concepts of ML and continuous integration and deployment (CI/CD).
2221

2322
author_primary: Pareena Verma, Annie Tallund
2423

content/learning-paths/servers-and-cloud-computing/gh-runners/_review.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,29 @@ review:
88
- "No"
99
correct_answer: 1
1010
explanation: >
11-
Arm-hosted runners for use with GitHub Actions are available for Linux and Windows.
11+
You can use Arm-hosted runners with GitHub Actions, and they are available for both Linux and Windows.
1212
1313
- questions:
1414
question: >
15-
What is the GTSRB dataset made up of?
15+
What does the GTSRB dataset consist of?
1616
answers:
17-
- Sound files of spoken German words
18-
- Sound files of animal sounds
19-
- Images of flower petals
20-
- Images of German traffic signs
17+
- Sound files of spoken German words.
18+
- Sound files of animal sounds.
19+
- Images of flower petals.
20+
- Images of German traffic signs.
2121
correct_answer: 4
2222
explanation: >
23-
GTSRB stands for German Traffic Signs Recognition Benchmark
23+
GTSRB stands for German Traffic Signs Recognition Benchmark, and the dataset consists of images of German traffic signs.
2424
2525
- questions:
2626
question: >
27-
ACL is included in PyTorch.
27+
Is ACL included in PyTorch?
2828
answers:
2929
- "True"
3030
- "False"
3131
correct_answer: 1
3232
explanation: >
33-
While it is possible to use ACL stand-alone, the optimized kernels are built into PyTorch through the oneDNN backend.
33+
While it is possible to use Arm Compute Library independently, the optimized kernels are built into PyTorch through the oneDNN backend.
3434
3535
3636

content/learning-paths/servers-and-cloud-computing/gh-runners/background.md

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,33 +10,43 @@ layout: learningpathall
1010

1111
In this Learning Path, you will learn how to automate an MLOps workflow using Arm-hosted GitHub runners and GitHub Actions.
1212

13-
You will learn how to do the following tasks:
13+
You will perform the following tasks:
1414
- Train and test a neural network model with PyTorch.
1515
- Compare the model inference time using two different PyTorch backends.
1616
- Containerize the model and save it to DockerHub.
1717
- Deploy the container image and use API calls to access the model.
1818

1919
## GitHub Actions
2020

21-
GitHub Actions is a platform that automates software development workflows, including continuous integration and continuous delivery. Every repository on GitHub has an `Actions` tab as shown below:
21+
GitHub Actions is a platform that automates software development workflows, which includes Continuous Integration and Continuous Delivery (CI/CD).
22+
23+
Every repository on GitHub has an **Actions** tab as shown below:
2224

2325
![#actions-gui](images/actions-gui.png)
2426

2527
GitHub Actions runs workflow files to automate processes. Workflows run when specific events occur in a GitHub repository.
2628

2729
[YAML](https://yaml.org/) defines a workflow.
2830

29-
Workflows specify how a job is triggered, the running environment, and the commands to run.
31+
Workflows specify:
32+
33+
* How a job is triggered.
34+
* The running environment.
35+
* The commands to run.
3036

31-
The machine running workflows is called a _runner_.
37+
The machine running the workflows is called a _runner_.
3238

3339
## Arm-hosted GitHub runners
3440

35-
Hosted GitHub runners are provided by GitHub so you don't need to setup and manage cloud infrastructure. Arm-hosted GitHub runners use the Arm architecture so you can build and test software without cross-compiling or instruction emulation.
41+
Hosted GitHub runners are provided by GitHub, so you do not need to set up and manage cloud infrastructure. Arm-hosted GitHub runners use the Arm architecture so you can build and test software without the necessity for cross-compiling or instruction emulation.
42+
43+
Arm-hosted GitHub runners enable you to:
3644

37-
Arm-hosted GitHub runners enable you to optimize your workflows, reduce cost, and improve energy consumption.
45+
* Optimize your workflows.
46+
* Reduce cost.
47+
* Improve energy consumption.
3848

39-
Additionally, the Arm-hosted runners are preloaded with essential tools, making it easier for you to develop and test your applications.
49+
Additionally, the Arm-hosted runners are preloaded with essential tools, which makes it easier for to develop and test your applications.
4050

4151
Arm-hosted runners are available for Linux and Windows. This Learning Path uses Linux.
4252

@@ -66,22 +76,22 @@ jobs:
6676
6777
## Machine Learning Operations (MLOps)
6878
69-
Machine learning use-cases have a need for reliable workflows to maintain performance and quality.
79+
Machine learning use cases require reliable workflows to maintain both performance and quality of output.
7080
71-
There are many tasks that can be automated in the ML lifecycle.
72-
- Model training and re-training
73-
- Model performance analysis
74-
- Data storage and processing
75-
- Model deployment
81+
There are tasks that can be automated in the ML lifecycle, such as:
82+
- Model training and retraining.
83+
- Model performance analysis.
84+
- Data storage and processing.
85+
- Model deployment.
7686
77-
Developer Operations (DevOps) refers to good practices for collaboration and automation, including CI/CD. The domain-specific needs for ML, combined with DevOps knowledge, creates the new term MLOps.
87+
Developer Operations (DevOps) refers to good practices for collaboration and automation, including CI/CD. MLOps describes the area of practice where the ML application development intersects with ML system deployment and operations.
7888
7989
## German Traffic Sign Recognition Benchmark (GTSRB)
8090
8191
This Learning Path explains how to train and test a PyTorch model to perform traffic sign recognition.
8292
8393
You will learn how to use the GTSRB dataset to train the model. The dataset is free to use under the [Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/) license. It contains thousands of images of traffic signs found in Germany. It has become a well-known resource to showcase ML applications.
8494
85-
The GTSRB dataset is also good for comparing performance and accuracy of different models and to compare and contrast different PyTorch backends.
95+
The GTSRB dataset is also effective for comparing the performance and accuracy of both different models, and different PyTorch backends.
8696
87-
Continue to the next section to learn how to setup an end-to-end MLOps workflow using Arm-hosted GitHub runners.
97+
Continue to the next section to learn how to set up an end-to-end MLOps workflow using Arm-hosted GitHub runners.

content/learning-paths/servers-and-cloud-computing/gh-runners/compare-performance.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ In this section, you will change the PyTorch backend being used to test the trai
1414

1515
In the previous section, you used the PyTorch 2.3.0 Docker Image compiled with OpenBLAS from DockerHub to run your testing workflow. PyTorch can be run with other backends. You will now modify the testing workflow to use PyTorch 2.3.0 Docker Image compiled with OneDNN and the Arm Compute Library.
1616

17-
The [Arm Compute Library](https://github.com/ARM-software/ComputeLibrary) is a collection of low-level machine learning functions optimized for Arm's Cortex-A and Neoverse processors and Mali GPUs. Arm-hosted GitHub runners use Arm Neoverse CPUs, which make it possible to optimize your neural networks to take advantage of processor features. ACL implements kernels (also known as operators or layers), using specific instructions that run faster on AArch64.
17+
The [Arm Compute Library](https://github.com/ARM-software/ComputeLibrary) is a collection of low-level machine learning functions optimized for Arm's Cortex-A and Neoverse processors and Mali GPUs. Arm-hosted GitHub runners use Arm Neoverse CPUs, which make it possible to optimize your neural networks to take advantage of processor features. ACL implements kernels, which are also known as operators or layers, using specific instructions that run faster on AArch64.
1818

1919
ACL is integrated into PyTorch through [oneDNN](https://github.com/oneapi-src/oneDNN), an open-source deep neural network library.
2020

@@ -43,11 +43,11 @@ jobs:
4343

4444
### Run the test workflow
4545

46-
Trigger the **Test Model** job again by clicking the `Run workflow` button on the `Actions` tab.
46+
Trigger the **Test Model** job again by clicking the **Run workflow** button on the **Actions** tab.
4747

4848
The test workflow starts running.
4949

50-
Navigate to the workflow run on the `Actions` tab, click into the job, and expand the **Run testing script** step.
50+
Navigate to the workflow run on the **Actions** tab, click into the job, and expand the **Run testing script** step.
5151

5252
You see a change in the performance results with OneDNN and ACL kernels being used.
5353

0 commit comments

Comments
 (0)