mlonmcu 0.3.0.dev0__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/PKG-INFO +53 -28
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/README.md +51 -26
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/artifact.py +11 -7
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/common.py +44 -26
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/helper/parse.py +54 -19
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/main.py +1 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/config.py +31 -4
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/context/context.py +40 -9
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/config.py +24 -1
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/init.py +13 -7
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/loader.py +5 -5
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/writer.py +12 -6
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/feature/feature.py +3 -2
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/feature/features.py +817 -135
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/backend.py +43 -10
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/framework.py +10 -3
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tflm/backend/backend.py +5 -3
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tflm/backend/tflmc.py +7 -5
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tflm/backend/tflmi.py +149 -50
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tflm/framework.py +2 -2
- mlonmcu-0.4.0/mlonmcu/flow/tvm/backend/backend.py +556 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/model_info.py +104 -22
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/python_utils.py +5 -1
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/tuner.py +28 -11
- mlonmcu-0.4.0/mlonmcu/flow/tvm/backend/tvmaot.py +131 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/tvmaotplus.py +2 -6
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/tvmc_utils.py +82 -26
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/tvmcg.py +5 -9
- mlonmcu-0.4.0/mlonmcu/flow/tvm/backend/tvmllvm.py +121 -0
- mlonmcu-0.4.0/mlonmcu/flow/tvm/backend/tvmrt.py +98 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/wrapper.py +19 -10
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/framework.py +2 -2
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/__init__.py +35 -2
- mlonmcu-0.4.0/mlonmcu/models/frontend.py +1374 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/lookup.py +4 -5
- mlonmcu-0.4.0/mlonmcu/models/model.py +389 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/_platform.py +1 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/espidf/espidf.py +6 -9
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/espidf/espidf_target.py +33 -18
- mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm.py +83 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_arduino_target.py +1 -3
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_backend.py +6 -12
- mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_base_platform.py +194 -0
- mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_build_platform.py +35 -0
- mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_compile_platform.py +69 -0
- mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_corev_ovpsim_target.py +294 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_espidf_target.py +1 -3
- mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_etiss_target.py +307 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_host_target.py +2 -4
- mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_mlonmcu_target.py +303 -0
- mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_spike_target.py +133 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_target.py +6 -8
- mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_target_platform.py +129 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_template_target.py +3 -10
- mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_tune_platform.py +55 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_zephyr_target.py +1 -3
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/mlif/mlif.py +207 -45
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/mlif/mlif_target.py +8 -8
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/platform.py +59 -40
- mlonmcu-0.4.0/mlonmcu/platform/tvm/tvm.py +58 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/tvm/tvm_backend.py +0 -7
- mlonmcu-0.4.0/mlonmcu/platform/tvm/tvm_base_platform.py +109 -0
- mlonmcu-0.4.0/mlonmcu/platform/tvm/tvm_build_platform.py +35 -0
- mlonmcu-0.4.0/mlonmcu/platform/tvm/tvm_rpc_platform.py +54 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/tvm/tvm_target.py +4 -4
- mlonmcu-0.4.0/mlonmcu/platform/tvm/tvm_target_platform.py +149 -0
- mlonmcu-0.4.0/mlonmcu/platform/tvm/tvm_tune_platform.py +489 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/zephyr/zephyr.py +6 -10
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/zephyr/zephyr_target.py +0 -3
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/session/postprocess/__init__.py +9 -1
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/session/postprocess/postprocess.py +3 -3
- mlonmcu-0.4.0/mlonmcu/session/postprocess/postprocesses.py +1457 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/session/run.py +493 -202
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/session/session.py +68 -22
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/cache.py +4 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/gen_requirements.py +6 -5
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/setup.py +19 -4
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/task.py +24 -7
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/__init__.py +10 -0
- mlonmcu-0.4.0/mlonmcu/setup/tasks/ara.py +66 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/arm_gcc.py +1 -0
- mlonmcu-0.4.0/mlonmcu/setup/tasks/benchmarks.py +64 -0
- mlonmcu-0.4.0/mlonmcu/setup/tasks/cmsisnn.py +103 -0
- mlonmcu-0.4.0/mlonmcu/setup/tasks/corev.py +57 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/corstone300.py +6 -1
- mlonmcu-0.4.0/mlonmcu/setup/tasks/cv32e40p.py +108 -0
- mlonmcu-0.4.0/mlonmcu/setup/tasks/dtc.py +83 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/espidf.py +3 -2
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/etiss.py +82 -16
- mlonmcu-0.4.0/mlonmcu/setup/tasks/layergen.py +52 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/llvm.py +22 -7
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/mlif.py +1 -1
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/muriscvnn.py +21 -4
- mlonmcu-0.4.0/mlonmcu/setup/tasks/ovpsim.py +78 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/pulp.py +3 -2
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/riscv_gcc.py +69 -14
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/spike.py +95 -37
- mlonmcu-0.4.0/mlonmcu/setup/tasks/srecord.py +92 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/tf.py +46 -1
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/tflite.py +2 -1
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/tflmc.py +3 -2
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/tvm.py +93 -16
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/utvmcg.py +2 -1
- mlonmcu-0.4.0/mlonmcu/setup/tasks/verilator.py +147 -0
- mlonmcu-0.4.0/mlonmcu/setup/tasks/vicuna.py +93 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/zephyr.py +4 -7
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/utils.py +178 -40
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/_target.py +19 -1
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/arm/corstone300.py +35 -12
- mlonmcu-0.4.0/mlonmcu/target/bench.py +59 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/common.py +12 -71
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/elf.py +10 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/host_x86.py +4 -3
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/metrics.py +17 -5
- mlonmcu-0.4.0/mlonmcu/target/riscv/__init__.py +25 -0
- mlonmcu-0.4.0/mlonmcu/target/riscv/ara.py +285 -0
- mlonmcu-0.4.0/mlonmcu/target/riscv/ara_rtl.py +297 -0
- mlonmcu-0.4.0/mlonmcu/target/riscv/corev_ovpsim.py +330 -0
- mlonmcu-0.4.0/mlonmcu/target/riscv/cv32e40p.py +249 -0
- mlonmcu-0.3.0.dev0/mlonmcu/target/riscv/etiss_pulpino.py → mlonmcu-0.4.0/mlonmcu/target/riscv/etiss.py +302 -116
- mlonmcu-0.4.0/mlonmcu/target/riscv/etiss_pulpino.py +58 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/riscv/gvsoc_pulp.py +15 -12
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/riscv/ovpsim.py +29 -81
- mlonmcu-0.4.0/mlonmcu/target/riscv/riscv.py +364 -0
- mlonmcu-0.4.0/mlonmcu/target/riscv/riscv_bext_target.py +102 -0
- mlonmcu-0.4.0/mlonmcu/target/riscv/riscv_pext_target.py +76 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/riscv/riscv_qemu.py +4 -3
- mlonmcu-0.4.0/mlonmcu/target/riscv/riscv_vext_target.py +123 -0
- mlonmcu-0.4.0/mlonmcu/target/riscv/spike.py +227 -0
- mlonmcu-0.4.0/mlonmcu/target/riscv/util.py +252 -0
- mlonmcu-0.4.0/mlonmcu/target/riscv/vicuna.py +355 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/target.py +109 -29
- mlonmcu-0.4.0/mlonmcu/testing/helpers.py +207 -0
- mlonmcu-0.4.0/mlonmcu/testing/riscv_toolchain.py +138 -0
- mlonmcu-0.4.0/mlonmcu/timeout.py +27 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/utils.py +7 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/version.py +1 -1
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu.egg-info/PKG-INFO +53 -28
- mlonmcu-0.4.0/mlonmcu.egg-info/SOURCES.txt +763 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu.egg-info/requires.txt +12 -10
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/frameworks/tvm/crt_config/crt_config.h +1 -1
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/backend.py +62 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/codegen.py +28 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/conv2dnchw.cc +88 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/conv2dnchw1.cc +67 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/conv2dnchw2.cc +93 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/passes.py +206 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/patterns.py +65 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/strategies.py +34 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/backend.py +50 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/codegen.py +28 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/conv2dnchw.cc +97 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/conv2dnchw1.cc +50 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/passes.py +153 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/patterns.py +32 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/strategies.py +33 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/q_vanilla.py +32 -0
- mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/vanilla.py +31 -0
- mlonmcu-0.4.0/resources/platforms/zephyr/project2/lib/support/dummy.c +0 -0
- mlonmcu-0.4.0/resources/pycharm/.run/run resnet tflmi on pulp.run.xml +25 -0
- mlonmcu-0.4.0/resources/templates/ara.yml.j2 +271 -0
- mlonmcu-0.4.0/resources/templates/corev.yml.j2 +283 -0
- mlonmcu-0.4.0/resources/templates/default.yml.j2 +284 -0
- mlonmcu-0.4.0/resources/templates/dev.yml.j2 +343 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/templates/minimal.yml.j2 +8 -6
- {mlonmcu-0.3.0.dev0/resources/templates → mlonmcu-0.4.0/resources/templates/old}/phi.yml.j2 +7 -3
- {mlonmcu-0.3.0.dev0/resources/templates → mlonmcu-0.4.0/resources/templates/old}/research.yml.j2 +7 -3
- mlonmcu-0.3.0.dev0/resources/templates/default.yml.j2 → mlonmcu-0.4.0/resources/templates/old/tune.yml.j2 +54 -35
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/templates/pulp.yml.j2 +14 -6
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/templates/tumeda.yml.j2 +11 -7
- mlonmcu-0.4.0/resources/templates/uma.yml.j2 +129 -0
- mlonmcu-0.4.0/resources/templates/vicuna.yml.j2 +249 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/setup.cfg +1 -1
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/setup.py +1 -1
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/fixtures.py +5 -2
- mlonmcu-0.4.0/tests/integration-tests/components/test_backends.py +145 -0
- mlonmcu-0.4.0/tests/integration-tests/components/test_features.py +266 -0
- mlonmcu-0.4.0/tests/integration-tests/components/test_frontends.py +80 -0
- mlonmcu-0.4.0/tests/integration-tests/components/test_platforms.py +118 -0
- mlonmcu-0.4.0/tests/integration-tests/components/test_postprocesses.py +0 -0
- mlonmcu-0.4.0/tests/integration-tests/components/test_targets.py +96 -0
- mlonmcu-0.4.0/tests/integration-tests/toolchains/test_riscv_gcc.py +200 -0
- mlonmcu-0.4.0/tests/integration-tests/toolchains/test_riscv_llvm.py +199 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/backends/tvm/test_wrapper.py +5 -5
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/environment/test_environment_writer.py +4 -1
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/models/test_models_group.py +0 -2
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/models/test_models_utils.py +1 -2
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/platform/test_platform_lookup.py +1 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/setup/test_setup_utils.py +19 -20
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/target/test_target_registry.py +0 -1
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/target/test_target_riscv_utils.py +54 -40
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_setup.py +5 -2
- mlonmcu-0.3.0.dev0/mlonmcu/flow/tvm/backend/backend.py +0 -282
- mlonmcu-0.3.0.dev0/mlonmcu/flow/tvm/backend/tvmaot.py +0 -162
- mlonmcu-0.3.0.dev0/mlonmcu/flow/tvm/backend/tvmllvm.py +0 -106
- mlonmcu-0.3.0.dev0/mlonmcu/flow/tvm/backend/tvmrt.py +0 -151
- mlonmcu-0.3.0.dev0/mlonmcu/models/frontend.py +0 -571
- mlonmcu-0.3.0.dev0/mlonmcu/models/model.py +0 -104
- mlonmcu-0.3.0.dev0/mlonmcu/platform/microtvm/microtvm.py +0 -580
- mlonmcu-0.3.0.dev0/mlonmcu/platform/microtvm/microtvm_etissvp_target.py +0 -98
- mlonmcu-0.3.0.dev0/mlonmcu/platform/microtvm/microtvm_spike_target.py +0 -230
- mlonmcu-0.3.0.dev0/mlonmcu/platform/tvm/tvm.py +0 -429
- mlonmcu-0.3.0.dev0/mlonmcu/session/postprocess/postprocesses.py +0 -487
- mlonmcu-0.3.0.dev0/mlonmcu/setup/tasks/cmsisnn.py +0 -151
- mlonmcu-0.3.0.dev0/mlonmcu/target/riscv/__init__.py +0 -7
- mlonmcu-0.3.0.dev0/mlonmcu/target/riscv/riscv.py +0 -185
- mlonmcu-0.3.0.dev0/mlonmcu/target/riscv/spike.py +0 -243
- mlonmcu-0.3.0.dev0/mlonmcu/target/riscv/util.py +0 -134
- mlonmcu-0.3.0.dev0/mlonmcu.egg-info/SOURCES.txt +0 -457
- mlonmcu-0.3.0.dev0/resources/templates/dev.yml.j2 +0 -212
- mlonmcu-0.3.0.dev0/tests/integration-tests/components/test_slow.py +0 -1315
- mlonmcu-0.3.0.dev0/tests/integration-tests/toolchains/test_riscv_gcc.py +0 -224
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/HISTORY.md +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/LICENSE +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/MANIFEST.in +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/NOTICE +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/Makefile +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/authors.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/components/auto_vectorize.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/components/cmsisnnbyoc.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/components/muriscvnnbyoc.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/components.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/conf.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/contributing.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/design.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/docs.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/environments.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/history.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/index.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/installation.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/logging.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/make.bat +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.cli.helper.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.cli.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.context.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.environment.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.feature.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.flow.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.flow.tflm.backend.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.flow.tflm.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.flow.tvm.backend.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.flow.tvm.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.models.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.platform.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.session.postprocess.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.session.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.setup.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.target.arm.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.target.riscv.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.target.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/modules.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/postprocess.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/readme.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/usage.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/build.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/cleanup.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/compile.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/env.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/export.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/flow.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/helper/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/helper/filter.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/init.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/load.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/models.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/run.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/setup.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/tune.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/context/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/context/read_write_filelock.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/environment.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/list.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/templates.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/feature/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/feature/type.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tflm/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tflm/backend/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/logging.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/mlonmcu.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/convert_data.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/group.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/metadata.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/options.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/utils.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/espidf/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/lookup.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/mlif/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/tvm/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/zephyr/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/plugins.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/report.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/session/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/common.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/arm/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/arm/util.py +0 -0
- /mlonmcu-0.3.0.dev0/resources/platforms/zephyr/project/lib/support/dummy.c → /mlonmcu-0.4.0/mlonmcu/testing/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu.egg-info/dependency_links.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu.egg-info/entry_points.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu.egg-info/not-zip-safe +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu.egg-info/top_level.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/frameworks/tvm/crt_config/README.md +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/frameworks/tvm/tuning_records/riscv_cpu_v0.01.log.best +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/patches/fix_esp32c3_march.patch +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/patches/pulp_freertos_support.patch +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/README.md +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/Kconfig +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/default_data.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/default_model_support/process_input.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/default_model_support/process_output.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/include/exit.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/include/ml_interface.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/include/printing.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/ml_interface.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/ml_interface_tflm.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/ml_interface_tvm.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/tflite-lib/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/tflite-lib/Kconfig +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/tvm-lib/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/tvm-lib/Kconfig +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/example_test.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/info.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/audio_provider.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/audio_provider.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/command_responder.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/command_responder.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/feature_provider.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/feature_provider.cc.orig +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/feature_provider.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/kissfft/COPYING +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/kissfft/_kiss_fft_guts.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/kissfft/kiss_fft.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/kissfft/kiss_fft.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/kissfft/tools/kiss_fftr.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/kissfft/tools/kiss_fftr.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/main.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/main_functions.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/main_functions.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/micro_features_generator.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/micro_features_generator.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/micro_model_settings.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/micro_model_settings.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/bits.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/fft.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/fft.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/fft_util.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/fft_util.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/filterbank.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/filterbank.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/filterbank_util.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/filterbank_util.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/frontend.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/frontend.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/frontend_util.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/frontend_util.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/kiss_fft_common.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/kiss_fft_int16.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/kiss_fft_int16.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/log_lut.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/log_lut.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/log_scale.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/log_scale.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/log_scale_util.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/log_scale_util.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/noise_reduction.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/noise_reduction.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/noise_reduction_util.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/noise_reduction_util.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/pcan_gain_control.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/pcan_gain_control.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/pcan_gain_control_util.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/pcan_gain_control_util.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/window.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/window.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/window_util.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/window_util.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/pins.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/pins.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/recognize_commands.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/recognize_commands.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/ringbuf.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/ringbuf.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/sdkconfig.defaults +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/README.md +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/Kconfig +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/default_data.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/default_model_support/process_input.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/default_model_support/process_output.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/include/exit.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/include/ml_interface.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/include/printing.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/ml_interface.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/ml_interface_tflm.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/ml_interface_tvm.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/tflite-lib/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/tflite-lib/Kconfig +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/tvm-lib/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/tvm-lib/Kconfig +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/example_test.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/main/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/main/main.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/sdkconfig.defaults +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/Kconfig +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/README.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/AddAllSubdirs.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/ChooseTarget.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/LinkTFLite.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/LinkTVM.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/LookupClang.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tflmc.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tflmi.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tvmaot.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tvmaotplus.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tvmcg.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tvmllvm.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tvmrt.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/extras.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/features/auto_vectorize_gcc.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/features/auto_vectorize_llvm.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/features/cmsisnn.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/features/muriscvnn.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/frameworks/tflm.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/frameworks/tflm_mlif.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/frameworks/tvm.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/frameworks/tvm_mlif.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/drivers/fake_input.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/drivers/fake_input.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/default_data.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/default_model_support/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/default_model_support/process_input.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/default_model_support/process_output.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/ml_interface.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/ml_interface.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/ml_interface_tflm.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/ml_interface_tvm.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/support/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0/resources/platforms/zephyr/project2 → mlonmcu-0.4.0/resources/platforms/zephyr/project}/lib/support/dummy.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/support/exit.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/support/printing.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/support/quantize.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/targets/corstone300.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/targets/default.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/targets/etiss_pulpino.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/targets/generic_riscv.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/targets/riscv_qemu.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/targets/target.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/prj.conf +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/sample.yaml +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/src/main.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/Kconfig +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/README.rst +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/AddAllSubdirs.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/ChooseTarget.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/LinkTFLite.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/LinkTVM.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/LookupClang.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tflmc.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tflmi.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tvmaot.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tvmaotplus.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tvmcg.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tvmllvm.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tvmrt.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/extras.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/features/auto_vectorize_gcc.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/features/auto_vectorize_llvm.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/features/cmsisnn.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/features/muriscvnn.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/frameworks/tflm.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/frameworks/tflm_mlif.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/frameworks/tvm.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/frameworks/tvm_mlif.cmake +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/default_data.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/default_model_support/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/default_model_support/process_input.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/default_model_support/process_output.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/drivers/fake_input.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/drivers/fake_input.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/support/CMakeLists.txt +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/support/exit.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/support/printing.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/support/quantize.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/targets/corstone300.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/targets/default.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/targets/etiss_pulpino.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/targets/generic_riscv.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/targets/riscv_qemu.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/targets/target.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/ml_interface.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/ml_interface.h +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/ml_interface_tflm.cc +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/ml_interface_tvm.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/prj.conf +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/sample.yaml +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/settings.json +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/src/main.c +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/pycharm/.run/README.md +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/pycharm/.run/step1_ init env.run.xml +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/pycharm/.run/step2_ setup.run.xml +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/pycharm/.run/step3_ run resnet on pulpxpulpissimo.run.xml +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/__init__.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/conftest.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/integration-tests/cli/test_cli.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/integration-tests/cli/test_cli.py.wip +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/integration-tests/cli/test_cli2.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/test_mlonmcu.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/artifact/test_artifact.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/context/test_context.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/context/test_read_write_filelock.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/environment/test_environment.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/models/test_convert_data.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/models/test_models_lookup.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/plugins/test_plugins.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/target/test_target_arm_utils.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_cli_filter.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_cli_parse.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_config.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_feature.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_flow.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_models.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_session.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_target.py +0 -0
- {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mlonmcu
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: This project contains research code related to the deployment of inferenceor learning applications on tiny micro-controllers.
|
|
5
5
|
Home-page: https://github.com/tum-ei-eda/mlonmcu
|
|
6
6
|
Author: TUM Department of Electrical and Computer Engineering - Chair of Electronic Design Automation
|
|
@@ -21,6 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
22
|
Requires-Python: >=3.7
|
|
23
23
|
Description-Content-Type: text/markdown
|
|
24
|
+
Provides-Extra: all-prod
|
|
24
25
|
Provides-Extra: espidf
|
|
25
26
|
Provides-Extra: etiss
|
|
26
27
|
Provides-Extra: gvsoc_pulp
|
|
@@ -35,7 +36,6 @@ Provides-Extra: tvm-autotuning
|
|
|
35
36
|
Provides-Extra: visualize
|
|
36
37
|
Provides-Extra: visualize_tflite
|
|
37
38
|
Provides-Extra: zephyr
|
|
38
|
-
Provides-Extra: all-prod
|
|
39
39
|
License-File: LICENSE
|
|
40
40
|
License-File: NOTICE
|
|
41
41
|
|
|
@@ -43,14 +43,15 @@ License-File: NOTICE
|
|
|
43
43
|
|
|
44
44
|
[](https://pypi.org/project/mlonmcu)
|
|
45
45
|
[](https://mlonmcu.readthedocs.io/en/latest/?version=latest)
|
|
46
|
-

|
|
47
47
|
[](https://github.com/tum-ei-eda/mlonmcu/blob/main/LICENSE)
|
|
48
48
|
|
|
49
49
|
[](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/cicd.yml)
|
|
50
|
+
[](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/style.yml)
|
|
50
51
|
[](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/demo.yml)
|
|
51
|
-
[](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/container.yml)
|
|
52
52
|
[](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/bench.yml)
|
|
53
53
|
|
|
54
|
+
|
|
54
55
|
This project contains research code related to the deployment of inference or learning applications on tiny micro-controllers.
|
|
55
56
|
|
|
56
57
|
|
|
@@ -63,11 +64,7 @@ This project contains research code related to the deployment of inference or le
|
|
|
63
64
|
|
|
64
65
|
- Highly configurable python package
|
|
65
66
|
- Automatic resolution and installation of dependencies
|
|
66
|
-
- Supporting a large combination of frameworks/backends/targets/features
|
|
67
|
-
- Frameworks (Backends): TFLite Micro, MircoTVM
|
|
68
|
-
- Targets: Host (x86), ETISS (Pulpino), Corstone300 (ARM Cortex-M), QEMU (RISC-V), Spike (`riscv-isa-sim`),...
|
|
69
|
-
- Platforms: Zephyr, ESP-IDF,...
|
|
70
|
-
- Features: Autotuning, Debugging, RPC,...
|
|
67
|
+
- Supporting a large combination of frameworks/backends/targets/features
|
|
71
68
|
- Build-in parallel processing of large number of benchmarks
|
|
72
69
|
- Isolated enironments (not interfering with other installations)
|
|
73
70
|
- Command Line and Python Development Interfaces
|
|
@@ -88,10 +85,10 @@ First, a set of APT packages needs to be installed:
|
|
|
88
85
|
sudo apt install python3-pip python3-venv
|
|
89
86
|
|
|
90
87
|
# MLonMCU related
|
|
91
|
-
sudo apt install libboost-
|
|
88
|
+
sudo apt install libboost-all-dev graphviz doxygen libtinfo-dev zlib1g-dev texinfo unzip device-tree-compiler tree g++
|
|
92
89
|
|
|
93
90
|
# Optional (depending on configuration)
|
|
94
|
-
sudo apt install ninja-build
|
|
91
|
+
sudo apt install ninja-build flex lsb-release libelf-dev
|
|
95
92
|
```
|
|
96
93
|
|
|
97
94
|
Also make sure that your default Python is at least v3.7. If the `python` command is not available in your shell or points Python v2.7 check out `python-is-python3`.
|
|
@@ -121,10 +118,7 @@ source .venv/bin/activate
|
|
|
121
118
|
|
|
122
119
|
**Warning:** It is recommended to have at least version 3.20 of CMake installed for full compatibility!
|
|
123
120
|
|
|
124
|
-
# Install
|
|
125
|
-
pip install -r requirements_dev.txt
|
|
126
|
-
|
|
127
|
-
# Optional (only for development)
|
|
121
|
+
# Install ptional dependecies (only for development)
|
|
128
122
|
pip install -r requirements_dev.txt
|
|
129
123
|
pip install -r docs/requirements.txt
|
|
130
124
|
|
|
@@ -169,7 +163,7 @@ mlonmcu init
|
|
|
169
163
|
|
|
170
164
|
Make sure to point the `MLONMCU_HOME` environment variable to the location of the previously initialied environment. (Alternative: use the `default` environment or `--home` argument on the command line)
|
|
171
165
|
|
|
172
|
-
Next, generate a `
|
|
166
|
+
Next, generate a `requirements_addition.txt` file inside the environment directory using `mlonmcu setup -g` which now be installed by running `pip install -r $MLONMCU_HOME/requirements_addition.txt` inside the virtual Python environment.
|
|
173
167
|
|
|
174
168
|
|
|
175
169
|
To use the created environment in a python program, a `MlonMcuContext` needs to be created as follows:
|
|
@@ -181,6 +175,14 @@ with mlonmcu.context.MlonMcuContext() as context:
|
|
|
181
175
|
pass
|
|
182
176
|
```
|
|
183
177
|
|
|
178
|
+
## List of interesting MLonMCU forks
|
|
179
|
+
|
|
180
|
+
- MINRES TGC support: https://github.com/Minres/mlonmcu/tree/develop
|
|
181
|
+
|
|
182
|
+
## List of existing MLonMCU extensions/plugins
|
|
183
|
+
|
|
184
|
+
- ABC Example Plugin: coming soon!
|
|
185
|
+
- MINRES TGC Support: coming soon!
|
|
184
186
|
|
|
185
187
|
## Development
|
|
186
188
|
|
|
@@ -200,18 +202,6 @@ Documentation is mainly generated automatically from doctrings (triggered via `m
|
|
|
200
202
|
|
|
201
203
|
Regarding coding style, it is recommended to run `black` before every commit. The default line length should be given in the `setup.cfg` file.
|
|
202
204
|
|
|
203
|
-
### Future Work
|
|
204
|
-
|
|
205
|
-
- [ ] Finish beta version `v0.1.0`
|
|
206
|
-
- [ ] Open Source Release
|
|
207
|
-
- [ ] Make repository public
|
|
208
|
-
- [ ] Release python package
|
|
209
|
-
- [ ] Publish docs automatically to https://readthedocs.org
|
|
210
|
-
|
|
211
|
-
## Credits
|
|
212
|
-
|
|
213
|
-
This is a research project proposed by the Chair of Design Automation of the Technical University of Munich.
|
|
214
|
-
|
|
215
205
|
### Developers
|
|
216
206
|
|
|
217
207
|
- Rafael Stahl (TUM) [@rafzi]
|
|
@@ -222,6 +212,33 @@ This is a research project proposed by the Chair of Design Automation of the Tec
|
|
|
222
212
|
|
|
223
213
|
- Came up with MLonMCU Python package
|
|
224
214
|
|
|
215
|
+
## Publications
|
|
216
|
+
|
|
217
|
+
- **MLonMCU: TinyML Benchmarking with Fast Retargeting** ([https://dl.acm.org/doi/10.1145/3637543.3652878](https://dl.acm.org/doi/abs/10.1145/3615338.3618128))
|
|
218
|
+
|
|
219
|
+
*CODAI '23: Proceedings of the 2023 Workshop on Compilers, Deployment, and Tooling for Edge AI*
|
|
220
|
+
|
|
221
|
+
BibTeX
|
|
222
|
+
|
|
223
|
+
```bibtex
|
|
224
|
+
@inproceedings{10.1145/3615338.3618128,
|
|
225
|
+
author = {van Kempen, Philipp and Stahl, Rafael and Mueller-Gritschneder, Daniel and Schlichtmann, Ulf},
|
|
226
|
+
title = {MLonMCU: TinyML Benchmarking with Fast Retargeting},
|
|
227
|
+
year = {2024},
|
|
228
|
+
isbn = {9798400703379},
|
|
229
|
+
publisher = {Association for Computing Machinery},
|
|
230
|
+
address = {New York, NY, USA},
|
|
231
|
+
url = {https://doi.org/10.1145/3615338.3618128},
|
|
232
|
+
doi = {10.1145/3615338.3618128},
|
|
233
|
+
abstract = {While there exist many ways to deploy machine learning models on microcontrollers, it is non-trivial to choose the optimal combination of frameworks and targets for a given application. Thus, automating the end-to-end benchmarking flow is of high relevance nowadays. A tool called MLonMCU is proposed in this paper and demonstrated by benchmarking the state-of-the-art TinyML frameworks TFLite for Microcontrollers and TVM effortlessly with a large number of configurations in a low amount of time.},
|
|
234
|
+
booktitle = {Proceedings of the 2023 Workshop on Compilers, Deployment, and Tooling for Edge AI},
|
|
235
|
+
pages = {32–36},
|
|
236
|
+
numpages = {5},
|
|
237
|
+
keywords = {TinyML, neural networks, microcontrollers},
|
|
238
|
+
location = {Hamburg, Germany},
|
|
239
|
+
series = {CODAI '23}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
225
242
|
|
|
226
243
|
### Other
|
|
227
244
|
This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template. However most of the templates was manually changed to be in Markdown instead of reStructuredText.
|
|
@@ -230,6 +247,14 @@ This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypack
|
|
|
230
247
|
- **`audreyr/cookiecutter-pypackage`:** https://github.com/audreyr/cookiecutter-pypackage
|
|
231
248
|
|
|
232
249
|
|
|
250
|
+
## Acknowledgment
|
|
251
|
+
|
|
252
|
+
<img src="./BMBF_gefoerdert_2017_en.jpg" alt="drawing" height="75" align="left" >
|
|
253
|
+
|
|
254
|
+
This research is partially funded by the German Federal Ministry of Education and Research (BMBF) within
|
|
255
|
+
the projects [Scale4Edge](https://www.edacentrum.de/scale4edge/) (grant number 16ME0127) and [MANNHEIM-FlexKI](https://www.edacentrum.de/projekte/MANNHEIM-FlexKI) (grant number 01IS22086L).
|
|
256
|
+
|
|
257
|
+
|
|
233
258
|
# History
|
|
234
259
|
|
|
235
260
|
## 0.1.0 (2021-11-12)
|
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://pypi.org/project/mlonmcu)
|
|
4
4
|
[](https://mlonmcu.readthedocs.io/en/latest/?version=latest)
|
|
5
|
-

|
|
6
6
|
[](https://github.com/tum-ei-eda/mlonmcu/blob/main/LICENSE)
|
|
7
7
|
|
|
8
8
|
[](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/cicd.yml)
|
|
9
|
+
[](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/style.yml)
|
|
9
10
|
[](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/demo.yml)
|
|
10
|
-
[](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/container.yml)
|
|
11
11
|
[](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/bench.yml)
|
|
12
12
|
|
|
13
|
+
|
|
13
14
|
This project contains research code related to the deployment of inference or learning applications on tiny micro-controllers.
|
|
14
15
|
|
|
15
16
|
|
|
@@ -22,11 +23,7 @@ This project contains research code related to the deployment of inference or le
|
|
|
22
23
|
|
|
23
24
|
- Highly configurable python package
|
|
24
25
|
- Automatic resolution and installation of dependencies
|
|
25
|
-
- Supporting a large combination of frameworks/backends/targets/features
|
|
26
|
-
- Frameworks (Backends): TFLite Micro, MircoTVM
|
|
27
|
-
- Targets: Host (x86), ETISS (Pulpino), Corstone300 (ARM Cortex-M), QEMU (RISC-V), Spike (`riscv-isa-sim`),...
|
|
28
|
-
- Platforms: Zephyr, ESP-IDF,...
|
|
29
|
-
- Features: Autotuning, Debugging, RPC,...
|
|
26
|
+
- Supporting a large combination of frameworks/backends/targets/features
|
|
30
27
|
- Build-in parallel processing of large number of benchmarks
|
|
31
28
|
- Isolated enironments (not interfering with other installations)
|
|
32
29
|
- Command Line and Python Development Interfaces
|
|
@@ -47,10 +44,10 @@ First, a set of APT packages needs to be installed:
|
|
|
47
44
|
sudo apt install python3-pip python3-venv
|
|
48
45
|
|
|
49
46
|
# MLonMCU related
|
|
50
|
-
sudo apt install libboost-
|
|
47
|
+
sudo apt install libboost-all-dev graphviz doxygen libtinfo-dev zlib1g-dev texinfo unzip device-tree-compiler tree g++
|
|
51
48
|
|
|
52
49
|
# Optional (depending on configuration)
|
|
53
|
-
sudo apt install ninja-build
|
|
50
|
+
sudo apt install ninja-build flex lsb-release libelf-dev
|
|
54
51
|
```
|
|
55
52
|
|
|
56
53
|
Also make sure that your default Python is at least v3.7. If the `python` command is not available in your shell or points Python v2.7 check out `python-is-python3`.
|
|
@@ -80,10 +77,7 @@ source .venv/bin/activate
|
|
|
80
77
|
|
|
81
78
|
**Warning:** It is recommended to have at least version 3.20 of CMake installed for full compatibility!
|
|
82
79
|
|
|
83
|
-
# Install
|
|
84
|
-
pip install -r requirements_dev.txt
|
|
85
|
-
|
|
86
|
-
# Optional (only for development)
|
|
80
|
+
# Install ptional dependecies (only for development)
|
|
87
81
|
pip install -r requirements_dev.txt
|
|
88
82
|
pip install -r docs/requirements.txt
|
|
89
83
|
|
|
@@ -128,7 +122,7 @@ mlonmcu init
|
|
|
128
122
|
|
|
129
123
|
Make sure to point the `MLONMCU_HOME` environment variable to the location of the previously initialied environment. (Alternative: use the `default` environment or `--home` argument on the command line)
|
|
130
124
|
|
|
131
|
-
Next, generate a `
|
|
125
|
+
Next, generate a `requirements_addition.txt` file inside the environment directory using `mlonmcu setup -g` which now be installed by running `pip install -r $MLONMCU_HOME/requirements_addition.txt` inside the virtual Python environment.
|
|
132
126
|
|
|
133
127
|
|
|
134
128
|
To use the created environment in a python program, a `MlonMcuContext` needs to be created as follows:
|
|
@@ -140,6 +134,14 @@ with mlonmcu.context.MlonMcuContext() as context:
|
|
|
140
134
|
pass
|
|
141
135
|
```
|
|
142
136
|
|
|
137
|
+
## List of interesting MLonMCU forks
|
|
138
|
+
|
|
139
|
+
- MINRES TGC support: https://github.com/Minres/mlonmcu/tree/develop
|
|
140
|
+
|
|
141
|
+
## List of existing MLonMCU extensions/plugins
|
|
142
|
+
|
|
143
|
+
- ABC Example Plugin: coming soon!
|
|
144
|
+
- MINRES TGC Support: coming soon!
|
|
143
145
|
|
|
144
146
|
## Development
|
|
145
147
|
|
|
@@ -159,18 +161,6 @@ Documentation is mainly generated automatically from doctrings (triggered via `m
|
|
|
159
161
|
|
|
160
162
|
Regarding coding style, it is recommended to run `black` before every commit. The default line length should be given in the `setup.cfg` file.
|
|
161
163
|
|
|
162
|
-
### Future Work
|
|
163
|
-
|
|
164
|
-
- [ ] Finish beta version `v0.1.0`
|
|
165
|
-
- [ ] Open Source Release
|
|
166
|
-
- [ ] Make repository public
|
|
167
|
-
- [ ] Release python package
|
|
168
|
-
- [ ] Publish docs automatically to https://readthedocs.org
|
|
169
|
-
|
|
170
|
-
## Credits
|
|
171
|
-
|
|
172
|
-
This is a research project proposed by the Chair of Design Automation of the Technical University of Munich.
|
|
173
|
-
|
|
174
164
|
### Developers
|
|
175
165
|
|
|
176
166
|
- Rafael Stahl (TUM) [@rafzi]
|
|
@@ -181,9 +171,44 @@ This is a research project proposed by the Chair of Design Automation of the Tec
|
|
|
181
171
|
|
|
182
172
|
- Came up with MLonMCU Python package
|
|
183
173
|
|
|
174
|
+
## Publications
|
|
175
|
+
|
|
176
|
+
- **MLonMCU: TinyML Benchmarking with Fast Retargeting** ([https://dl.acm.org/doi/10.1145/3637543.3652878](https://dl.acm.org/doi/abs/10.1145/3615338.3618128))
|
|
177
|
+
|
|
178
|
+
*CODAI '23: Proceedings of the 2023 Workshop on Compilers, Deployment, and Tooling for Edge AI*
|
|
179
|
+
|
|
180
|
+
BibTeX
|
|
181
|
+
|
|
182
|
+
```bibtex
|
|
183
|
+
@inproceedings{10.1145/3615338.3618128,
|
|
184
|
+
author = {van Kempen, Philipp and Stahl, Rafael and Mueller-Gritschneder, Daniel and Schlichtmann, Ulf},
|
|
185
|
+
title = {MLonMCU: TinyML Benchmarking with Fast Retargeting},
|
|
186
|
+
year = {2024},
|
|
187
|
+
isbn = {9798400703379},
|
|
188
|
+
publisher = {Association for Computing Machinery},
|
|
189
|
+
address = {New York, NY, USA},
|
|
190
|
+
url = {https://doi.org/10.1145/3615338.3618128},
|
|
191
|
+
doi = {10.1145/3615338.3618128},
|
|
192
|
+
abstract = {While there exist many ways to deploy machine learning models on microcontrollers, it is non-trivial to choose the optimal combination of frameworks and targets for a given application. Thus, automating the end-to-end benchmarking flow is of high relevance nowadays. A tool called MLonMCU is proposed in this paper and demonstrated by benchmarking the state-of-the-art TinyML frameworks TFLite for Microcontrollers and TVM effortlessly with a large number of configurations in a low amount of time.},
|
|
193
|
+
booktitle = {Proceedings of the 2023 Workshop on Compilers, Deployment, and Tooling for Edge AI},
|
|
194
|
+
pages = {32–36},
|
|
195
|
+
numpages = {5},
|
|
196
|
+
keywords = {TinyML, neural networks, microcontrollers},
|
|
197
|
+
location = {Hamburg, Germany},
|
|
198
|
+
series = {CODAI '23}
|
|
199
|
+
}
|
|
200
|
+
```
|
|
184
201
|
|
|
185
202
|
### Other
|
|
186
203
|
This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template. However most of the templates was manually changed to be in Markdown instead of reStructuredText.
|
|
187
204
|
|
|
188
205
|
- **Cookiecutter:** https://github.com/audreyr/cookiecutter
|
|
189
206
|
- **`audreyr/cookiecutter-pypackage`:** https://github.com/audreyr/cookiecutter-pypackage
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
## Acknowledgment
|
|
210
|
+
|
|
211
|
+
<img src="./BMBF_gefoerdert_2017_en.jpg" alt="drawing" height="75" align="left" >
|
|
212
|
+
|
|
213
|
+
This research is partially funded by the German Federal Ministry of Education and Research (BMBF) within
|
|
214
|
+
the projects [Scale4Edge](https://www.edacentrum.de/scale4edge/) (grant number 16ME0127) and [MANNHEIM-FlexKI](https://www.edacentrum.de/projekte/MANNHEIM-FlexKI) (grant number 01IS22086L).
|
|
@@ -26,7 +26,6 @@ from mlonmcu.setup import utils
|
|
|
26
26
|
# TODO: offer pack/unpack/flatten methods for mlf
|
|
27
27
|
# TODO: implement restore methods
|
|
28
28
|
# TODO: decide if inheritance based scheme would fit better
|
|
29
|
-
# TODO: add artifact flags and lookup utility to find best match
|
|
30
29
|
|
|
31
30
|
|
|
32
31
|
class ArtifactFormat(Enum): # TODO: ArtifactType, ArtifactKind?
|
|
@@ -41,15 +40,18 @@ class ArtifactFormat(Enum): # TODO: ArtifactType, ArtifactKind?
|
|
|
41
40
|
DATA = 6
|
|
42
41
|
NUMPY = 7
|
|
43
42
|
PARAMS = 8
|
|
44
|
-
JSON = 9 # ?
|
|
43
|
+
JSON = 9 # TODO: how about YAML or more general: DICT?
|
|
45
44
|
PATH = 10 # NOT A DIRECTORY?
|
|
46
45
|
RAW = 11
|
|
47
46
|
BIN = 11
|
|
48
47
|
SHARED_OBJECT = 12 # Here: the parent tar archive
|
|
48
|
+
ARCHIVE = 13
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
def lookup_artifacts(artifacts, name=None, fmt=None, flags=None, first_only=False):
|
|
52
52
|
"""Utility to get a matching artifact for a given set of properties."""
|
|
53
|
+
if isinstance(name, Path):
|
|
54
|
+
name = str(name)
|
|
53
55
|
matches = []
|
|
54
56
|
# Warning: if neither name, fmt nor flags is provided, the first artifact (first_only=True)
|
|
55
57
|
# or all (first_only=False) are returned
|
|
@@ -112,7 +114,7 @@ class Artifact:
|
|
|
112
114
|
assert self.content is not None
|
|
113
115
|
elif self.fmt in [ArtifactFormat.RAW, ArtifactFormat.BIN]:
|
|
114
116
|
assert self.raw is not None
|
|
115
|
-
elif self.fmt in [ArtifactFormat.MLF, ArtifactFormat.SHARED_OBJECT]:
|
|
117
|
+
elif self.fmt in [ArtifactFormat.MLF, ArtifactFormat.SHARED_OBJECT, ArtifactFormat.ARCHIVE]:
|
|
116
118
|
assert self.raw is not None
|
|
117
119
|
elif self.fmt in [ArtifactFormat.PATH]:
|
|
118
120
|
assert self.path is not None
|
|
@@ -130,10 +132,12 @@ class Artifact:
|
|
|
130
132
|
If archive: extract to destination.
|
|
131
133
|
|
|
132
134
|
"""
|
|
135
|
+
if not isinstance(dest, Path):
|
|
136
|
+
dest = Path(dest)
|
|
133
137
|
if dest.is_dir():
|
|
134
|
-
filename =
|
|
138
|
+
filename = dest / self.name
|
|
135
139
|
else:
|
|
136
|
-
filename =
|
|
140
|
+
filename = dest
|
|
137
141
|
if self.fmt in [ArtifactFormat.TEXT, ArtifactFormat.SOURCE]:
|
|
138
142
|
assert not extract, "extract option is only available for ArtifactFormat.MLF"
|
|
139
143
|
with open(filename, "w", encoding="utf-8") as handle:
|
|
@@ -142,7 +146,7 @@ class Artifact:
|
|
|
142
146
|
assert not extract, "extract option is only available for ArtifactFormat.MLF"
|
|
143
147
|
with open(filename, "wb") as handle:
|
|
144
148
|
handle.write(self.raw)
|
|
145
|
-
elif self.fmt in [ArtifactFormat.MLF, ArtifactFormat.SHARED_OBJECT]:
|
|
149
|
+
elif self.fmt in [ArtifactFormat.MLF, ArtifactFormat.SHARED_OBJECT, ArtifactFormat.ARCHIVE]:
|
|
146
150
|
with open(filename, "wb") as handle:
|
|
147
151
|
handle.write(self.raw)
|
|
148
152
|
if extract:
|
|
@@ -164,7 +168,7 @@ class Artifact:
|
|
|
164
168
|
print(self.content)
|
|
165
169
|
elif self.fmt in [ArtifactFormat.RAW, ArtifactFormat.BIN]:
|
|
166
170
|
print(f"Data Size: {len(self.raw)}B")
|
|
167
|
-
elif self.fmt in [ArtifactFormat.MLF, ArtifactFormat.SHARED_OBJECT]:
|
|
171
|
+
elif self.fmt in [ArtifactFormat.MLF, ArtifactFormat.SHARED_OBJECT, ArtifactFormat.ARCHIVE]:
|
|
168
172
|
print(f"Archive Size: {len(self.raw)}B")
|
|
169
173
|
elif self.fmt in [ArtifactFormat.PATH]:
|
|
170
174
|
print(f"File Location: {self.path}")
|
|
@@ -20,6 +20,7 @@ import os
|
|
|
20
20
|
import sys
|
|
21
21
|
import multiprocessing
|
|
22
22
|
import logging
|
|
23
|
+
import argparse
|
|
23
24
|
|
|
24
25
|
from mlonmcu.platform import get_platforms
|
|
25
26
|
from mlonmcu.session.postprocess import SUPPORTED_POSTPROCESSES
|
|
@@ -29,6 +30,8 @@ from .helper.parse import extract_config
|
|
|
29
30
|
|
|
30
31
|
logger = get_logger()
|
|
31
32
|
|
|
33
|
+
NUM_GEN_ARGS = 9
|
|
34
|
+
|
|
32
35
|
|
|
33
36
|
def handle_logging_flags(args):
|
|
34
37
|
if hasattr(args, "verbose") and hasattr(args, "quiet"):
|
|
@@ -90,15 +93,6 @@ def add_flow_options(parser):
|
|
|
90
93
|
choices=get_available_feature_names(),
|
|
91
94
|
help="Enabled features for target/framework/backend (choices: %(choices)s)",
|
|
92
95
|
)
|
|
93
|
-
flow_parser.add_argument(
|
|
94
|
-
"--feature-gen",
|
|
95
|
-
dest="feature_gen",
|
|
96
|
-
type=str,
|
|
97
|
-
metavar="FEATURES",
|
|
98
|
-
nargs="+",
|
|
99
|
-
action="append",
|
|
100
|
-
help="Generator statement for features.",
|
|
101
|
-
)
|
|
102
96
|
flow_parser.add_argument(
|
|
103
97
|
"-c",
|
|
104
98
|
"--config",
|
|
@@ -114,14 +108,37 @@ def add_flow_options(parser):
|
|
|
114
108
|
"values are always treated as strings."
|
|
115
109
|
),
|
|
116
110
|
)
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
111
|
+
|
|
112
|
+
def add_gen_args(parser, number):
|
|
113
|
+
for i in range(number):
|
|
114
|
+
suffix = str(i + 1) if i > 0 else ""
|
|
115
|
+
parser.add_argument(
|
|
116
|
+
"--feature-gen" + suffix,
|
|
117
|
+
dest="feature_gen" + suffix,
|
|
118
|
+
type=str,
|
|
119
|
+
metavar="FEATURES",
|
|
120
|
+
nargs="+",
|
|
121
|
+
action="append",
|
|
122
|
+
help=(
|
|
123
|
+
f"Generator statement for features. (Also available: --feature-gen2 ... --feature-gen{number})"
|
|
124
|
+
if i == 0
|
|
125
|
+
else argparse.SUPPRESS
|
|
126
|
+
),
|
|
127
|
+
)
|
|
128
|
+
flow_parser.add_argument(
|
|
129
|
+
"--config-gen" + suffix,
|
|
130
|
+
dest="config_gen" + suffix,
|
|
131
|
+
metavar="KEY=VALUE",
|
|
132
|
+
nargs="+",
|
|
133
|
+
action="append",
|
|
134
|
+
help=(
|
|
135
|
+
f"Generator statement for configs. (Also available: --config-gen2 ... --config-gen{number})"
|
|
136
|
+
if i == 0
|
|
137
|
+
else argparse.SUPPRESS
|
|
138
|
+
),
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
add_gen_args(flow_parser, NUM_GEN_ARGS)
|
|
125
142
|
flow_parser.add_argument(
|
|
126
143
|
"--parallel",
|
|
127
144
|
metavar="THREADS",
|
|
@@ -213,15 +230,16 @@ def kickoff_runs(args, until, context):
|
|
|
213
230
|
print_report = bool(config["print_report"])
|
|
214
231
|
elif "print_report" in context.environment.vars:
|
|
215
232
|
print_report = bool(context.environment.vars["print_report"])
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
233
|
+
with session:
|
|
234
|
+
success = session.process_runs(
|
|
235
|
+
until=until,
|
|
236
|
+
per_stage=per_stage,
|
|
237
|
+
print_report=print_report,
|
|
238
|
+
num_workers=args.parallel,
|
|
239
|
+
progress=args.progress,
|
|
240
|
+
context=context,
|
|
241
|
+
export=True,
|
|
242
|
+
)
|
|
225
243
|
if not success:
|
|
226
244
|
logger.error("At least one error occured!")
|
|
227
245
|
sys.exit(1)
|
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
# See the License for the specific language governing permissions and
|
|
17
17
|
# limitations under the License.
|
|
18
18
|
#
|
|
19
|
+
import itertools
|
|
20
|
+
from collections import ChainMap
|
|
21
|
+
|
|
22
|
+
NUM_GEN_ARGS = 9
|
|
19
23
|
|
|
20
24
|
|
|
21
25
|
def parse_var(s):
|
|
@@ -57,16 +61,32 @@ def extract_feature_names(args):
|
|
|
57
61
|
features = args.feature
|
|
58
62
|
else:
|
|
59
63
|
features = []
|
|
60
|
-
|
|
64
|
+
|
|
65
|
+
def helper(args, name):
|
|
61
66
|
gen = []
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
gen
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
if hasattr(args, name):
|
|
68
|
+
feature_gen = getattr(args, name)
|
|
69
|
+
if not feature_gen:
|
|
70
|
+
gen = [[]]
|
|
71
|
+
return gen
|
|
72
|
+
for x in feature_gen:
|
|
73
|
+
if "_" in x:
|
|
74
|
+
assert len(set(x)) == 1
|
|
75
|
+
gen.append([])
|
|
76
|
+
else:
|
|
77
|
+
gen.append(x)
|
|
78
|
+
else:
|
|
79
|
+
gen = [[]]
|
|
80
|
+
return gen
|
|
81
|
+
|
|
82
|
+
gens = []
|
|
83
|
+
for i in range(NUM_GEN_ARGS):
|
|
84
|
+
suffix = str(i + 1) if i > 0 else ""
|
|
85
|
+
gen = helper(args, "feature_gen" + suffix)
|
|
86
|
+
gens.append(gen)
|
|
87
|
+
|
|
88
|
+
gen = list(map(lambda x: sum(x, []), (itertools.product(*gens))))
|
|
89
|
+
|
|
70
90
|
return features, gen
|
|
71
91
|
|
|
72
92
|
|
|
@@ -76,17 +96,32 @@ def extract_config(args):
|
|
|
76
96
|
configs = parse_vars(configs)
|
|
77
97
|
else:
|
|
78
98
|
configs = {}
|
|
79
|
-
|
|
99
|
+
|
|
100
|
+
def helper(args, name):
|
|
80
101
|
gen = []
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
gen
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
102
|
+
if hasattr(args, name):
|
|
103
|
+
config_gen = getattr(args, name)
|
|
104
|
+
if not config_gen:
|
|
105
|
+
gen = [{}]
|
|
106
|
+
return gen
|
|
107
|
+
for x in config_gen:
|
|
108
|
+
if "_" in x:
|
|
109
|
+
assert len(set(x)) == 1
|
|
110
|
+
gen.append({})
|
|
111
|
+
else:
|
|
112
|
+
c = parse_vars(x)
|
|
113
|
+
gen.append(c)
|
|
114
|
+
else:
|
|
115
|
+
gen = [{}]
|
|
116
|
+
return gen
|
|
117
|
+
|
|
118
|
+
gens = []
|
|
119
|
+
for i in range(NUM_GEN_ARGS):
|
|
120
|
+
suffix = str(i + 1) if i > 0 else ""
|
|
121
|
+
gen = helper(args, "config_gen" + suffix)
|
|
122
|
+
gens.append(gen)
|
|
123
|
+
|
|
124
|
+
gen = list(map(lambda x: dict(ChainMap(*x)), (itertools.product(*gens))))
|
|
90
125
|
|
|
91
126
|
return configs, gen
|
|
92
127
|
|
|
@@ -78,7 +78,14 @@ def filter_config(config, prefix, defaults, optionals, required_keys):
|
|
|
78
78
|
------
|
|
79
79
|
AssertionError: If a required key is missing.
|
|
80
80
|
"""
|
|
81
|
-
|
|
81
|
+
if not isinstance(required_keys, set):
|
|
82
|
+
logger.warning(
|
|
83
|
+
"Deprecated: FEATURES, REQUIRED, OPTIONAL should now be sets, not lists for component %s", prefix
|
|
84
|
+
)
|
|
85
|
+
required_keys = set(required_keys)
|
|
86
|
+
if not isinstance(optionals, set):
|
|
87
|
+
optionals = set(optionals)
|
|
88
|
+
cfg = remove_config_prefix(config, prefix, skip=required_keys | optionals)
|
|
82
89
|
for required in required_keys:
|
|
83
90
|
value = None
|
|
84
91
|
if required in cfg:
|
|
@@ -102,7 +109,7 @@ def filter_config(config, prefix, defaults, optionals, required_keys):
|
|
|
102
109
|
cfg[key] = defaults[key]
|
|
103
110
|
|
|
104
111
|
for key in cfg:
|
|
105
|
-
if key not in
|
|
112
|
+
if key not in set(defaults.keys()) | required_keys:
|
|
106
113
|
# logger.warn("Component received an unknown config key: %s", key)
|
|
107
114
|
pass
|
|
108
115
|
|
|
@@ -210,10 +217,30 @@ def str2bool(value, allow_none=False):
|
|
|
210
217
|
if value is None:
|
|
211
218
|
assert allow_none, "str2bool received None value while allow_none=False"
|
|
212
219
|
return value
|
|
220
|
+
if isinstance(value, (int, bool)):
|
|
221
|
+
return bool(value)
|
|
213
222
|
assert isinstance(value, str)
|
|
214
|
-
return bool(
|
|
223
|
+
return bool(distutils.util.strtobool(value))
|
|
215
224
|
|
|
216
225
|
|
|
217
|
-
def str2dict(value):
|
|
226
|
+
def str2dict(value, allow_none=False):
|
|
227
|
+
if value is None:
|
|
228
|
+
assert allow_none, "str2dict received None value while allow_none=False"
|
|
229
|
+
return value
|
|
230
|
+
if isinstance(value, dict):
|
|
231
|
+
return value
|
|
218
232
|
assert isinstance(value, str)
|
|
233
|
+
# TODO: parse key=value,key2=value2 via regex
|
|
219
234
|
return dict(ast.literal_eval(value))
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
def str2list(value, allow_none=False):
|
|
238
|
+
if value is None:
|
|
239
|
+
assert allow_none, "str2list received None value while allow_none=False"
|
|
240
|
+
return value
|
|
241
|
+
if isinstance(value, (list, set, tuple)):
|
|
242
|
+
return list(value)
|
|
243
|
+
assert isinstance(value, str)
|
|
244
|
+
if value.startswith("["):
|
|
245
|
+
return list(ast.literal_eval(value))
|
|
246
|
+
return value.split(",")
|