ML Project - Build and Run on Arm Virtual Hardware FVP #11
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This YAML file is used to build and run an ML project on Arm Virtual Hardware FVP | |
# It contains a job that runs tests on a Ubuntu machine using a custom Docker image | |
name: ML Project - Build and Run on Arm Virtual Hardware FVP | |
on: | |
# Trigger the workflow when a workflow run is completed | |
workflow_run: | |
workflows: ["Licensed Docker Image - Build and Push"] | |
types: | |
- completed | |
# Trigger the workflow manually | |
workflow_dispatch: | |
jobs: | |
run_test: | |
runs-on: ubuntu-latest | |
container: | |
# Use the custom Docker image with the necessary tools and dependencies | |
image: ghcr.io/arm-software/avh-mlops/arm-mlops-docker-licensed:latest | |
credentials: | |
# Set the Docker image credentials using the actor and a GitHub token | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- name: Checkout repository | |
# Check out the repository containing the ML project | |
uses: actions/checkout@v2 | |
- name: Set permissions for working directory __w | |
# Set permissions for the working directory to avoid permission errors | |
run: chmod 777 -R /__w | |
- name: Install custom CMSIS packs | |
# Install custom CMSIS packs required for the ML project | |
run: | | |
wget -P /home/arm_mlops_docker https://github.com/ARM-software/CMSIS-DFP/releases/download/dev%2Fv1.0.0-dev12/ARM.CMSIS_DFP.1.0.0-dev12+g285da21.pack -nv | |
su -l arm_mlops_docker -c "/home/arm_mlops_docker/cmsis-toolbox-linux-amd64/bin/cpackget add ARM.CMSIS_DFP.1.0.0-dev12+g285da21.pack --agree-embedded-license" | |
- name: Build Model for Cortex-M55 with AC6 (size) | |
# Build the ML model for Cortex-M55 using AC6 toolchain and size optimization | |
run: | | |
su - arm_mlops_docker -c "/home/arm_mlops_docker/cmsis-toolbox-linux-amd64/bin/cbuild /__w/AVH-MLOps/AVH-MLOps/TFLmicrospeech/MLOps.csolution.yml --packs --context ML_Model.size+CM55 --toolchain AC6" | |
- name: Build Test Project for Cortex-M55 with AC6 (size) | |
# Build the test project for Cortex-M55 using AC6 toolchain and size optimization | |
run: | | |
su - arm_mlops_docker -c "/home/arm_mlops_docker/cmsis-toolbox-linux-amd64/bin/cbuild /__w/AVH-MLOps/AVH-MLOps/TFLmicrospeech/MLOps.csolution.yml --packs --context ML_Test.size+CM55 --update-rte --toolchain AC6" | |
- name: Execute Test Project on Cortex-M55 Arm Virtual Hardware FVP | |
# Execute the test project on Cortex-M55 Arm Virtual Hardware FVP | |
run: | | |
su - arm_mlops_docker -c "LD_LIBRARY_PATH=/home/arm_mlops_docker/avh-fvp-11.21.15/avh-fvp-cortex-m-linux-amd64/bin/ /home/arm_mlops_docker/avh-fvp-11.21.15/avh-fvp-cortex-m-linux-amd64/bin/VHT_Corstone_SSE-300_Ethos-U55 -f /__w/AVH-MLOps/AVH-MLOps/TFLmicrospeech/Target/CM55_Ethos/fvp_config.txt /__w/AVH-MLOps/AVH-MLOps/TFLmicrospeech/out/ML_Test/CM55/size/ML_Test.axf --simlimit 22" |