Skip to content

ML Project TFLite microspeech - Build and Run on Arm Virtual Hardware FVP #226

ML Project TFLite microspeech - Build and Run on Arm Virtual Hardware FVP

ML Project TFLite microspeech - Build and Run on Arm Virtual Hardware FVP #226

# 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 TFLite microspeech - 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_6/releases/download/dev%2Fv6.0.0-dev35/ARM.CMSIS.6.0.0-dev35+geb1d42a.pack -nv
su -l arm_mlops_docker -c "/home/arm_mlops_docker/cmsis-toolbox-linux-amd64/bin/cpackget add ARM.CMSIS.6.0.0-dev35+geb1d42a.pack --agree-embedded-license"
wget -P /home/arm_mlops_docker https://github.com/ARM-software/Cortex_DFP/releases/download/dev%2Fv1.0.0-dev15/ARM.Cortex_DFP.1.0.0-dev15+gf6802e4.pack -nv
su -l arm_mlops_docker -c "/home/arm_mlops_docker/cmsis-toolbox-linux-amd64/bin/cpackget add ARM.Cortex_DFP.1.0.0-dev15+gf6802e4.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 --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 "/home/arm_mlops_docker/avh-fvp-11.22.39/avh-linux-x86/bin/FVP_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 12"