You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
3.7 KiB

# This Makefile builds a variety of synthetic and real-world applications ported to SLEdge
#
# Some of the tests generate experimental results in the form of charts of *.csv files. Refer to
# the relevant directory for specifics.
# gocr - GNU Optical Character Recognition
./runtime/bin/gocr.wasm.so:
3 years ago
make gocr.install -C ./applications
PHONY: gocr__by_dpi
gocr__by_dpi: ./runtime/bin/gocr.wasm.so
# cd ./tests/gocr/by_dpi && ./install.sh
cd ./tests/gocr/by_dpi && ./run.sh
PHONY: gocr__by_font
gocr__by_font: ./runtime/bin/gocr.wasm.so
cd ./tests/gocr/by_font && ./run.sh
PHONY: gocr__by_word
gocr__by_word: ./runtime/bin/gocr.wasm.so
cd ./tests/gocr/by_word && ./run.sh
PHONY: gocr__fivebyeight
gocr__fivebyeight: ./runtime/bin/gocr.wasm.so
cd ./tests/gocr/fivebyeight && ./run.sh
PHONY: gocr__handwriting
gocr__handwriting: ./runtime/bin/gocr.wasm.so
cd ./tests/gocr/handwriting && ./run.sh
PHONY: gocr__hyde
gocr__hyde: ./runtime/bin/gocr.wasm.so
cd ./tests/gocr/hyde && ./run.sh
PHONY: gocr_all
gocr__all: \
gocr__by_dpi \
gocr__by_font \
gocr__by_word \
gocr__fivebyeight \
gocr__handwriting \
gocr__hyde
# Extended Kalman Filter applied to binary GPS data
./runtime/bin/gps_ekf.wasm.so:
make gps_ekf.install -C ./applications
PHONY: ekf__by_iteration
ekf__by_iteration: ./runtime/bin/gps_ekf.wasm.so
cd ./tests/TinyEKF/by_iteration && ./run.sh
PHONY: ekf__one_iteration
ekf__one_iteration: ./runtime/bin/gps_ekf.wasm.so
cd ./tests/TinyEKF/one_iteration && ./run.sh
PHONY: ekf__all
ekf__all: \
ekf__by_iteration \
ekf__one_iteration
# CIFAR10-based Image Classification
./runtime/bin/cifar10.wasm.so:
3 years ago
make cifar10.install -C ./applications
PHONY: cifar10__image_classification
cifar10__image_classification: ./runtime/bin/cifar10.wasm.so
cd ./tests/CMSIS_5_NN/imageclassification && ./run.sh
PHONY: cifar10__all
cifar10__all: \
cifar10__image_classification
# SOD Computer Vision / ML Applications
# https://sod.pixlab.io/
# SOD - Image Resize
./runtime/bin/resize_image.wasm.so:
make resize_image.install -C ./applications
# Commented out command installs imagemagick. Requires password for sudo to install
PHONY: sod__image_resize__test
sod__image_resize__test: ./runtime/bin/resize_image.wasm.so
# cd ./tests/sod/image_resize/test && ./install.sh
cd ./tests/sod/image_resize/test && ./run.sh
PHONY: sod__image_resize__by_resolution
sod__image_resize__by_resolution: ./runtime/bin/resize_image.wasm.so
# cd ./tests/sod/image_resize/by_resolution && ./install.sh
cd ./tests/sod/image_resize/by_resolution && ./run.sh
# SOD - License Plate Detection
./runtime/bin/license_plate_detection.wasm.so:
make license_plate_detection.install -C ./applications
PHONY: sod__lpd__by_plate_count
sod__lpd__by_plate_count: ./runtime/bin/license_plate_detection.wasm.so
cd ./tests/sod/lpd/by_plate_count && ./run.sh
PHONY: sod__all
sod__all: sod__image_resize__test sod__image_resize__by_resolution sod__lpd__by_plate_count
# Scheduler Experiments with synthetic workloads
./runtime/bin/fibonacci.wasm.so:
3 years ago
make fibonacci.install -C ./applications
PHONY: fibonacci__bimodal
fibonacci__bimodal: ./runtime/bin/fibonacci.wasm.so
cd ./tests/fibonacci/bimodal/ && ./run.sh
./runtime/bin/empty.wasm.so:
3 years ago
make empty.install -C ./applications
PHONY: empty__concurrency
empty__concurrency: ./runtime/bin/empty.wasm.so
# cd ./tests/empty/concurrency/ && ./install.sh
cd ./tests/empty/concurrency/ && ./run.sh
Wasm traps (#301) * feat: Preliminary WASI with fib workload * refactor: Clarify initialize globals * chore: Update empty to WASI * chore: cleanup fib test * chore: cleanup build tooling * chore: cleanup test Makefiles and some nits * chore: Update LLVM and install WASI-SDK * chore: Update build tools and specs * docs: Update example module spec in README * refactor: Clean up HTTP handling * feat: Implement exit WASI call * style: apply clang-format * ci: rewrite compile sledge step * build: Remove LLVM install shims * build: Try manually adding libunwind * build: Try adding libunwind-dev * ci: break out aWsm compile step * fix: Correct test build error * fix: Correct error in WASI fd_write * chore: Increase gocr http buffer size * test: Correct image resize test * chore: Remove zombie wasmception functions * chore: Reduce dummy args to single arg * chore: Add debugging makefile fivebyeight * chore: Remove erronious PHONYs in tests Makefile * ci: Disable gocr tests * chore: Add wat Make rule to fibonacci test * chore: fix apt package name * chore: Enable clean of failed ck install * chore: use LLVM 12 * test: Disable gocr tests * chore: Enhance test makefile * chore: Add CFILES as sledgert dep * chore: Add NULL check for function table pointer * chore: Add missing header * chore: uncomment cleanup in imageresize test * refactor: Remove unused linear memory functions * build: Add bimodal debug makefile * chore: Add linear memory debug logs * refactor: Cleanup region initialization * build: Correct PHONY in runtime Makefile * chore: deb install script for outside of container * refactor: Remove zombie extern. * feat: WebAssembly traps * refactor: Use C18 features * chore: Remove git diff annotations * fix: tweaks to run all sample apps with WASI * test: convert shell script to Makefile * build: clean generated ck Makefile * chore: Use awsm branch with fixes * chore: Revert name changes * fix: Correct type issues * refactor: Reverse additional name change * refactor: Remove awsm compat shims * chore: Remove libc association * build: Better detect header file changes * refactor: current_wasm_module_instance_trap * test: reenable tests * chore: Delete copied script * build: Fix test workloads * fix: Implement HTTP 500 * fix: Protect against overflow on comparison * build: Replace test.sh with makefile * refactor: blow away tmp directory conflicts * refactor: centralize wasm in single submodule * feat: libsledge and sledge ABI * chore: move tests * refactor: tests * chore: update wasm_apps with new sample data * doc: Initial ABI README * feat: globals table * docs: Merge aWsm ABI docs * docs: libsledge ABI * build: rename apps to keep consistent * build: Disable wasm proposals * build: Update wasm apps and fix typo * test: test makefiles * test: Additional test makefiles * build: top-level build and install rules wo Docker * docs: Add wasm lld comment * build: top level makefile * chore: merge debug flags * fix: Correct out of bounds error * feat: indirection to awsm ABI * fix: Correct link hack with proper flag * fix: gps typo * chore: format nit * ci: update makefile rules * ci: check WASI_SDK_PATH * fix: Adjust paths * ci: fix make rule name * refactor: Attempt to use generic vec * refactor: Remove type-specific vec * fix: Resolve assorted TODOs * chore: fix clang format issue * ci: Invalidate app cache on libsledge changes * fix: Correct wasm trap check * fix: free wasm globals * docs: example of running top level tests via make * chore: option to log unsupported wasi * test: add preempt client generator for fib bimodal * refactor: Allocate wasm memory with 4096 align * fix: Handle build without runtime globals * refactor: bypass runtime call for first global * fix: Correct sandbox logging * test: fix incorrect paths in test.mk * refactor: cleanup basic traps logic * test: trap_divzero * fix: Correct inverted trap control flow * ci: Invalidate awsm cache * ci: divide by zero trap * chore: Assorted cleanup * ci: Install httpie * chore: Remove stdio calls in libsledge * chore: update submodules
3 years ago
./runtime/bin/trap_divzero.wasm.so:
make trap_divzero.install -C ./applications
PHONY: trap_divzero
trap_divzero: ./runtime/bin/trap_divzero.wasm.so
cd ./tests/traps/ && ./run.sh
all: \
gocr__all \
ekf__all \
cifar10__all \
sod__all \
fibonacci__bimodal \
empty__concurrency