From 49225565131450f4bb4bfe72fadaa86f611fdd89 Mon Sep 17 00:00:00 2001 From: Madeline Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Sun, 20 Oct 2024 07:43:42 +0000 Subject: [PATCH 01/10] Starting editorial --- .../gh-runners/_index.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md index 559be9fc30..2578e3e86e 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md @@ -1,24 +1,23 @@ --- -title: MLOps with Arm-hosted GitHub Runners -draft: true +title: Optimize MLOps with Arm-hosted GitHub Runners + cascade: - draft: true minutes_to_complete: 30 -who_is_this_for: This is an introductory topic for software developers interested in automation for machine learning (ML) tasks. +who_is_this_for: This is an introductory topic for software developers interested in automation for Machine Learning (ML) tasks. learning_objectives: - Set up an Arm-hosted GitHub runner. - Train and test a PyTorch ML model with the German Traffic Sign Recognition Benchmark (GTSRB) dataset. - - Use PyTorch compiled with OpenBLAS and oneDNN with Arm Compute Library to compare the performance of a trained model. - - Containerize the model and push the container to DockerHub. - - Automate all the steps in the ML workflow using GitHub Actions. + - Compare the performance of two trained PyTorch ML models; one model compiled with OpenBLAS and oneDNN, and the other model compiled with Arm Compute Library. + - Containerize a ML model and push the container to DockerHub. + - Automate steps in an ML workflow using GitHub Actions. prerequisites: - A GitHub account with access to Arm-hosted GitHub runners. - A Docker Hub account for storing container images. - - Some familiarity with ML and continuous integration and deployment (CI/CD) concepts. + - Familiarity with ML and continuous integration and deployment (CI/CD) concepts. author_primary: Pareena Verma, Annie Tallund From 4332f9b9b5fed13bf2daf13cd1943c7239947286 Mon Sep 17 00:00:00 2001 From: Madeline Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Sun, 20 Oct 2024 11:35:02 +0100 Subject: [PATCH 02/10] Update _index.md Clarified terms. --- .../servers-and-cloud-computing/gh-runners/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md index 2578e3e86e..eca68e8971 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md @@ -10,7 +10,7 @@ who_is_this_for: This is an introductory topic for software developers intereste learning_objectives: - Set up an Arm-hosted GitHub runner. - Train and test a PyTorch ML model with the German Traffic Sign Recognition Benchmark (GTSRB) dataset. - - Compare the performance of two trained PyTorch ML models; one model compiled with OpenBLAS and oneDNN, and the other model compiled with Arm Compute Library. + - 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). - Containerize a ML model and push the container to DockerHub. - Automate steps in an ML workflow using GitHub Actions. From a0c7c2938d68c6b4590bee472db99ae59e7e835a Mon Sep 17 00:00:00 2001 From: Madeline Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Sun, 20 Oct 2024 11:46:01 +0100 Subject: [PATCH 03/10] Enhancements to KC section --- .../gh-runners/_review.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/_review.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/_review.md index 393f658cae..896c181bf1 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/_review.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/_review.md @@ -8,23 +8,23 @@ review: - "No" correct_answer: 1 explanation: > - Arm-hosted runners for use with GitHub Actions are available for Linux and Windows. + You can use Arm-hosted runners with GitHub Actions, and they are available for both Linux and Windows. - questions: question: > - What is the GTSRB dataset made up of? + What does the GTSRB dataset consist of? answers: - - Sound files of spoken German words - - Sound files of animal sounds - - Images of flower petals - - Images of German traffic signs + - Sound files of spoken German words. + - Sound files of animal sounds. + - Images of flower petals. + - Images of German traffic signs. correct_answer: 4 explanation: > - GTSRB stands for German Traffic Signs Recognition Benchmark + GTSRB stands for German Traffic Signs Recognition Benchmark, and the dataset consists of images of German traffic signs. - questions: question: > - ACL is included in PyTorch. + Is ACL included in PyTorch? answers: - "True" - "False" From 182dcc096b76e4a7a7e8e9ac538521b762bc4860 Mon Sep 17 00:00:00 2001 From: Madeline Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Sun, 20 Oct 2024 12:28:56 +0100 Subject: [PATCH 04/10] Enhancements to KC section --- .../servers-and-cloud-computing/gh-runners/_review.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/_review.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/_review.md index 896c181bf1..0ccaffbc39 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/_review.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/_review.md @@ -30,7 +30,7 @@ review: - "False" correct_answer: 1 explanation: > - While it is possible to use ACL stand-alone, the optimized kernels are built into PyTorch through the oneDNN backend. + While it is possible to use Arm Compute Library independently, the optimized kernels are built into PyTorch through the oneDNN backend. From a00cadd112652a2930ea06828191e50d2a1c68a6 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Mon, 21 Oct 2024 15:07:59 +0100 Subject: [PATCH 05/10] Adjust mins to complete LP> --- .../servers-and-cloud-computing/gh-runners/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md index eca68e8971..e491e42329 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md @@ -3,7 +3,7 @@ title: Optimize MLOps with Arm-hosted GitHub Runners cascade: -minutes_to_complete: 30 +minutes_to_complete: 60 who_is_this_for: This is an introductory topic for software developers interested in automation for Machine Learning (ML) tasks. From 6a769b66e396e35f4ce37ead2c81c4601f8d746e Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Mon, 21 Oct 2024 15:09:50 +0100 Subject: [PATCH 06/10] Setup --- .../servers-and-cloud-computing/gh-runners/background.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/background.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/background.md index be6d327b3b..df6b7a16b2 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/background.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/background.md @@ -32,7 +32,7 @@ The machine running workflows is called a _runner_. ## Arm-hosted GitHub runners -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. +Hosted GitHub runners are provided by GitHub so you don't need to set up 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. Arm-hosted GitHub runners enable you to optimize your workflows, reduce cost, and improve energy consumption. @@ -84,4 +84,4 @@ You will learn how to use the GTSRB dataset to train the model. The dataset is f The GTSRB dataset is also good for comparing performance and accuracy of different models and to compare and contrast different PyTorch backends. -Continue to the next section to learn how to setup an end-to-end MLOps workflow using Arm-hosted GitHub runners. +Continue to the next section to learn how to set up an end-to-end MLOps workflow using Arm-hosted GitHub runners. From e946e549198e5a60c27f23d511da1bf147556bfa Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 22 Oct 2024 09:50:43 +0000 Subject: [PATCH 07/10] Editorial updates --- .../gh-runners/_index.md | 2 +- .../gh-runners/background.md | 26 +++++++++------- .../gh-runners/train-test.md | 31 +++++++++---------- 3 files changed, 30 insertions(+), 29 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md index e491e42329..10d30956f9 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md @@ -17,7 +17,7 @@ learning_objectives: prerequisites: - A GitHub account with access to Arm-hosted GitHub runners. - A Docker Hub account for storing container images. - - Familiarity with ML and continuous integration and deployment (CI/CD) concepts. + - Familiarity with the concepts of ML and continuous integration and deployment (CI/CD). author_primary: Pareena Verma, Annie Tallund diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/background.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/background.md index df6b7a16b2..29df41e3e1 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/background.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/background.md @@ -10,7 +10,7 @@ layout: learningpathall In this Learning Path, you will learn how to automate an MLOps workflow using Arm-hosted GitHub runners and GitHub Actions. -You will learn how to do the following tasks: +You will perform the following tasks: - Train and test a neural network model with PyTorch. - Compare the model inference time using two different PyTorch backends. - Containerize the model and save it to DockerHub. @@ -18,7 +18,9 @@ You will learn how to do the following tasks: ## GitHub Actions -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: +GitHub Actions is a platform that automates software development workflows, which includes Continuous Integration and Continuous Delivery (CI/CD). + +Every repository on GitHub has an **Actions** tab as shown below: ![#actions-gui](images/actions-gui.png) @@ -32,11 +34,11 @@ The machine running workflows is called a _runner_. ## Arm-hosted GitHub runners -Hosted GitHub runners are provided by GitHub so you don't need to set up 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. +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. Arm-hosted GitHub runners enable you to optimize your workflows, reduce cost, and improve energy consumption. -Additionally, the Arm-hosted runners are preloaded with essential tools, making it easier for you to develop and test your applications. +Additionally, the Arm-hosted runners are preloaded with essential tools, making it easier for to develop and test your applications. Arm-hosted runners are available for Linux and Windows. This Learning Path uses Linux. @@ -66,15 +68,15 @@ jobs: ## Machine Learning Operations (MLOps) -Machine learning use-cases have a need for reliable workflows to maintain performance and quality. +Machine learning use cases require reliable workflows to maintain both performance and quality of output. -There are many tasks that can be automated in the ML lifecycle. -- Model training and re-training -- Model performance analysis -- Data storage and processing -- Model deployment +There are tasks that can be automated in the ML lifecycle, such as: +- Model training and retraining. +- Model performance analysis. +- Data storage and processing. +- Model deployment. -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. +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. ## German Traffic Sign Recognition Benchmark (GTSRB) @@ -82,6 +84,6 @@ This Learning Path explains how to train and test a PyTorch model to perform tra 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. -The GTSRB dataset is also good for comparing performance and accuracy of different models and to compare and contrast different PyTorch backends. +The GTSRB dataset is also effective for comparing the performance and accuracy of both different models, and different PyTorch backends. Continue to the next section to learn how to set up an end-to-end MLOps workflow using Arm-hosted GitHub runners. diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/train-test.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/train-test.md index eadd263cfe..8064a9ca11 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/train-test.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/train-test.md @@ -6,30 +6,29 @@ weight: 3 layout: learningpathall --- -In this section, you will fork the example GitHub repository containing the project code and inspect the Python code for training and testing a neural network model. - ## Fork the example repository -Get started by forking the example repository. +In this section, you will fork the example GitHub repository containing the project code. -In a web browser, navigate to the repository at: +Get started by forking the example repository. In a web browser, navigate to the repository at: ```bash https://github.com/Arm-Labs/gh_armrunner_mlops_gtsrb ``` - -Fork the repository, using the `Fork` button: +Fork the repository, using the **Fork** button: ![#fork](/images/fork.png) Create a fork within a GitHub Organization or Team where you have access to Arm-hosted GitHub runners. {{% notice Note %}} -If a repository with the same name `gh_armrunner_mlops_gtsrb` already exists in your Organization or Team you modify the repository name to make it unique. +If a repository with the same name `gh_armrunner_mlops_gtsrb` already exists in your Organization or Team, you can modify the repository name to make it unique. {{% /notice %}} ## Learn about model training and testing +In this section, you will inspect the Python code for training and testing a neural network model. + Explore the repository using a browser to get familiar with code and the workflow files. {{% notice Note %}} @@ -42,15 +41,15 @@ The purpose is to provide an overview of the code used for training and testing In the `scripts` directory, there is a Python script called `train_model.py`. This script loads the GTSRB dataset, defines a neural network, and trains the model on the dataset. -#### Data pre-processing +#### Data preprocessing The first section loads the GTSRB dataset to prepare it for training. The GTSRB dataset is built into `torchvision`, which makes loading easier. -The transformations used when loading data are part of the pre-processing step, which makes the data uniform and ready to run through the extensive math operations of the ML model. +The transformations used when loading data are part of the preprocessing step, which makes the data uniform and ready to run through the extensive math operations of the ML model. -In accordance with common machine learning practices, data is separated into training and testing data to avoid over-fitting the neural network. +In accordance with common machine learning practices, data is separated into training and testing data to avoid overfitting the neural network. -Here is the code to load the dataset: +Use this code to load the dataset: ```python transform = transforms.Compose([ @@ -67,9 +66,9 @@ train_loader = DataLoader(train_set, batch_size=64, shuffle=True) The next step is to define a class for the model, listing the layers used. -The model defines the forward-pass function used at training time to update the weights. Additionally, the loss function and optimizer for the model are defined. +The model defines the forward pass function used at training time to update the weights. Additionally, the loss function and optimizer for the model are defined. -Here is the code defining the model: +Use this code that defines the model: ```python class TrafficSignNet(nn.Module): @@ -101,7 +100,7 @@ A training loop performs the actual training. The number of epochs is arbitrarily set to 10 for this example. When the training is finished, the model weights are saved to a `.pth` file. -Here is the code for the training loop: +Use this code for the training loop: ```python num_epochs = 10 @@ -144,7 +143,7 @@ Testing is done by loading the model that was saved after training and preparing As in training, transformations are used to load the test data from the GTSRB dataset. -Here is the code to load the model and the test data: +Use this code to load the model and the test data: ```python model_path = args.model if args.model else './models/traffic_sign_net.pth' @@ -167,7 +166,7 @@ test_loader = DataLoader(test_set, batch_size=64, shuffle=False) The testing loop passes each batch of test data through the model and compares predictions to the actual labels to calculate accuracy. -The accuracy is calculated as a percentage of correctly classified images. Both the accuracy and PyTorch profiler report is printed at the end of the script. +The accuracy is calculated as a percentage of correctly classified images. Both the accuracy and PyTorch profiler reports are printed at the end of the script. Here is the testing loop with profiling: From f582576eb4fe6451e8d5c3292f16e6d5dd0e6f20 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 22 Oct 2024 10:12:11 +0000 Subject: [PATCH 08/10] Editorial --- .../servers-and-cloud-computing/gh-runners/workflows.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/workflows.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/workflows.md index c384142530..5dc4e54534 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/workflows.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/workflows.md @@ -141,7 +141,7 @@ Complete the steps below to modify the testing workflow file: 3. Click on the completed `Train Model` workflow. -4. Copy the The 11 digit ID number from the end of the URL in your browser address bar. +4. Copy the 11-digit ID number from the end of the URL in your browser address bar. ![#run-id](/images/run-id.png) From 410844b8343c9ccbae1be2211b458d656fee5c16 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 22 Oct 2024 10:21:53 +0000 Subject: [PATCH 09/10] Editorial --- .../gh-runners/background.md | 16 ++++++++++++---- .../gh-runners/train-test.md | 8 ++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/background.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/background.md index 29df41e3e1..055846c401 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/background.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/background.md @@ -28,17 +28,25 @@ GitHub Actions runs workflow files to automate processes. Workflows run when spe [YAML](https://yaml.org/) defines a workflow. -Workflows specify how a job is triggered, the running environment, and the commands to run. +Workflows specify: -The machine running workflows is called a _runner_. +* How a job is triggered. +* The running environment. +* The commands to run. + +The machine running the workflows is called a _runner_. ## Arm-hosted GitHub runners 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. -Arm-hosted GitHub runners enable you to optimize your workflows, reduce cost, and improve energy consumption. +Arm-hosted GitHub runners enable you to: + +* Optimize your workflows. +* Reduce cost. +* Improve energy consumption. -Additionally, the Arm-hosted runners are preloaded with essential tools, making it easier for to develop and test your applications. +Additionally, the Arm-hosted runners are preloaded with essential tools, which makes it easier for to develop and test your applications. Arm-hosted runners are available for Linux and Windows. This Learning Path uses Linux. diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/train-test.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/train-test.md index 8064a9ca11..2cfdc3e401 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/train-test.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/train-test.md @@ -49,7 +49,7 @@ The transformations used when loading data are part of the preprocessing step, w In accordance with common machine learning practices, data is separated into training and testing data to avoid overfitting the neural network. -Use this code to load the dataset: +Here is the code to load the dataset: ```python transform = transforms.Compose([ @@ -68,7 +68,7 @@ The next step is to define a class for the model, listing the layers used. The model defines the forward pass function used at training time to update the weights. Additionally, the loss function and optimizer for the model are defined. -Use this code that defines the model: +Here is the code that defines the model: ```python class TrafficSignNet(nn.Module): @@ -100,7 +100,7 @@ A training loop performs the actual training. The number of epochs is arbitrarily set to 10 for this example. When the training is finished, the model weights are saved to a `.pth` file. -Use this code for the training loop: +Here is the code for the training loop: ```python num_epochs = 10 @@ -143,7 +143,7 @@ Testing is done by loading the model that was saved after training and preparing As in training, transformations are used to load the test data from the GTSRB dataset. -Use this code to load the model and the test data: +Here is the code to load the model and the test data: ```python model_path = args.model if args.model else './models/traffic_sign_net.pth' From 0b49dbd36be57dab25d8de47b9dd39d9c39b1c9c Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 22 Oct 2024 10:43:15 +0000 Subject: [PATCH 10/10] Editorial --- .../gh-runners/compare-performance.md | 6 +++--- .../gh-runners/workflows.md | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/compare-performance.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/compare-performance.md index bd07a9718e..8232c66b08 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/compare-performance.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/compare-performance.md @@ -14,7 +14,7 @@ In this section, you will change the PyTorch backend being used to test the trai 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. -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. +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. ACL is integrated into PyTorch through [oneDNN](https://github.com/oneapi-src/oneDNN), an open-source deep neural network library. @@ -43,11 +43,11 @@ jobs: ### Run the test workflow -Trigger the **Test Model** job again by clicking the `Run workflow` button on the `Actions` tab. +Trigger the **Test Model** job again by clicking the **Run workflow** button on the **Actions** tab. The test workflow starts running. -Navigate to the workflow run on the `Actions` tab, click into the job, and expand the **Run testing script** step. +Navigate to the workflow run on the **Actions** tab, click into the job, and expand the **Run testing script** step. You see a change in the performance results with OneDNN and ACL kernels being used. diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/workflows.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/workflows.md index 5dc4e54534..77519b81bd 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/workflows.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/workflows.md @@ -135,23 +135,23 @@ The `test-model.yml` file needs to be edited to be able to use the saved model f Complete the steps below to modify the testing workflow file: -1. Navigate to the `Actions` tab on your GitHub repository. +1. Navigate to the **Actions** tab on your GitHub repository. -2. Click on `Train Model` on the left side of the page. +2. Click on **Train Model** on the left side of the page. -3. Click on the completed `Train Model` workflow. +3. Click on the completed **Train Model** workflow. 4. Copy the 11-digit ID number from the end of the URL in your browser address bar. ![#run-id](/images/run-id.png) -5. Navigate back to the `Code` tab and open the file `.github/workflows/test-model.yml`. +5. Navigate back to the **Code** tab and open the file `.github/workflows/test-model.yml`. 6. Click the Edit button, represented by a pencil on the top right of the file contents. 7. Update the `run-id` parameter with the 11 digit ID number you copied. -8. Save the file by clicking the `Commit changes` button. +8. Save the file by clicking the **Commit changes** button. #### Run the workflow file @@ -160,7 +160,7 @@ You are now ready to run the **Test Model** workflow. 1. Navigate to the `Actions` tab and select the **Test Workflow** on the left side. -2. Click the `Run workflow` button to run the workflow on the main branch. +2. Click the **Run workflow** button to run the workflow on the main branch. ![#run-workflow](images/run-workflow.png) @@ -170,7 +170,7 @@ Click on the workflow to view the output from each step. ![Actions_test](/images/actions_test.png) -Click on the "Run testing script" step to see the accuracy of the model and a table of the results from the PyTorch profiler. +Click on the **Run testing script** step to see the accuracy of the model and a table of the results from the PyTorch profiler. The output from is similar to: