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.
Files changed (543) hide show
  1. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/PKG-INFO +53 -28
  2. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/README.md +51 -26
  3. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/artifact.py +11 -7
  4. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/common.py +44 -26
  5. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/helper/parse.py +54 -19
  6. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/main.py +1 -0
  7. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/config.py +31 -4
  8. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/context/context.py +40 -9
  9. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/config.py +24 -1
  10. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/init.py +13 -7
  11. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/loader.py +5 -5
  12. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/writer.py +12 -6
  13. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/feature/feature.py +3 -2
  14. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/feature/features.py +817 -135
  15. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/backend.py +43 -10
  16. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/framework.py +10 -3
  17. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tflm/backend/backend.py +5 -3
  18. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tflm/backend/tflmc.py +7 -5
  19. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tflm/backend/tflmi.py +149 -50
  20. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tflm/framework.py +2 -2
  21. mlonmcu-0.4.0/mlonmcu/flow/tvm/backend/backend.py +556 -0
  22. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/model_info.py +104 -22
  23. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/python_utils.py +5 -1
  24. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/tuner.py +28 -11
  25. mlonmcu-0.4.0/mlonmcu/flow/tvm/backend/tvmaot.py +131 -0
  26. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/tvmaotplus.py +2 -6
  27. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/tvmc_utils.py +82 -26
  28. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/tvmcg.py +5 -9
  29. mlonmcu-0.4.0/mlonmcu/flow/tvm/backend/tvmllvm.py +121 -0
  30. mlonmcu-0.4.0/mlonmcu/flow/tvm/backend/tvmrt.py +98 -0
  31. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/wrapper.py +19 -10
  32. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/framework.py +2 -2
  33. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/__init__.py +35 -2
  34. mlonmcu-0.4.0/mlonmcu/models/frontend.py +1374 -0
  35. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/lookup.py +4 -5
  36. mlonmcu-0.4.0/mlonmcu/models/model.py +389 -0
  37. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/_platform.py +1 -0
  38. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/espidf/espidf.py +6 -9
  39. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/espidf/espidf_target.py +33 -18
  40. mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm.py +83 -0
  41. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_arduino_target.py +1 -3
  42. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_backend.py +6 -12
  43. mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_base_platform.py +194 -0
  44. mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_build_platform.py +35 -0
  45. mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_compile_platform.py +69 -0
  46. mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_corev_ovpsim_target.py +294 -0
  47. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_espidf_target.py +1 -3
  48. mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_etiss_target.py +307 -0
  49. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_host_target.py +2 -4
  50. mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_mlonmcu_target.py +303 -0
  51. mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_spike_target.py +133 -0
  52. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_target.py +6 -8
  53. mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_target_platform.py +129 -0
  54. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_template_target.py +3 -10
  55. mlonmcu-0.4.0/mlonmcu/platform/microtvm/microtvm_tune_platform.py +55 -0
  56. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/microtvm_zephyr_target.py +1 -3
  57. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/mlif/mlif.py +207 -45
  58. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/mlif/mlif_target.py +8 -8
  59. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/platform.py +59 -40
  60. mlonmcu-0.4.0/mlonmcu/platform/tvm/tvm.py +58 -0
  61. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/tvm/tvm_backend.py +0 -7
  62. mlonmcu-0.4.0/mlonmcu/platform/tvm/tvm_base_platform.py +109 -0
  63. mlonmcu-0.4.0/mlonmcu/platform/tvm/tvm_build_platform.py +35 -0
  64. mlonmcu-0.4.0/mlonmcu/platform/tvm/tvm_rpc_platform.py +54 -0
  65. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/tvm/tvm_target.py +4 -4
  66. mlonmcu-0.4.0/mlonmcu/platform/tvm/tvm_target_platform.py +149 -0
  67. mlonmcu-0.4.0/mlonmcu/platform/tvm/tvm_tune_platform.py +489 -0
  68. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/zephyr/zephyr.py +6 -10
  69. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/zephyr/zephyr_target.py +0 -3
  70. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/session/postprocess/__init__.py +9 -1
  71. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/session/postprocess/postprocess.py +3 -3
  72. mlonmcu-0.4.0/mlonmcu/session/postprocess/postprocesses.py +1457 -0
  73. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/session/run.py +493 -202
  74. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/session/session.py +68 -22
  75. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/cache.py +4 -0
  76. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/gen_requirements.py +6 -5
  77. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/setup.py +19 -4
  78. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/task.py +24 -7
  79. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/__init__.py +10 -0
  80. mlonmcu-0.4.0/mlonmcu/setup/tasks/ara.py +66 -0
  81. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/arm_gcc.py +1 -0
  82. mlonmcu-0.4.0/mlonmcu/setup/tasks/benchmarks.py +64 -0
  83. mlonmcu-0.4.0/mlonmcu/setup/tasks/cmsisnn.py +103 -0
  84. mlonmcu-0.4.0/mlonmcu/setup/tasks/corev.py +57 -0
  85. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/corstone300.py +6 -1
  86. mlonmcu-0.4.0/mlonmcu/setup/tasks/cv32e40p.py +108 -0
  87. mlonmcu-0.4.0/mlonmcu/setup/tasks/dtc.py +83 -0
  88. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/espidf.py +3 -2
  89. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/etiss.py +82 -16
  90. mlonmcu-0.4.0/mlonmcu/setup/tasks/layergen.py +52 -0
  91. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/llvm.py +22 -7
  92. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/mlif.py +1 -1
  93. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/muriscvnn.py +21 -4
  94. mlonmcu-0.4.0/mlonmcu/setup/tasks/ovpsim.py +78 -0
  95. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/pulp.py +3 -2
  96. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/riscv_gcc.py +69 -14
  97. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/spike.py +95 -37
  98. mlonmcu-0.4.0/mlonmcu/setup/tasks/srecord.py +92 -0
  99. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/tf.py +46 -1
  100. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/tflite.py +2 -1
  101. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/tflmc.py +3 -2
  102. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/tvm.py +93 -16
  103. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/utvmcg.py +2 -1
  104. mlonmcu-0.4.0/mlonmcu/setup/tasks/verilator.py +147 -0
  105. mlonmcu-0.4.0/mlonmcu/setup/tasks/vicuna.py +93 -0
  106. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/zephyr.py +4 -7
  107. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/utils.py +178 -40
  108. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/_target.py +19 -1
  109. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/arm/corstone300.py +35 -12
  110. mlonmcu-0.4.0/mlonmcu/target/bench.py +59 -0
  111. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/common.py +12 -71
  112. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/elf.py +10 -0
  113. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/host_x86.py +4 -3
  114. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/metrics.py +17 -5
  115. mlonmcu-0.4.0/mlonmcu/target/riscv/__init__.py +25 -0
  116. mlonmcu-0.4.0/mlonmcu/target/riscv/ara.py +285 -0
  117. mlonmcu-0.4.0/mlonmcu/target/riscv/ara_rtl.py +297 -0
  118. mlonmcu-0.4.0/mlonmcu/target/riscv/corev_ovpsim.py +330 -0
  119. mlonmcu-0.4.0/mlonmcu/target/riscv/cv32e40p.py +249 -0
  120. mlonmcu-0.3.0.dev0/mlonmcu/target/riscv/etiss_pulpino.py → mlonmcu-0.4.0/mlonmcu/target/riscv/etiss.py +302 -116
  121. mlonmcu-0.4.0/mlonmcu/target/riscv/etiss_pulpino.py +58 -0
  122. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/riscv/gvsoc_pulp.py +15 -12
  123. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/riscv/ovpsim.py +29 -81
  124. mlonmcu-0.4.0/mlonmcu/target/riscv/riscv.py +364 -0
  125. mlonmcu-0.4.0/mlonmcu/target/riscv/riscv_bext_target.py +102 -0
  126. mlonmcu-0.4.0/mlonmcu/target/riscv/riscv_pext_target.py +76 -0
  127. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/riscv/riscv_qemu.py +4 -3
  128. mlonmcu-0.4.0/mlonmcu/target/riscv/riscv_vext_target.py +123 -0
  129. mlonmcu-0.4.0/mlonmcu/target/riscv/spike.py +227 -0
  130. mlonmcu-0.4.0/mlonmcu/target/riscv/util.py +252 -0
  131. mlonmcu-0.4.0/mlonmcu/target/riscv/vicuna.py +355 -0
  132. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/target.py +109 -29
  133. mlonmcu-0.4.0/mlonmcu/testing/helpers.py +207 -0
  134. mlonmcu-0.4.0/mlonmcu/testing/riscv_toolchain.py +138 -0
  135. mlonmcu-0.4.0/mlonmcu/timeout.py +27 -0
  136. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/utils.py +7 -0
  137. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/version.py +1 -1
  138. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu.egg-info/PKG-INFO +53 -28
  139. mlonmcu-0.4.0/mlonmcu.egg-info/SOURCES.txt +763 -0
  140. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu.egg-info/requires.txt +12 -10
  141. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/frameworks/tvm/crt_config/crt_config.h +1 -1
  142. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/backend.py +62 -0
  143. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/codegen.py +28 -0
  144. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/conv2dnchw.cc +88 -0
  145. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/conv2dnchw1.cc +67 -0
  146. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/conv2dnchw2.cc +93 -0
  147. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/passes.py +206 -0
  148. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/patterns.py +65 -0
  149. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/QVanilla_Accelerator/strategies.py +34 -0
  150. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/backend.py +50 -0
  151. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/codegen.py +28 -0
  152. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/conv2dnchw.cc +97 -0
  153. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/conv2dnchw1.cc +50 -0
  154. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/passes.py +153 -0
  155. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/patterns.py +32 -0
  156. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/Vanilla_Accelerator/strategies.py +33 -0
  157. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/q_vanilla.py +32 -0
  158. mlonmcu-0.4.0/resources/frameworks/tvm/tvmc_extension/vanilla.py +31 -0
  159. mlonmcu-0.4.0/resources/platforms/zephyr/project2/lib/support/dummy.c +0 -0
  160. mlonmcu-0.4.0/resources/pycharm/.run/run resnet tflmi on pulp.run.xml +25 -0
  161. mlonmcu-0.4.0/resources/templates/ara.yml.j2 +271 -0
  162. mlonmcu-0.4.0/resources/templates/corev.yml.j2 +283 -0
  163. mlonmcu-0.4.0/resources/templates/default.yml.j2 +284 -0
  164. mlonmcu-0.4.0/resources/templates/dev.yml.j2 +343 -0
  165. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/templates/minimal.yml.j2 +8 -6
  166. {mlonmcu-0.3.0.dev0/resources/templates → mlonmcu-0.4.0/resources/templates/old}/phi.yml.j2 +7 -3
  167. {mlonmcu-0.3.0.dev0/resources/templates → mlonmcu-0.4.0/resources/templates/old}/research.yml.j2 +7 -3
  168. mlonmcu-0.3.0.dev0/resources/templates/default.yml.j2 → mlonmcu-0.4.0/resources/templates/old/tune.yml.j2 +54 -35
  169. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/templates/pulp.yml.j2 +14 -6
  170. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/templates/tumeda.yml.j2 +11 -7
  171. mlonmcu-0.4.0/resources/templates/uma.yml.j2 +129 -0
  172. mlonmcu-0.4.0/resources/templates/vicuna.yml.j2 +249 -0
  173. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/setup.cfg +1 -1
  174. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/setup.py +1 -1
  175. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/fixtures.py +5 -2
  176. mlonmcu-0.4.0/tests/integration-tests/components/test_backends.py +145 -0
  177. mlonmcu-0.4.0/tests/integration-tests/components/test_features.py +266 -0
  178. mlonmcu-0.4.0/tests/integration-tests/components/test_frontends.py +80 -0
  179. mlonmcu-0.4.0/tests/integration-tests/components/test_platforms.py +118 -0
  180. mlonmcu-0.4.0/tests/integration-tests/components/test_postprocesses.py +0 -0
  181. mlonmcu-0.4.0/tests/integration-tests/components/test_targets.py +96 -0
  182. mlonmcu-0.4.0/tests/integration-tests/toolchains/test_riscv_gcc.py +200 -0
  183. mlonmcu-0.4.0/tests/integration-tests/toolchains/test_riscv_llvm.py +199 -0
  184. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/backends/tvm/test_wrapper.py +5 -5
  185. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/environment/test_environment_writer.py +4 -1
  186. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/models/test_models_group.py +0 -2
  187. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/models/test_models_utils.py +1 -2
  188. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/platform/test_platform_lookup.py +1 -0
  189. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/setup/test_setup_utils.py +19 -20
  190. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/target/test_target_registry.py +0 -1
  191. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/target/test_target_riscv_utils.py +54 -40
  192. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_setup.py +5 -2
  193. mlonmcu-0.3.0.dev0/mlonmcu/flow/tvm/backend/backend.py +0 -282
  194. mlonmcu-0.3.0.dev0/mlonmcu/flow/tvm/backend/tvmaot.py +0 -162
  195. mlonmcu-0.3.0.dev0/mlonmcu/flow/tvm/backend/tvmllvm.py +0 -106
  196. mlonmcu-0.3.0.dev0/mlonmcu/flow/tvm/backend/tvmrt.py +0 -151
  197. mlonmcu-0.3.0.dev0/mlonmcu/models/frontend.py +0 -571
  198. mlonmcu-0.3.0.dev0/mlonmcu/models/model.py +0 -104
  199. mlonmcu-0.3.0.dev0/mlonmcu/platform/microtvm/microtvm.py +0 -580
  200. mlonmcu-0.3.0.dev0/mlonmcu/platform/microtvm/microtvm_etissvp_target.py +0 -98
  201. mlonmcu-0.3.0.dev0/mlonmcu/platform/microtvm/microtvm_spike_target.py +0 -230
  202. mlonmcu-0.3.0.dev0/mlonmcu/platform/tvm/tvm.py +0 -429
  203. mlonmcu-0.3.0.dev0/mlonmcu/session/postprocess/postprocesses.py +0 -487
  204. mlonmcu-0.3.0.dev0/mlonmcu/setup/tasks/cmsisnn.py +0 -151
  205. mlonmcu-0.3.0.dev0/mlonmcu/target/riscv/__init__.py +0 -7
  206. mlonmcu-0.3.0.dev0/mlonmcu/target/riscv/riscv.py +0 -185
  207. mlonmcu-0.3.0.dev0/mlonmcu/target/riscv/spike.py +0 -243
  208. mlonmcu-0.3.0.dev0/mlonmcu/target/riscv/util.py +0 -134
  209. mlonmcu-0.3.0.dev0/mlonmcu.egg-info/SOURCES.txt +0 -457
  210. mlonmcu-0.3.0.dev0/resources/templates/dev.yml.j2 +0 -212
  211. mlonmcu-0.3.0.dev0/tests/integration-tests/components/test_slow.py +0 -1315
  212. mlonmcu-0.3.0.dev0/tests/integration-tests/toolchains/test_riscv_gcc.py +0 -224
  213. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/HISTORY.md +0 -0
  214. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/LICENSE +0 -0
  215. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/MANIFEST.in +0 -0
  216. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/NOTICE +0 -0
  217. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/Makefile +0 -0
  218. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/authors.rst +0 -0
  219. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/components/auto_vectorize.rst +0 -0
  220. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/components/cmsisnnbyoc.rst +0 -0
  221. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/components/muriscvnnbyoc.rst +0 -0
  222. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/components.rst +0 -0
  223. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/conf.py +0 -0
  224. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/contributing.rst +0 -0
  225. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/design.rst +0 -0
  226. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/docs.rst +0 -0
  227. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/environments.rst +0 -0
  228. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/history.rst +0 -0
  229. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/index.rst +0 -0
  230. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/installation.rst +0 -0
  231. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/logging.rst +0 -0
  232. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/make.bat +0 -0
  233. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.cli.helper.rst +0 -0
  234. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.cli.rst +0 -0
  235. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.context.rst +0 -0
  236. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.environment.rst +0 -0
  237. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.feature.rst +0 -0
  238. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.flow.rst +0 -0
  239. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.flow.tflm.backend.rst +0 -0
  240. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.flow.tflm.rst +0 -0
  241. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.flow.tvm.backend.rst +0 -0
  242. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.flow.tvm.rst +0 -0
  243. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.models.rst +0 -0
  244. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.platform.rst +0 -0
  245. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.rst +0 -0
  246. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.session.postprocess.rst +0 -0
  247. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.session.rst +0 -0
  248. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.setup.rst +0 -0
  249. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.target.arm.rst +0 -0
  250. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.target.riscv.rst +0 -0
  251. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/mlonmcu.target.rst +0 -0
  252. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/modules.rst +0 -0
  253. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/postprocess.rst +0 -0
  254. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/readme.rst +0 -0
  255. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/docs/usage.rst +0 -0
  256. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/__init__.py +0 -0
  257. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/__init__.py +0 -0
  258. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/build.py +0 -0
  259. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/cleanup.py +0 -0
  260. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/compile.py +0 -0
  261. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/env.py +0 -0
  262. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/export.py +0 -0
  263. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/flow.py +0 -0
  264. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/helper/__init__.py +0 -0
  265. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/helper/filter.py +0 -0
  266. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/init.py +0 -0
  267. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/load.py +0 -0
  268. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/models.py +0 -0
  269. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/run.py +0 -0
  270. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/setup.py +0 -0
  271. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/cli/tune.py +0 -0
  272. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/context/__init__.py +0 -0
  273. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/context/read_write_filelock.py +0 -0
  274. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/__init__.py +0 -0
  275. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/environment.py +0 -0
  276. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/list.py +0 -0
  277. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/environment/templates.py +0 -0
  278. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/feature/__init__.py +0 -0
  279. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/feature/type.py +0 -0
  280. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/__init__.py +0 -0
  281. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tflm/__init__.py +0 -0
  282. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tflm/backend/__init__.py +0 -0
  283. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/__init__.py +0 -0
  284. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/flow/tvm/backend/__init__.py +0 -0
  285. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/logging.py +0 -0
  286. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/mlonmcu.py +0 -0
  287. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/convert_data.py +0 -0
  288. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/group.py +0 -0
  289. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/metadata.py +0 -0
  290. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/options.py +0 -0
  291. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/models/utils.py +0 -0
  292. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/__init__.py +0 -0
  293. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/espidf/__init__.py +0 -0
  294. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/lookup.py +0 -0
  295. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/microtvm/__init__.py +0 -0
  296. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/mlif/__init__.py +0 -0
  297. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/tvm/__init__.py +0 -0
  298. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/platform/zephyr/__init__.py +0 -0
  299. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/plugins.py +0 -0
  300. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/report.py +0 -0
  301. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/session/__init__.py +0 -0
  302. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/__init__.py +0 -0
  303. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/setup/tasks/common.py +0 -0
  304. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/__init__.py +0 -0
  305. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/arm/__init__.py +0 -0
  306. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu/target/arm/util.py +0 -0
  307. /mlonmcu-0.3.0.dev0/resources/platforms/zephyr/project/lib/support/dummy.c → /mlonmcu-0.4.0/mlonmcu/testing/__init__.py +0 -0
  308. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu.egg-info/dependency_links.txt +0 -0
  309. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu.egg-info/entry_points.txt +0 -0
  310. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu.egg-info/not-zip-safe +0 -0
  311. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/mlonmcu.egg-info/top_level.txt +0 -0
  312. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/frameworks/tvm/crt_config/README.md +0 -0
  313. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/frameworks/tvm/tuning_records/riscv_cpu_v0.01.log.best +0 -0
  314. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/patches/fix_esp32c3_march.patch +0 -0
  315. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/patches/pulp_freertos_support.patch +0 -0
  316. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/CMakeLists.txt +0 -0
  317. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/README.md +0 -0
  318. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/CMakeLists.txt +0 -0
  319. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/Kconfig +0 -0
  320. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/default_data.c +0 -0
  321. {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
  322. {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
  323. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/include/exit.h +0 -0
  324. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/include/ml_interface.h +0 -0
  325. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/include/printing.h +0 -0
  326. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/ml_interface.c +0 -0
  327. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/ml_interface_tflm.cc +0 -0
  328. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/mlif2/ml_interface_tvm.c +0 -0
  329. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/tflite-lib/CMakeLists.txt +0 -0
  330. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/tflite-lib/Kconfig +0 -0
  331. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/tvm-lib/CMakeLists.txt +0 -0
  332. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/components/tvm-lib/Kconfig +0 -0
  333. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/example_test.py +0 -0
  334. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/info.txt +0 -0
  335. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/CMakeLists.txt +0 -0
  336. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/audio_provider.cc +0 -0
  337. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/audio_provider.h +0 -0
  338. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/command_responder.cc +0 -0
  339. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/command_responder.h +0 -0
  340. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/feature_provider.cc +0 -0
  341. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/feature_provider.cc.orig +0 -0
  342. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/feature_provider.h +0 -0
  343. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/kissfft/COPYING +0 -0
  344. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/kissfft/_kiss_fft_guts.h +0 -0
  345. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/kissfft/kiss_fft.c +0 -0
  346. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/kissfft/kiss_fft.h +0 -0
  347. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/kissfft/tools/kiss_fftr.c +0 -0
  348. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/kissfft/tools/kiss_fftr.h +0 -0
  349. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/main.cc +0 -0
  350. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/main_functions.cc +0 -0
  351. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/main_functions.h +0 -0
  352. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/micro_features_generator.cc +0 -0
  353. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/micro_features_generator.h +0 -0
  354. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/micro_model_settings.cc +0 -0
  355. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/micro_model_settings.h +0 -0
  356. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/bits.h +0 -0
  357. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/fft.cc +0 -0
  358. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/fft.h +0 -0
  359. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/fft_util.cc +0 -0
  360. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/fft_util.h +0 -0
  361. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/filterbank.c +0 -0
  362. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/filterbank.h +0 -0
  363. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/filterbank_util.c +0 -0
  364. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/filterbank_util.h +0 -0
  365. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/frontend.c +0 -0
  366. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/frontend.h +0 -0
  367. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/frontend_util.c +0 -0
  368. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/frontend_util.h +0 -0
  369. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/kiss_fft_common.h +0 -0
  370. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/kiss_fft_int16.cc +0 -0
  371. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/kiss_fft_int16.h +0 -0
  372. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/log_lut.c +0 -0
  373. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/log_lut.h +0 -0
  374. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/log_scale.c +0 -0
  375. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/log_scale.h +0 -0
  376. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/log_scale_util.c +0 -0
  377. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/log_scale_util.h +0 -0
  378. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/noise_reduction.c +0 -0
  379. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/noise_reduction.h +0 -0
  380. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/noise_reduction_util.c +0 -0
  381. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/noise_reduction_util.h +0 -0
  382. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/pcan_gain_control.c +0 -0
  383. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/pcan_gain_control.h +0 -0
  384. {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
  385. {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
  386. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/window.c +0 -0
  387. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/window.h +0 -0
  388. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/window_util.c +0 -0
  389. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/microfrontend/lib/window_util.h +0 -0
  390. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/pins.c +0 -0
  391. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/pins.h +0 -0
  392. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/recognize_commands.cc +0 -0
  393. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/recognize_commands.h +0 -0
  394. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/ringbuf.c +0 -0
  395. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/main/ringbuf.h +0 -0
  396. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/micro_speech_esp32devboard/sdkconfig.defaults +0 -0
  397. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/CMakeLists.txt +0 -0
  398. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/README.md +0 -0
  399. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/CMakeLists.txt +0 -0
  400. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/Kconfig +0 -0
  401. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/default_data.c +0 -0
  402. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/default_model_support/process_input.c +0 -0
  403. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/default_model_support/process_output.c +0 -0
  404. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/include/exit.h +0 -0
  405. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/include/ml_interface.h +0 -0
  406. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/include/printing.h +0 -0
  407. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/ml_interface.c +0 -0
  408. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/ml_interface_tflm.cc +0 -0
  409. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/mlif/ml_interface_tvm.c +0 -0
  410. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/tflite-lib/CMakeLists.txt +0 -0
  411. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/tflite-lib/Kconfig +0 -0
  412. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/tvm-lib/CMakeLists.txt +0 -0
  413. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/components/tvm-lib/Kconfig +0 -0
  414. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/example_test.py +0 -0
  415. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/main/CMakeLists.txt +0 -0
  416. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/main/main.c +0 -0
  417. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/espidf/project/sdkconfig.defaults +0 -0
  418. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/CMakeLists.txt +0 -0
  419. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/Kconfig +0 -0
  420. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/README.rst +0 -0
  421. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/AddAllSubdirs.cmake +0 -0
  422. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/ChooseTarget.cmake +0 -0
  423. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/LinkTFLite.cmake +0 -0
  424. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/LinkTVM.cmake +0 -0
  425. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/LookupClang.cmake +0 -0
  426. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tflmc.cmake +0 -0
  427. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tflmi.cmake +0 -0
  428. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tvmaot.cmake +0 -0
  429. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tvmaotplus.cmake +0 -0
  430. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tvmcg.cmake +0 -0
  431. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tvmllvm.cmake +0 -0
  432. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/backends/tvmrt.cmake +0 -0
  433. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/extras.cmake +0 -0
  434. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/features/auto_vectorize_gcc.cmake +0 -0
  435. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/features/auto_vectorize_llvm.cmake +0 -0
  436. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/features/cmsisnn.cmake +0 -0
  437. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/features/muriscvnn.cmake +0 -0
  438. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/frameworks/tflm.cmake +0 -0
  439. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/frameworks/tflm_mlif.cmake +0 -0
  440. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/frameworks/tvm.cmake +0 -0
  441. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/cmake/frameworks/tvm_mlif.cmake +0 -0
  442. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/CMakeLists.txt +0 -0
  443. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/drivers/fake_input.c +0 -0
  444. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/drivers/fake_input.h +0 -0
  445. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/CMakeLists.txt +0 -0
  446. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/default_data.c +0 -0
  447. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/default_model_support/CMakeLists.txt +0 -0
  448. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/default_model_support/process_input.c +0 -0
  449. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/default_model_support/process_output.c +0 -0
  450. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/ml_interface.c +0 -0
  451. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/ml_interface.h +0 -0
  452. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/ml_interface_tflm.cc +0 -0
  453. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/ml_interface/ml_interface_tvm.c +0 -0
  454. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/support/CMakeLists.txt +0 -0
  455. {mlonmcu-0.3.0.dev0/resources/platforms/zephyr/project2 → mlonmcu-0.4.0/resources/platforms/zephyr/project}/lib/support/dummy.c +0 -0
  456. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/support/exit.h +0 -0
  457. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/support/printing.h +0 -0
  458. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/support/quantize.h +0 -0
  459. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/targets/corstone300.c +0 -0
  460. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/targets/default.c +0 -0
  461. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/targets/etiss_pulpino.c +0 -0
  462. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/targets/generic_riscv.c +0 -0
  463. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/targets/riscv_qemu.c +0 -0
  464. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/lib/targets/target.h +0 -0
  465. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/prj.conf +0 -0
  466. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/sample.yaml +0 -0
  467. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project/src/main.c +0 -0
  468. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/CMakeLists.txt +0 -0
  469. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/Kconfig +0 -0
  470. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/README.rst +0 -0
  471. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/AddAllSubdirs.cmake +0 -0
  472. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/ChooseTarget.cmake +0 -0
  473. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/LinkTFLite.cmake +0 -0
  474. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/LinkTVM.cmake +0 -0
  475. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/LookupClang.cmake +0 -0
  476. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tflmc.cmake +0 -0
  477. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tflmi.cmake +0 -0
  478. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tvmaot.cmake +0 -0
  479. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tvmaotplus.cmake +0 -0
  480. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tvmcg.cmake +0 -0
  481. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tvmllvm.cmake +0 -0
  482. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/backends/tvmrt.cmake +0 -0
  483. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/extras.cmake +0 -0
  484. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/features/auto_vectorize_gcc.cmake +0 -0
  485. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/features/auto_vectorize_llvm.cmake +0 -0
  486. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/features/cmsisnn.cmake +0 -0
  487. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/features/muriscvnn.cmake +0 -0
  488. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/frameworks/tflm.cmake +0 -0
  489. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/frameworks/tflm_mlif.cmake +0 -0
  490. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/frameworks/tvm.cmake +0 -0
  491. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/cmake/frameworks/tvm_mlif.cmake +0 -0
  492. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/default_data.c +0 -0
  493. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/default_model_support/CMakeLists.txt +0 -0
  494. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/default_model_support/process_input.c +0 -0
  495. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/default_model_support/process_output.c +0 -0
  496. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/CMakeLists.txt +0 -0
  497. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/drivers/fake_input.c +0 -0
  498. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/drivers/fake_input.h +0 -0
  499. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/support/CMakeLists.txt +0 -0
  500. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/support/exit.h +0 -0
  501. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/support/printing.h +0 -0
  502. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/support/quantize.h +0 -0
  503. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/targets/corstone300.c +0 -0
  504. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/targets/default.c +0 -0
  505. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/targets/etiss_pulpino.c +0 -0
  506. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/targets/generic_riscv.c +0 -0
  507. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/targets/riscv_qemu.c +0 -0
  508. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/lib/targets/target.h +0 -0
  509. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/ml_interface.c +0 -0
  510. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/ml_interface.h +0 -0
  511. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/ml_interface_tflm.cc +0 -0
  512. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/ml_interface_tvm.c +0 -0
  513. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/prj.conf +0 -0
  514. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/sample.yaml +0 -0
  515. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/settings.json +0 -0
  516. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/platforms/zephyr/project2/src/main.c +0 -0
  517. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/pycharm/.run/README.md +0 -0
  518. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/pycharm/.run/step1_ init env.run.xml +0 -0
  519. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/pycharm/.run/step2_ setup.run.xml +0 -0
  520. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/resources/pycharm/.run/step3_ run resnet on pulpxpulpissimo.run.xml +0 -0
  521. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/__init__.py +0 -0
  522. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/conftest.py +0 -0
  523. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/integration-tests/cli/test_cli.py +0 -0
  524. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/integration-tests/cli/test_cli.py.wip +0 -0
  525. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/integration-tests/cli/test_cli2.py +0 -0
  526. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/test_mlonmcu.py +0 -0
  527. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/artifact/test_artifact.py +0 -0
  528. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/context/test_context.py +0 -0
  529. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/context/test_read_write_filelock.py +0 -0
  530. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/environment/test_environment.py +0 -0
  531. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/models/test_convert_data.py +0 -0
  532. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/models/test_models_lookup.py +0 -0
  533. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/plugins/test_plugins.py +0 -0
  534. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/target/test_target_arm_utils.py +0 -0
  535. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_cli_filter.py +0 -0
  536. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_cli_parse.py +0 -0
  537. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_config.py +0 -0
  538. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_feature.py +0 -0
  539. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_flow.py +0 -0
  540. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_models.py +0 -0
  541. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_session.py +0 -0
  542. {mlonmcu-0.3.0.dev0 → mlonmcu-0.4.0}/tests/unit-tests/test_target.py +0 -0
  543. {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.0.dev0
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
  [![pypi package](https://badge.fury.io/py/mlonmcu.svg)](https://pypi.org/project/mlonmcu)
45
45
  [![readthedocs](https://readthedocs.org/projects/mlonmcu/badge/?version=latest)](https://mlonmcu.readthedocs.io/en/latest/?version=latest)
46
- ![covergae](https://byob.yarr.is/tum-ei-eda/mlonmcu/coverage)
46
+ ![coverage](https://byob.yarr.is/tum-ei-eda/mlonmcu/coverage)
47
47
  [![GitHub license](https://img.shields.io/github/license/tum-ei-eda/mlonmcu.svg)](https://github.com/tum-ei-eda/mlonmcu/blob/main/LICENSE)
48
48
 
49
49
  [![cicd workflow](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/cicd.yml/badge.svg)](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/cicd.yml)
50
+ [![lint workflow](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/style.yml/badge.svg)](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/style.yml)
50
51
  [![demo workflow](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/demo.yml/badge.svg)](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/demo.yml)
51
- [![container workflow](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/container.yml/badge.svg)](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/container.yml)
52
52
  [![bench workflow](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/bench.yml/badge.svg)](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-system-dev libboost-filesystem-dev libboost-program-options-dev graphviz doxygen libtinfo-dev zlib1g-dev texinfo unzip device-tree-compiler tree g++
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 minimal dependencies
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 `requirements.txt` file inside the environment directory using `mlonmcu setup -g` which now be installed by running `pip install -r $MLONMCU_HOME/requirements.txt` inside the virtual Python environment.
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
  [![pypi package](https://badge.fury.io/py/mlonmcu.svg)](https://pypi.org/project/mlonmcu)
4
4
  [![readthedocs](https://readthedocs.org/projects/mlonmcu/badge/?version=latest)](https://mlonmcu.readthedocs.io/en/latest/?version=latest)
5
- ![covergae](https://byob.yarr.is/tum-ei-eda/mlonmcu/coverage)
5
+ ![coverage](https://byob.yarr.is/tum-ei-eda/mlonmcu/coverage)
6
6
  [![GitHub license](https://img.shields.io/github/license/tum-ei-eda/mlonmcu.svg)](https://github.com/tum-ei-eda/mlonmcu/blob/main/LICENSE)
7
7
 
8
8
  [![cicd workflow](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/cicd.yml/badge.svg)](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/cicd.yml)
9
+ [![lint workflow](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/style.yml/badge.svg)](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/style.yml)
9
10
  [![demo workflow](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/demo.yml/badge.svg)](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/demo.yml)
10
- [![container workflow](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/container.yml/badge.svg)](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/container.yml)
11
11
  [![bench workflow](https://github.com/tum-ei-eda/mlonmcu/actions/workflows/bench.yml/badge.svg)](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-system-dev libboost-filesystem-dev libboost-program-options-dev graphviz doxygen libtinfo-dev zlib1g-dev texinfo unzip device-tree-compiler tree g++
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 minimal dependencies
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 `requirements.txt` file inside the environment directory using `mlonmcu setup -g` which now be installed by running `pip install -r $MLONMCU_HOME/requirements.txt` inside the virtual Python environment.
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 = Path(dest) / self.name
138
+ filename = dest / self.name
135
139
  else:
136
- filename = Path(dest)
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
- flow_parser.add_argument(
118
- "--config-gen",
119
- dest="config_gen",
120
- metavar="KEY=VALUE",
121
- nargs="+",
122
- action="append",
123
- help="Generator statement for configs.",
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
- success = session.process_runs(
217
- until=until,
218
- per_stage=per_stage,
219
- print_report=print_report,
220
- num_workers=args.parallel,
221
- progress=args.progress,
222
- context=context,
223
- export=True,
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
- if hasattr(args, "feature_gen") and args.feature_gen:
64
+
65
+ def helper(args, name):
61
66
  gen = []
62
- for x in args.feature_gen:
63
- if "_" in x:
64
- assert len(x) == 1
65
- gen.append([])
66
- else:
67
- gen.append(x)
68
- else:
69
- gen = [[]]
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
- if hasattr(args, "config_gen") and args.config_gen:
99
+
100
+ def helper(args, name):
80
101
  gen = []
81
- for x in args.config_gen:
82
- if "_" in x:
83
- assert len(x) == 1
84
- gen.append({})
85
- else:
86
- c = parse_vars(x)
87
- gen.append(c)
88
- else:
89
- gen = [{}]
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
 
@@ -81,6 +81,7 @@ def handle_docker(args):
81
81
  # def main(args):
82
82
  def main(args=None):
83
83
  """Console script for mlonmcu."""
84
+
84
85
  parser = argparse.ArgumentParser(
85
86
  description="ML on MCU Flow",
86
87
  formatter_class=argparse.ArgumentDefaultsHelpFormatter,
@@ -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
- cfg = remove_config_prefix(config, prefix, skip=required_keys + optionals)
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 list(defaults.keys()) + required_keys:
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(value) if isinstance(value, (int, bool)) else bool(distutils.util.strtobool(value))
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(",")