You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/install-guides/wperf.md
+19-19Lines changed: 19 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,26 +30,26 @@ multitool_install_part: false # Set to true if a sub-page of a multi-page arti
30
30
layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles
31
31
---
32
32
33
-
WindowsPerf is a Linux Perfinspired 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).
34
34
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.
36
36
37
37
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.
40
40
{{% /notice %}}
41
41
42
42
## Visual Studio and the Windows Driver Kit (WDK)
43
43
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.
45
45
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).
47
47
48
48
See also the [Visual Studio for Windows on Arm install guide](/install-guides/vs-woa/).
49
49
50
50
## Download WindowsPerf
51
51
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:
@@ -70,17 +70,17 @@ tar -xmf windowsperf-bin-3.8.0.zip
70
70
71
71
## Install wperf driver
72
72
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.
74
74
75
75
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.
76
76
77
77
{{% notice Note%}}
78
78
You must install the driver as `Administrator`.
79
79
{{% /notice %}}
80
80
81
-
Open a `Windows Command Prompt` terminal with `Run as administrator` enabled.
81
+
Open a **Windows Command Prompt** terminal with **Run as administrator** selected.
82
82
83
-
Make sure you are in the `windowsperf-bin-<version>` directory.
83
+
Make sure you are in the `windowsperf-bin-<version>` directory:
84
84
85
85
```command
86
86
cd windowsperf-bin-3.8.0
@@ -95,7 +95,7 @@ cd wperf-driver
95
95
wperf-devgen install
96
96
```
97
97
98
-
The output is similar to:
98
+
The output should be similar to:
99
99
100
100
```output
101
101
Executing command: install.
@@ -108,7 +108,7 @@ Device installed successfully
108
108
You can check everything is working by running the `wperf` executable.
109
109
110
110
{{% 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.
112
112
{{% /notice %}}
113
113
114
114
For example:
@@ -129,7 +129,7 @@ You see output similar to:
129
129
```
130
130
## Uninstall wperf driver
131
131
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.
## Install WindowsPerf Virtual Studio Extension (optional) {#vs2022}
156
156
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).
158
158
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**.
160
160
161
161
{{% 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.
163
163
{{% /notice %}}
164
164
165
165
Also, visit WindowsPerf GUI project website on [GitHub](https://github.com/arm-developer-tools/windowsperf-vs-extension) for more details and latest updates.
In addition to the command-line tools, `WindowsPerf` is available on the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=Arm.windowsperf).
170
170
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**.
172
172
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.
174
174
175
175
{{% notice Non-Windows on Arm host%}}
176
176
You can only generate reports from a Windows on Arm device.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md
+8-9Lines changed: 8 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,24 +1,23 @@
1
1
---
2
-
title: MLOps with Arm-hosted GitHub Runners
3
-
draft: true
2
+
title: Optimize MLOps with Arm-hosted GitHub Runners
3
+
4
4
cascade:
5
-
draft: true
6
5
7
-
minutes_to_complete: 30
6
+
minutes_to_complete: 60
8
7
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.
10
9
11
10
learning_objectives:
12
11
- Set up an Arm-hosted GitHub runner.
13
12
- 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.
17
16
18
17
prerequisites:
19
18
- A GitHub account with access to Arm-hosted GitHub runners.
20
19
- 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).
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/gh-runners/background.md
+26-16Lines changed: 26 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,33 +10,43 @@ layout: learningpathall
10
10
11
11
In this Learning Path, you will learn how to automate an MLOps workflow using Arm-hosted GitHub runners and GitHub Actions.
12
12
13
-
You will learn how to do the following tasks:
13
+
You will perform the following tasks:
14
14
- Train and test a neural network model with PyTorch.
15
15
- Compare the model inference time using two different PyTorch backends.
16
16
- Containerize the model and save it to DockerHub.
17
17
- Deploy the container image and use API calls to access the model.
18
18
19
19
## GitHub Actions
20
20
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:
22
24
23
25

24
26
25
27
GitHub Actions runs workflow files to automate processes. Workflows run when specific events occur in a GitHub repository.
26
28
27
29
[YAML](https://yaml.org/) defines a workflow.
28
30
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.
30
36
31
-
The machine running workflows is called a _runner_.
37
+
The machine running the workflows is called a _runner_.
32
38
33
39
## Arm-hosted GitHub runners
34
40
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:
36
44
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.
38
48
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.
40
50
41
51
Arm-hosted runners are available for Linux and Windows. This Learning Path uses Linux.
42
52
@@ -66,22 +76,22 @@ jobs:
66
76
67
77
## Machine Learning Operations (MLOps)
68
78
69
-
Machine learning use-cases have a need for reliable workflows to maintain performance and quality.
79
+
Machine learning usecases require reliable workflows to maintain both performance and quality of output.
70
80
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.
76
86
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.
78
88
79
89
## German Traffic Sign Recognition Benchmark (GTSRB)
80
90
81
91
This Learning Path explains how to train and test a PyTorch model to perform traffic sign recognition.
82
92
83
93
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.
84
94
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.
86
96
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.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/gh-runners/compare-performance.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ In this section, you will change the PyTorch backend being used to test the trai
14
14
15
15
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.
16
16
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.
18
18
19
19
ACL is integrated into PyTorch through [oneDNN](https://github.com/oneapi-src/oneDNN), an open-source deep neural network library.
20
20
@@ -43,11 +43,11 @@ jobs:
43
43
44
44
### Run the test workflow
45
45
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.
47
47
48
48
The test workflow starts running.
49
49
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.
51
51
52
52
You see a change in the performance results with OneDNN and ACL kernels being used.
0 commit comments