diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Slice/aidge_slice_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Slice/aidge_slice_float32.hpp similarity index 64% rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/Slice/aidge_slice_float32.c rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Slice/aidge_slice_float32.hpp index 8e5f5000ee5c75723532f5052ccd9932e4de5515..d39bcce5db0741e05d5d5254c497057dc69222e8 100644 --- a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Slice/aidge_slice_float32.c +++ b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Slice/aidge_slice_float32.hpp @@ -1,9 +1,7 @@ - - -void aidge_slice_float32 (float* inputs, - float* outputs, - int* axes, - int* starts, +void aidge_slice_float32 (float* inputs, + float* outputs, + int* axes, + int* starts, int* ends, unsigned int input_dims, unsigned int nb_axes) @@ -13,4 +11,4 @@ void aidge_slice_float32 (float* inputs, for (int i = starts[axes[0] - 1]; i < ends[axes[0] - 1]; ++i) { outputs[out_index++] = inputs[i]; } -} \ No newline at end of file +} diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/slice.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/slice.jinja index 553bb2dbb2e233d5971916d7867734085722d24a..55927e30d75ecffdfe86bb1ebe9fc47d8e8ac5c2 100644 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/slice.jinja +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/slice.jinja @@ -5,12 +5,12 @@ /* Slice layer */ {# For layer configuration -#} -#define {{ name|upper }}_NB_CHANNELS {{ nb_inputs }} -#define {{ name|upper }}_NB_OUTPUTS {{ nb_outputs }} +#define {{ name|upper }}_NB_CHANNELS {{ nb_in }} +#define {{ name|upper }}_NB_OUTPUTS {{ nb_out }} #define {{ name|upper }}_NB_AXES {{ axes|length }} -static const int {{ name|upper }}_AXES[] = { {%- for axe in axes %}{{ axe }}, {% endfor -%} }; -static const int {{ name|upper }}_STARTS[] = { {%- for start in starts %}{{ start }}, {% endfor -%} }; -static const int {{ name|upper }}_ENDS[] = { {%- for end in ends %}{{ end }}, {% endfor -%} }; +static const int {{ name|upper }}_AXES[] = { {{ axes | join(', ') }} }; +static const int {{ name|upper }}_STARTS[] = { {{ starts | join(', ') }} }; +static const int {{ name|upper }}_ENDS[] = { {{ ends | join(', ') }} }; #endif /* {{ name|upper }}_LAYER_H */ diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/slice.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/slice.jinja index 1ecfd3d5a41feeda44dd8542128147b917c1ff8d..306f2c96b20d663aa50a0786cd7467e962922f65 100644 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/slice.jinja +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/slice.jinja @@ -1 +1 @@ -aidge_slice_{{dataformat}} ({{input_name}}, {{output_name}}, {{name|upper}}_AXES, {{name|upper}}_STARTS, {{name|upper}}_ENDS, {{name|upper}}_NB_AXES, {{name|upper}}_NB_CHANNELS); \ No newline at end of file +aidge_slice_float32 ({{in_name[0]}}, {{out_name[0]}}, {{name|upper}}_AXES, {{name|upper}}_STARTS, {{name|upper}}_ENDS, {{name|upper}}_NB_AXES, {{name|upper}}_NB_CHANNELS); diff --git a/aidge_export_arm_cortexm/operators.py b/aidge_export_arm_cortexm/operators.py index 8df1bfeaf9bbe6a4394c1bcb4cacc3d5d877d249..4d6b43d450826e356c81903d4e7b6eaa93cc654f 100644 --- a/aidge_export_arm_cortexm/operators.py +++ b/aidge_export_arm_cortexm/operators.py @@ -40,10 +40,6 @@ def export_params(name:str, ################### Actions ################## ############################################## -def set_up_output(name, dtype): - return f"{dtype}* {name} = ({dtype}*) mem + {name.upper()}_MEM_CONT_OFFSET;" - - @ExportLibAidgeARM.register("Producer", aidge_core.ImplSpec(aidge_core.IOSpec(aidge_core.dtype.any))) class Producer_ARMCortexM(ExportNode): @@ -51,7 +47,6 @@ class Producer_ARMCortexM(ExportNode): def __init__(self, node, mem_info, is_input, is_output): super().__init__(node, mem_info, is_input, is_output) self.values = np.array(self.operator.get_output(0)) - print(f"{node.name()}: {self.values.shape}") if len(self.values.shape) == 4: # Note: export in HWC self.values = np.transpose(self.values, (0, 2, 3, 1)) # The following block of code is a dirty fix for FC @@ -399,6 +394,19 @@ class Atan_ARMCortexM(ExportNodeCpp): ] +@ExportLibAidgeARM.register("Slice", aidge_core.ImplSpec(aidge_core.IOSpec(aidge_core.dtype.float32))) +class Atan_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" / "slice.jinja") + self.forward_template = str(ROOT / "_Aidge_Arm" / "templates" / "forward_call" / "slice.jinja") + self.include_list = [] + self.kernels_to_copy = [ + str(ROOT / "_Aidge_Arm" / "kernels" / "Slice" / "aidge_slice_float32.hpp"), + ] + + @ExportLibAidgeARM.register("Sigmoid", aidge_core.ImplSpec(aidge_core.IOSpec(aidge_core.dtype.float32))) class Sigmoid_ARMCortexM(ExportNodeCpp): def __init__(self, node, mem_info, is_input, is_output):