Bump deps #129
Workflow file for this run
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
name: Test example applications | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
types: [opened, synchronize, reopened, ready_for_review] | |
jobs: | |
# Cancel previous running actions for the same PR | |
cancel_previous: | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Cancel Workflow Action | |
uses: styfle/[email protected] | |
checks: | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-latest | |
steps: | |
# --- Update code --- | |
- name: "Checkout code" | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
# --- Formatting --- | |
- name: "Format code" | |
run: ./bin/inv_wrapper.sh format-code --check | |
build-examples: | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-latest | |
container: | |
image: faasm.azurecr.io/examples-build:0.3.1_0.3.1 | |
credentials: | |
username: ${{ secrets.ACR_SERVICE_PRINCIPAL_ID }} | |
password: ${{ secrets.ACR_SERVICE_PRINCIPAL_PASSWORD }} | |
steps: | |
- name: "Checkout code" | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: "Build FFmpeg" | |
run: ./bin/inv_wrapper.sh ffmpeg | |
- name: "Build ImageMagick" | |
run: ./bin/inv_wrapper.sh libpng imagemagick | |
- name: "Build Kernels" | |
run: ./bin/inv_wrapper.sh kernels kernels --native | |
- name: "Build LAMMPS" | |
run: ./bin/inv_wrapper.sh lammps lammps --native | |
- name: "Build Lulesh" | |
run: ./bin/inv_wrapper.sh lulesh lulesh --native | |
- name: "Build TensorFlow" | |
run: ./bin/inv_wrapper.sh tensorflow | |
- name: "Build PolyBench/C" | |
run: ./bin/inv_wrapper.sh polybench polybench --native | |
- name: "Build functions used in the tests" | |
run: ./bin/inv_wrapper.sh func.tests | |
- name: "Upload examples wasm" | |
uses: actions/[email protected] | |
with: | |
name: examples-wasm | |
path: /usr/local/faasm/wasm | |
- name: "Copy WASM files to distribute as an artifact" | |
run: ./bin/inv_wrapper.sh wasm | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: examples-wasm | |
path: ./wasm | |
run-examples: | |
if: github.event.pull_request.draft == false | |
needs: [build-examples] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
wasm_vm: [wavm, wamr] | |
defaults: | |
run: | |
working-directory: /usr/local/code/faasm | |
env: | |
CGROUP_MODE: off | |
DEFAULT_MPI_WORLD_SIZE: 4 | |
HOST_TYPE: ci | |
LOG_LEVEL: info | |
NETNS_MODE: off | |
OVERRIDE_CPU_COUNT: 30 | |
PLANNER_HOST: planner | |
PLANNER_PORT: 8080 | |
REDIS_QUEUE_HOST: redis | |
REDIS_STATE_HOST: redis | |
WASM_VM: ${{ matrix.wasm_vm }} | |
container: | |
image: faasm.azurecr.io/examples-run:0.15.0 | |
credentials: | |
username: ${{ secrets.ACR_SERVICE_PRINCIPAL_ID }} | |
password: ${{ secrets.ACR_SERVICE_PRINCIPAL_PASSWORD }} | |
services: | |
redis: | |
image: faasm.azurecr.io/redis:0.15.0 | |
credentials: | |
username: ${{ secrets.ACR_SERVICE_PRINCIPAL_ID }} | |
password: ${{ secrets.ACR_SERVICE_PRINCIPAL_PASSWORD }} | |
minio: | |
image: faasm.azurecr.io/minio:0.15.0 | |
credentials: | |
username: ${{ secrets.ACR_SERVICE_PRINCIPAL_ID }} | |
password: ${{ secrets.ACR_SERVICE_PRINCIPAL_PASSWORD }} | |
env: | |
MINIO_ROOT_USER: minio | |
MINIO_ROOT_PASSWORD: minio123 | |
planner: | |
image: faasm.azurecr.io/planner:0.10.0 | |
steps: | |
- name: "Download examples wasm" | |
uses: actions/[email protected] | |
with: | |
name: examples-wasm | |
path: /usr/local/faasm/wasm | |
- name: "Run codegen for all the examples" | |
run: | | |
./bin/inv_wrapper.sh codegen.user kernels-mpi | |
./bin/inv_wrapper.sh codegen.user kernels-omp | |
./bin/inv_wrapper.sh codegen.user polybench | |
./bin/inv_wrapper.sh codegen imagemagick main | |
./bin/inv_wrapper.sh codegen lammps main | |
./bin/inv_wrapper.sh codegen lulesh main | |
./bin/inv_wrapper.sh codegen ffmpeg check | |
./bin/inv_wrapper.sh codegen tf check | |
- name: "Put all data files in place" | |
run: ./bin/inv_wrapper.sh data | |
working-directory: /code/examples | |
- name: "Run MPI kernels" | |
if: "contains(env.WASM_VM, 'wavm')" | |
run: | | |
# The global MPI kernel stopped working when enabling SIMD | |
# ./bin/inv_wrapper.sh run.pool kernels-mpi global --cmdline '10 1024' | |
./bin/inv_wrapper.sh run.pool kernels-mpi p2p --cmdline '10 1024 1024' | |
./bin/inv_wrapper.sh run.pool kernels-mpi sparse --cmdline '10 10 5' | |
./bin/inv_wrapper.sh run.pool kernels-mpi transpose --cmdline '10 1024 32' | |
./bin/inv_wrapper.sh run.pool kernels-mpi stencil --cmdline '10 1000' | |
# The dgemm MPI kernel does not work because we are missing | |
# implementations for MPI_Comm_group, MPI_Group_incl, and MPI_Comm_create | |
# ./bin/inv_wrapper.sh run.pool kernels-mpi dgemm --cmdline '10 1024 32 1' | |
./bin/inv_wrapper.sh run.pool kernels-mpi nstream --cmdline '10 1024 32' | |
./bin/inv_wrapper.sh run.pool kernels-mpi reduce --cmdline '10 1024' | |
# The random MPI kernel does not work because we are missing | |
# implementations for MPI_Alltoallv | |
# ./bin/inv_wrapper.sh run.pool kernels-mpi random --cmdline '32 20' | |
- name: "Run OpenMP kernels" | |
if: "contains(env.WASM_VM, 'wavm')" | |
run: | | |
./bin/inv_wrapper.sh run.pool kernels-omp global --cmdline '2 10 1024' | |
./bin/inv_wrapper.sh run.pool kernels-omp p2p --cmdline '2 10 1024 1024' | |
# The sparse OpenMP kernel fails during the result integrity checks | |
# ./bin/inv_wrapper.sh run.pool kernels-omp sparse --cmdline '2 10 10 5' | |
# The transpose OpenMP kernel can not be cross-compiled due to problems | |
# with the static_for signature and symbol definition | |
# ./bin/inv_wrapper.sh run.pool kernels-omp transpose --cmdline '10 1024 32' | |
# The stencil OpenMP kernel can not be cross-compiled due to a problem | |
# with the faasm_sm_reduce signature | |
# ./bin/inv_wrapper.sh run.pool kernels-omp stencil --cmdline '10 1000' | |
./bin/inv_wrapper.sh run.pool kernels-omp dgemm --cmdline '2 2 1024 32' | |
./bin/inv_wrapper.sh run.pool kernels-omp nstream --cmdline '2 10 1024 32' | |
./bin/inv_wrapper.sh run.pool kernels-omp reduce --cmdline '2 10 1024' | |
# The random OpenMP kernel can not be cross-compiled due to a problem | |
# with the faasm_sm_reduce signature | |
# ./bin/inv_wrapper.sh run.pool kernels-omp random --cmdline '32 20' | |
- name: "Run PolyBench/C" | |
# We deliberately enumerate all the supported functions here and | |
# execute them individually, rather than using the microbench runner. | |
# This is so that we can more easily track what functions are supported | |
# and what functions are not | |
run: | | |
./bin/inv_wrapper.sh run polybench poly_covariance | |
./bin/inv_wrapper.sh run polybench poly_correlation | |
./bin/inv_wrapper.sh run polybench poly_2mm | |
./bin/inv_wrapper.sh run polybench poly_3mm | |
./bin/inv_wrapper.sh run polybench poly_atax | |
./bin/inv_wrapper.sh run polybench poly_bicg | |
./bin/inv_wrapper.sh run polybench poly_doitgen | |
./bin/inv_wrapper.sh run polybench poly_mvt | |
./bin/inv_wrapper.sh run polybench poly_cholesky | |
./bin/inv_wrapper.sh run polybench poly_durbin | |
./bin/inv_wrapper.sh run polybench poly_gramschmidt | |
./bin/inv_wrapper.sh run polybench poly_lu | |
./bin/inv_wrapper.sh run polybench poly_ludcmp | |
./bin/inv_wrapper.sh run polybench poly_trisolv | |
./bin/inv_wrapper.sh run polybench poly_deriche | |
./bin/inv_wrapper.sh run polybench poly_floyd-warshall | |
./bin/inv_wrapper.sh run polybench poly_nussinov | |
./bin/inv_wrapper.sh run polybench poly_adi | |
./bin/inv_wrapper.sh run polybench poly_fdtd-2d | |
./bin/inv_wrapper.sh run polybench poly_heat-3d | |
./bin/inv_wrapper.sh run polybench poly_jacobi-1d | |
./bin/inv_wrapper.sh run polybench poly_jacobi-2d | |
./bin/inv_wrapper.sh run polybench poly_seidel-2d | |
- name: "Run ImageMagick" | |
if: "contains(env.WASM_VM, 'wavm')" | |
run: ./bin/inv_wrapper.sh run imagemagick main --cmdline 'faasm://im/sample_image.png -flip faasm://im/image_out.png' | |
- name: "Run LAMMPS" | |
run: ./bin/inv_wrapper.sh run.pool lammps main --cmdline '-in faasm://lammps-data/in.controller.wall' | |
- name: "Run LULESH" | |
if: "contains(env.WASM_VM, 'wavm')" | |
run: ./bin/inv_wrapper.sh run.pool lulesh main --cmdline '-i 5 -s 20 -r 11 -c 1 -b 1' --data '4' | |
- name: "Run TFlite check" | |
if: "contains(env.WASM_VM, 'wavm')" | |
run: ./bin/inv_wrapper.sh run tf check | |
- name: "Run FFmpeg check" | |
run: ./bin/inv_wrapper.sh run ffmpeg check |