Draft: [New] first conv with cmsis_nn working
Context
In the context of the integration of cmsis_nn for aidge. This merge request is a first version focusing on the ConvScaling metoperator.
Modified files
-
operator.py
: Now using aidge_quantization.Quantizer instead of aidge_core.scaling. Only including "arm_nn_functions.h" and copying kernels in export.py. Using my own function to compute fixed_point shift and multiplier; -
export.py
, now copying folder of cmsis_nn and two options between "aidge_arm" or "cmsis_nn"; -
arm_cmsis_nn_conv2d.jinja
, both for configuration and forward call with debug options
TODO
-
Dataformat different for CMSIS_NN (HWC), need to change ImplSpec and apply recipes -
Only one _mem_offset.jinja, _meminfo.jinja and _def_io.jinja -
Other Kernels (Max/AvgPooling, Relu, FC, PaddedConv, DW) that are available in CMSIS_NN library -
Good method to choose the dtype
Merge request reports
Activity
assigned to @wboussella
requested review from @cmoineau
mentioned in merge request !5 (closed)
added 1 commit
- cff2ffbe - export_registry.py : adding an init for ExportLib
added 22 commits
-
cff2ffbe...b920a41f - 18 commits from branch
eclipse/aidge:dev
- 467eb8ea - Merge branch 'dev' into 'main'
- 5a253419 - Merge branch 'dev' into 'main'
- 52fdeccc - UPD: version 0.1.0 -> 0.1.1
- 2ff196bd - Merge
Toggle commit list-
cff2ffbe...b920a41f - 18 commits from branch
currently adapt to backend is not working which block the goals of this MR. I suggest to do it without adapt_to_backend by transposing parameters while exporting like it's done in export_cpp, and by adding a transpose node for the first input. It's allow me to confirm my work on templates, and in a future version it will be easy to use it with adapt to backend. @cmoineau @olivierbichler
[ERROR] - Assertion failed: mImpl != nullptr in /local2/is148265/wb274724/STM32_dev/dev/superpoint/aidge_may/aidge/aidge/aidge_core/src/operator/Operator.cpp:64 [FATAL] - resetConsummerProducer(): an implementation is required for ReLU! Traceback (most recent call last): File "/local2/is148265/wb274724/STM32_dev/dev/superpoint/aidge_may/aidge/aidge/aidge_export_arm_cortexm/ba.py", line 201, in <module> scheduler = aidge_core.SequentialScheduler(model) RuntimeError: resetConsummerProducer(): an implementation is required for ReLU!
The problem is that i connot generate scheduling with a model after an adapt to backend containing metaop in this case i haven't a ReLU in my model only a metaop named PaddedConvScalingRelu which is defined in operator.py from aidge_export_arm_cortexm
Edited by Wissam Boussella
added StatusDelayed label
added StatusWork in Progress label and removed StatusDelayed label