From dcbb32b3ecdaaf8d711e5c0a534c4c3b47394008 Mon Sep 17 00:00:00 2001 From: cmoineau <cyril.moineau@cea.fr> Date: Wed, 25 Sep 2024 07:53:01 +0000 Subject: [PATCH] Add concat operator to arm export. --- ..._concat_float32.c => aidge_concat_float32.hpp} | 0 .../templates/configuration/concat.jinja | 15 ++++++--------- .../templates/forward_call/concat.jinja | 10 +++++----- aidge_export_arm_cortexm/operators.py | 13 ++++++++++++- 4 files changed, 23 insertions(+), 15 deletions(-) rename aidge_export_arm_cortexm/_Aidge_Arm/kernels/Concat/{aidge_concat_float32.c => aidge_concat_float32.hpp} (100%) diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Concat/aidge_concat_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Concat/aidge_concat_float32.hpp similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/Concat/aidge_concat_float32.c rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Concat/aidge_concat_float32.hpp diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/concat.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/concat.jinja index d819f59..8aa6315 100644 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/concat.jinja +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/concat.jinja @@ -2,17 +2,14 @@ #ifndef {{ name|upper }}_LAYER_H #define {{ name|upper }}_LAYER_H -/* Concat layer */ - -{# For layer configuration -#} -#define {{ name|upper }}_NB_INPUTS {{ nb_inputs }} +{% include "./_meminfo.jinja" %} +// Attributes +#define {{ name|upper }}_NB_INPUTS {{ nb_in }} #define {{ name|upper }}_AXIS {{ axis }} - -{%- for i in range(nb_inputs) %} -#define {{ name|upper }}_INPUT{{i}}_SIZE {{ list_input_size[i] }} +{%- for i in range(nb_in) %} +#define {{ name|upper }}_INPUT_{{i}}_SIZE {{ in_chan[i] * in_height[i] * in_width[i] }} {%- endfor %} - -#define {{ name|upper }}_OUTPUT_SIZE {{ output_size }} +#define {{ name|upper }}_OUTPUT_SIZE {{ out_chan[0] * out_height[0] * out_width[0] }} #endif /* {{ name|upper }}_LAYER_H */ diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/concat.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/concat.jinja index af6999b..385f92c 100644 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/concat.jinja +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/concat.jinja @@ -1,6 +1,6 @@ -aidge_concat{{nb_inputs}}_{{dataformat}} ( - {{name|upper}}_AXIS, - {%- for i in range(nb_inputs) -%} - {{list_in_names[i]}}, {{ name|upper }}_INPUT{{i}}_SIZE, +aidge_concat{{ nb_in }}_float32 ( + {{name|upper}}_AXIS, + {%- for i in range(nb_in) -%} + {{ in_name[i]|upper }}, {{ name|upper }}_INPUT_{{i}}_SIZE, {%- endfor -%} - {{output_name}}); \ No newline at end of file + {{ out_name[0]|upper }}); diff --git a/aidge_export_arm_cortexm/operators.py b/aidge_export_arm_cortexm/operators.py index 8653329..c413041 100644 --- a/aidge_export_arm_cortexm/operators.py +++ b/aidge_export_arm_cortexm/operators.py @@ -387,7 +387,7 @@ class Atan_ARMCortexM(ExportNodeCpp): @ExportLibAidgeARM.register("Slice", aidge_core.ImplSpec(aidge_core.IOSpec(aidge_core.dtype.float32))) -class Atan_ARMCortexM(ExportNodeCpp): +class Slice_ARMCortexM(ExportNodeCpp): def __init__(self, node, mem_info, is_input, is_output): super().__init__(node, mem_info, is_input, is_output) @@ -398,6 +398,17 @@ class Atan_ARMCortexM(ExportNodeCpp): str(ROOT / "_Aidge_Arm" / "kernels" / "Slice" / "aidge_slice_float32.hpp"), ] +@ExportLibAidgeARM.register("Concat", aidge_core.ImplSpec(aidge_core.IOSpec(aidge_core.dtype.float32))) +class Concat_ARMCortexM(ExportNodeCpp): + def __init__(self, node, mem_info, is_input, is_output): + super().__init__(node, mem_info, is_input, is_output) + + self.config_template = str(ROOT / "_Aidge_Arm" / "templates" / "configuration" / "concat.jinja") + self.forward_template = str(ROOT / "_Aidge_Arm" / "templates" / "forward_call" / "concat.jinja") + self.include_list = [] + self.kernels_to_copy = [ + str(ROOT / "_Aidge_Arm" / "kernels" / "Concat" / "aidge_concat_float32.hpp"), + ] @ExportLibAidgeARM.register("Sigmoid", aidge_core.ImplSpec(aidge_core.IOSpec(aidge_core.dtype.float32))) class Sigmoid_ARMCortexM(ExportNodeCpp): -- GitLab