diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/ElemWise/Add/aidge_add_float32.h b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Add/aidge_add_float32.h similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/ElemWise/Add/aidge_add_float32.h rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Add/aidge_add_float32.h diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Atan/aidge_atan_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Atan/aidge_atan_float32.c similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Atan/aidge_atan_float32.c rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Atan/aidge_atan_float32.c diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/static/kernels/Conv.hpp b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Convolution/Conv.hpp similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/static/kernels/Conv.hpp rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Convolution/Conv.hpp diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Convolution/aidge_conv2d_hwc_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Convolution/aidge_conv2d_hwc_float32.c deleted file mode 100644 index 531331e6b1386b8bd4c6b7395941fddc39726d11..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Convolution/aidge_conv2d_hwc_float32.c +++ /dev/null @@ -1,70 +0,0 @@ -#include "include/aidge_supportfunctions.h" - -void aidge_conv2d_hwc_float32(float* inputs, - float* weights, - float* biases, - float* outputs, - const int nb_channels, - const int channel_width, const int channel_height, - const int kernel_width, const int kernel_height, - const int nb_outputs, - const int output_width, const int output_height, - const int padding_width, const int padding_height, - const int stride_width, const int stride_height, - const int dilation_width, const int dilation_height) -{ - int outputOffset = 0; - - const int dilated_kernel_width - = kernel_width + (dilation_width - 1) * (kernel_width - 1); - const int dilated_kernel_height - = kernel_height + (dilation_height - 1) * (kernel_height - 1); - - int iy = 0; - for (int oy = 0; oy < output_height; ++oy) { - const int syMin = (padding_height == 0) - ? 0 : max(padding_height - iy, 0); - const int syMax = (padding_height == 0) - ? dilated_kernel_height - : clamp(channel_height + padding_height - iy, - 0, dilated_kernel_height); - - int ix = 0; - for (int ox = 0; ox < output_width; ++ox) { - const int sxMin = (padding_width == 0) - ? 0 : max(padding_width - ix, 0); - const int sxMax = (padding_width == 0) - ? dilated_kernel_width - : clamp(channel_width + padding_width - ix, - 0, dilated_kernel_width); - - for (int och = 0; och < nb_outputs; ++och) { - float weightedSum = biases[och]; - - for (int sy = 0; sy < kernel_height; ++sy) { - if (padding_height != 0 && (sy*dilation_height < syMin || sy*dilation_height >= syMax)) { - continue; - } - const int inputsOffset = (iy + sy*dilation_height - padding_height)*channel_width*nb_channels + - (ix - padding_width)*nb_channels; - const int weightsOffset = och*kernel_height*kernel_width*nb_channels + - sy*kernel_width*nb_channels; - - for (int sx = 0; sx < kernel_width; ++sx) { - if(sx*dilation_width < sxMin || sx*dilation_width >= sxMax) { - continue; - } - for (int ch = 0; ch < nb_channels; ++ch) { - weightedSum += inputs[inputsOffset + sx*dilation_width*nb_channels + ch] - * weights[weightsOffset + sx*nb_channels + ch]; - } - } - } - outputs[outputOffset] = weightedSum; - ++outputOffset; - } - ix += stride_width; - } - iy += stride_height; - } -} diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/ElemWise/Div/aidge_div_float32.h b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Div/aidge_div_float32.h similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/ElemWise/Div/aidge_div_float32.h rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Div/aidge_div_float32.h diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/static/kernels/Fc.hpp b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/FullyConnected/Fc.hpp similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/static/kernels/Fc.hpp rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/FullyConnected/Fc.hpp diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/FullyConnected/aidge_fc_chw_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/FullyConnected/aidge_fc_chw_float32.c deleted file mode 100644 index 15d7fb7063d8caaaee2db0f3ab174bd48af8417b..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/FullyConnected/aidge_fc_chw_float32.c +++ /dev/null @@ -1,28 +0,0 @@ - - -void aidge_fc_chw_float32 (float* inputs, - float* weights, - float* biases, - float* outputs, - unsigned int nb_channels, - unsigned int channels_height, - unsigned int channels_width, - unsigned int nb_outputs) -{ - for (unsigned int out = 0; out < nb_outputs; ++out) { - // Init with bias - float accum = biases[out]; - - for (int iy = 0; iy < channels_height; ++iy) { - for (int ix = 0; ix < channels_width; ++ix) { - for (int ch = 0; ch < nb_channels; ++ch) { - accum += inputs[channels_width*nb_channels*iy + nb_channels*ix + ch] - * weights[channels_height*channels_width*nb_channels*out + channels_height*channels_width*ch + channels_height*iy + ix]; - } - } - } - - // Store result - outputs[out] = accum; - } -} diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/FullyConnected/aidge_fc_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/FullyConnected/aidge_fc_float32.c deleted file mode 100644 index de169d49367eabf9c904a05e7cf3b9789f3ac9a4..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/FullyConnected/aidge_fc_float32.c +++ /dev/null @@ -1,24 +0,0 @@ - - -void aidge_fc_float32 (float* inputs, - float* weights, - float* biases, - float* outputs, - unsigned int batch_size, - unsigned int nb_inputs, - unsigned int nb_outputs) -{ - for (unsigned int batch = 0; batch < batch_size; ++batch){ - for (unsigned int out = 0; out < nb_outputs; ++out) { - // Init with bias - float accum = biases[out]; - - for (unsigned int in = 0; in < nb_inputs; ++in) { - accum += inputs[batch*nb_inputs + in] * weights[out * nb_inputs + in]; - } - - // Store result - outputs[batch*nb_outputs + out] = accum; - } - } -} diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/ElemWise/Mul/aidge_mul_float32.h b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Mul/aidge_mul_float32.h similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/ElemWise/Mul/aidge_mul_float32.h rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Mul/aidge_mul_float32.h diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/static/kernels/Pooling.hpp b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Pooling/Pooling.hpp similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/static/kernels/Pooling.hpp rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Pooling/Pooling.hpp diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Pooling/aidge_maxpool2d_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Pooling/aidge_maxpool2d_float32.c deleted file mode 100644 index ebfb8f7ebdbb060e75f56cdfb4e9abe78aa810aa..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Pooling/aidge_maxpool2d_float32.c +++ /dev/null @@ -1,75 +0,0 @@ -#include "include/aidge_supportfunctions.h" - -void aidge_maxpool2d_float32(float* inputs, - float* outputs, - const int nb_channels, - const int channel_width, const int channel_height, - const int kernel_width, const int kernel_height, - const int nb_outputs, - const int output_width, const int output_height, - const int padding_width, const int padding_height, - const int stride_width, const int stride_height) -{ - const int OUTPUTS_HEIGHT_NOPAD - = (channel_height - kernel_height + stride_height) / stride_height; - const int OUTPUTS_WIDTH_NOPAD - = (channel_width - kernel_width + stride_width) / stride_width; - - for (int oy = 0; oy < output_height; ++oy) { - const int syMin = (padding_height == 0) ? 0 - : max(padding_height - (oy * stride_height), 0); - const int syMax = (padding_height == 0 - && output_height == OUTPUTS_HEIGHT_NOPAD) ? kernel_height - : clamp(channel_height + padding_height - (oy * stride_height), - 0, kernel_height); - const int iy = (oy * stride_height) - padding_height; - - for (int ox = 0; ox < output_width; ++ox) { - for (int output = 0; output < nb_outputs; ++output) { - - const int sxMin = (padding_width == 0) ? 0 - : max(padding_width - (ox * stride_width), 0); - const int sxMax = (padding_width == 0 - && output_width == OUTPUTS_WIDTH_NOPAD) - ? kernel_width - : clamp(channel_width + padding_width - (ox * stride_width), - 0, kernel_width); - const int ix = (ox * stride_width) - padding_width; - - const int oPos = (ox + output_width * oy); - int oOffset = nb_outputs * oPos; - - float maxVal = -1000.f; - - for (int sy = 0; sy < kernel_height; ++sy) { - if ((padding_height != 0 - || output_height != OUTPUTS_HEIGHT_NOPAD) - && sy >= syMax - syMin) - { - break; - } - - const int iPos = ((sxMin + ix) - + channel_width * (iy + syMin + sy)); - int iOffset = nb_channels * iPos; - - for (int sx = 0; sx < kernel_width; ++sx) { - if ((padding_width != 0 - || output_width != OUTPUTS_WIDTH_NOPAD) - && sx >= sxMax - sxMin) - { - break; - } - - int iOffsetInRange = iOffset + output + sx * nb_channels; - - if (inputs[iOffsetInRange] > maxVal) - maxVal = inputs[iOffsetInRange]; - } - } - - outputs[oOffset + output] = maxVal; - } - } - } -} diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Relu/aidge_relu_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Relu/aidge_relu_float32.h similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Relu/aidge_relu_float32.c rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Relu/aidge_relu_float32.h diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Sigmoid/aidge_sigmoid_float32.h b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Sigmoid/aidge_sigmoid_float32.h similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Sigmoid/aidge_sigmoid_float32.h rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Sigmoid/aidge_sigmoid_float32.h diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Softmax/aidge_softmax_chw_float32.h b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Softmax/aidge_softmax_chw_float32.h similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Softmax/aidge_softmax_chw_float32.h rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Softmax/aidge_softmax_chw_float32.h diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/ElemWise/Sub/aidge_sub_float32.h b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Sub/aidge_sub_float32.h similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/ElemWise/Sub/aidge_sub_float32.h rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Sub/aidge_sub_float32.h diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/static/kernels/Macs.hpp b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Utils/Macs.hpp similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/static/kernels/Macs.hpp rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Utils/Macs.hpp diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/SupportFunctions/aidge_supportfunctions.h b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Utils/aidge_supportfunctions.h similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/SupportFunctions/aidge_supportfunctions.h rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Utils/aidge_supportfunctions.h diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/static/assert.h b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Utils/assert.h similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/static/assert.h rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Utils/assert.h diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/static/nn_scaling_functions.hpp b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Utils/nn_scaling_functions.hpp similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/static/nn_scaling_functions.hpp rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Utils/nn_scaling_functions.hpp diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/static/typedefs.h b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Utils/typedefs.h similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/static/typedefs.h rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Utils/typedefs.h diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/static/utils.hpp b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Utils/utils.hpp similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/static/utils.hpp rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Utils/utils.hpp diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/_meminfo.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/_meminfo.jinja index 15d15425b4330f68b4a97c31e9cf7a1076cc93e8..a8f10c4a1ef5abe1f576c14151354f0f03705e93 100644 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/_meminfo.jinja +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/_meminfo.jinja @@ -1,5 +1,22 @@ // MEMINFO CONF + +{# TODO : Suppose graph input is always connected to first input #} +{# Graph input are stored in external memory so giving static values #} +{%if is_input %} +// GRAPH INPUT MEMINFO +#define {{ in_name[0]|upper }}_SIZE {{ in_chan[0] }} +#define {{ in_name[0]|upper }}_OFFSET 0 +#define {{ in_name[0]|upper }}_STRIDE {{ in_chan[0] }} +#define {{ in_name[0]|upper }}_LENGTH {{ in_size[0] }} +#define {{ in_name[0]|upper }}_CONT_SIZE {{ in_size[0] }} +#define {{ in_name[0]|upper }}_CONT_OFFSET 0 +#define {{ in_name[0]|upper }}_WRAP_OFFSET 0 +#define {{ in_name[0]|upper }}_WRAP_SIZE 0 +{% endif %} + +// MEMINFO {{ name }} {% for outidx in range(nb_out) -%} +// OUTPUT {{ outidx }} #define {{ out_name[outidx]|upper }}_SIZE {{ mem_info_size[outidx]}} #define {{ out_name[outidx]|upper }}_OFFSET {{ mem_info_offset[outidx]}} #define {{ out_name[outidx]|upper }}_STRIDE {{ mem_info_stride[outidx]}} diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/fullyconnected.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/fullyconnected.jinja deleted file mode 100644 index 0ffda543b5b45809b40916ff57583683c194f36e..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/fullyconnected.jinja +++ /dev/null @@ -1,18 +0,0 @@ -{#- For name header -#} -#ifndef {{ name|upper }}_LAYER_H -#define {{ name|upper }}_LAYER_H - -{# For layer configuration -#} -#define {{name|upper}}_BATCH_SIZE {{ nb_batch}} -#define {{ name|upper }}_NB_CHANNELS {{ nb_channels }} -#define {{ name|upper }}_CHANNEL_HEIGHT {{ channel_height }} -#define {{ name|upper }}_CHANNEL_WIDTH {{ channel_width }} -#define {{ name|upper }}_NB_OUTPUTS {{ nb_outputs }} -#define {{ name|upper }}_NB_INPUTS {{ nb_channels*channel_height*channel_width }} - -{#- Calculate sizes #} -{%- set weights_size = nb_channels * channel_height * channel_width * nb_outputs %} -#define {{ name|upper }}_WEIGHTS_SIZE {{ weights_size }} -#define {{ name|upper }}_BIASES_SIZE {{ nb_outputs }} - -#endif /* {{ name|upper }}_LAYER_H */ diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/pooling.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/pooling.jinja deleted file mode 100644 index 9c2eccb8fa4735840a4d28118a8e50e05f8f7098..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/pooling.jinja +++ /dev/null @@ -1,20 +0,0 @@ -{#- For name header -#} -#ifndef {{ name|upper }}_LAYER_H -#define {{ name|upper }}_LAYER_H - -{# For layer configuration -#} -#define {{ name|upper }}_NB_CHANNELS {{ input_dims[0] }} -#define {{ name|upper }}_CHANNELS_HEIGHT {{ input_dims[1] }} -#define {{ name|upper }}_CHANNELS_WIDTH {{ input_dims[2] }} -#define {{ name|upper }}_NB_OUTPUTS {{ output_dims[0] }} -#define {{ name|upper }}_OUTPUTS_HEIGHT {{ output_dims[1] }} -#define {{ name|upper }}_OUTPUTS_WIDTH {{ output_dims[2] }} -#define {{ name|upper }}_PADDING_Y {{ padding[1] }} -#define {{ name|upper }}_PADDING_X {{ padding[0] }} -#define {{ name|upper }}_STRIDE_Y {{ stride[1] }} -#define {{ name|upper }}_STRIDE_X {{ stride[0] }} -#define {{ name|upper }}_KERNEL_Y {{ kernel[1] }} -#define {{ name|upper }}_KERNEL_X {{ kernel[0] }} -#define {{ name|upper }}_POOLING_TYPE {{ pool_type }} - -#endif /* {{ name|upper }}_LAYER_H */ diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/relu.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/relu.jinja index f896b95289a4baaeb03fad45d31c7cb640a17851..9e1a0ab99c3bc036bdc02275801d8374d3868b56 100644 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/relu.jinja +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/relu.jinja @@ -2,8 +2,11 @@ #ifndef {{ name|upper }}_LAYER_H #define {{ name|upper }}_LAYER_H +{% include "./_meminfo.jinja" %} + {# For layer configuration -#} #define {{ name|upper }}_INPUTS_SIZE {{ in_size[0] }} #define {{ name|upper }}_OUTPUTS_SIZE {{ out_size[0] }} + #endif /* {{ name|upper }}_LAYER_H */ diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/batchnorm2d.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/batchnorm2d.jinja similarity index 94% rename from aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/batchnorm2d.jinja rename to aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/batchnorm2d.jinja index 5e7c73c8e55233b2c3d93c99fe3dc6e7682fe503..ca13e3fa280405181d6894e59fc7f6eff46be600 100644 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/batchnorm2d.jinja +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/batchnorm2d.jinja @@ -1 +1 @@ -aidge_batchnorm2d_chw_{{dataformat}} ({{input_name}}, {{output_name}}, {{running_mean_name}}, {{running_var_name}}, {{weight_name}}, {{bias_name}}, {{ name|upper }}_EPSILON, {{ name|upper }}_NB_CHANNELS, {{ name|upper }}_CHANNELS_WIDTH, {{ name|upper }}_CHANNELS_HEIGHT); \ No newline at end of file +aidge_batchnorm2d_chw_{{dataformat}} ({{input_name}}, {{output_name}}, {{running_mean_name}}, {{running_var_name}}, {{weight_name}}, {{bias_name}}, {{ name|upper }}_EPSILON, {{ name|upper }}_NB_CHANNELS, {{ name|upper }}_CHANNELS_WIDTH, {{ name|upper }}_CHANNELS_HEIGHT); diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/concat.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/concat.jinja similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/concat.jinja rename to aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/concat.jinja diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/conv_kernel.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/conv_kernel.jinja new file mode 100644 index 0000000000000000000000000000000000000000..3b853ca1eef4d37027fa9aa70e002d166a2f6a13 --- /dev/null +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/conv_kernel.jinja @@ -0,0 +1,28 @@ +{% if not is_output %} +{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET; +{% endif %} +N2D2_Export::convcellPropagate<{{ in_name[0]|upper }}_NB_CHANNELS, + {{ in_name[0]|upper }}_IN_HEIGHT, + {{ in_name[0]|upper }}_IN_WIDTH, + {{ out_name[0]|upper }}_NB_OUTPUTS, + {{ out_name[0]|upper }}_OUT_HEIGHT, + {{ out_name[0]|upper }}_OUT_WIDTH, + {{ name|upper }}_PADDING_Y, + {{ name|upper }}_PADDING_X, + {{ name|upper }}_STRIDE_Y, + {{ name|upper }}_STRIDE_X, + {{ name|upper }}_KERNEL_HEIGHT, + {{ name|upper }}_KERNEL_WIDTH, + {{ name|upper }}_ACTIVATION, + {{ in_name[0]|upper }}_CONT_OFFSET, + {{ in_name[0]|upper }}_CONT_SIZE, + {{ in_name[0]|upper }}_WRAP_OFFSET, + {{ in_name[0]|upper }}_WRAP_SIZE, + {{ in_name[0]|upper }}_STRIDE, + {{ out_name[0]|upper }}_CONT_OFFSET, + {{ out_name[0]|upper }}_CONT_SIZE, + {{ out_name[0]|upper }}_WRAP_OFFSET, + {{ out_name[0]|upper }}_WRAP_SIZE, + {{ out_name[0]|upper }}_STRIDE> + ({{in_name[0]}}, {{out_name[0]}}, {{in_name[2]}}, {{in_name[1]}}, {{ name|upper }}_SCALING); + diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/elemwise.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/elemwise.jinja similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/elemwise.jinja rename to aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/elemwise.jinja diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/fc_kernel.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/fc_kernel.jinja new file mode 100644 index 0000000000000000000000000000000000000000..6511320fe5e729f35c8d725e80b9f9fde6d1b199 --- /dev/null +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/fc_kernel.jinja @@ -0,0 +1,21 @@ +{% if not is_output %} +{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET; +{% endif %} +N2D2_Export::fccellPropagate<{{ in_name[0] | upper }}_NB_CHANNELS, + {{ in_name[0] | upper }}_IN_HEIGHT, + {{ in_name[0] | upper }}_IN_WIDTH, + {{ out_name[0] | upper }}_NB_OUTPUTS, + {{ out_name[0] | upper }}_OUT_HEIGHT, + {{ out_name[0] | upper }}_OUT_WIDTH, + {{name|upper}}_ACTIVATION, + {{ in_name[0] | upper }}_CONT_OFFSET, + {{ in_name[0] | upper }}_CONT_SIZE, + {{ in_name[0] | upper }}_WRAP_OFFSET, + {{ in_name[0] | upper }}_WRAP_SIZE, + {{ in_name[0] | upper }}_STRIDE, + {{ out_name[0] | upper }}_CONT_OFFSET, + {{ out_name[0] | upper }}_CONT_SIZE, + {{ out_name[0] | upper }}_WRAP_OFFSET, + {{ out_name[0] | upper }}_WRAP_SIZE, + {{ out_name[0] | upper }}_STRIDE> + ({{ in_name[0] }}, {{ out_name[0] }}, {{ in_name[2] }}, {{ in_name[1] }}, {{ name | upper }}_SCALING); diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/gather.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/gather.jinja similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/gather.jinja rename to aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/gather.jinja diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/matmul.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/matmul.jinja similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/matmul.jinja rename to aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/matmul.jinja diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/pool_kernel.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/pool_kernel.jinja new file mode 100644 index 0000000000000000000000000000000000000000..fe0fa34ed894b6aae9a386249df96e4b22079e21 --- /dev/null +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/pool_kernel.jinja @@ -0,0 +1,28 @@ +{% if not is_output %} +{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET; +{% endif %} +N2D2_Export::poolcellPropagate<{{ in_name[0]|upper }}_NB_CHANNELS, + {{ in_name[0]|upper }}_IN_HEIGHT, + {{ in_name[0]|upper }}_IN_WIDTH, + {{ out_name[0]|upper }}_NB_OUTPUTS, + {{ out_name[0]|upper }}_OUT_HEIGHT, + {{ out_name[0]|upper }}_OUT_WIDTH, + {{ name|upper }}_PADDING_Y, + {{ name|upper }}_PADDING_X, + {{ name|upper }}_STRIDE_Y, + {{ name|upper }}_STRIDE_X, + {{ name|upper }}_KERNEL_HEIGHT, + {{ name|upper }}_KERNEL_WIDTH, + {{ name|upper }}_POOLING_TYPE, + {{ name|upper }}_ACTIVATION, + {{ in_name[0]|upper }}_CONT_OFFSET, + {{ in_name[0]|upper }}_CONT_SIZE, + {{ in_name[0]|upper }}_WRAP_OFFSET, + {{ in_name[0]|upper }}_WRAP_SIZE, + {{ in_name[0]|upper }}_STRIDE, + {{ out_name[0]|upper }}_CONT_OFFSET, + {{ out_name[0]|upper }}_CONT_SIZE, + {{ out_name[0]|upper }}_WRAP_OFFSET, + {{ out_name[0]|upper }}_WRAP_SIZE, + {{ out_name[0]|upper }}_STRIDE> + ({{in_name[0]}}, {{out_name[0]}}); diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/relu.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/relu.jinja new file mode 100644 index 0000000000000000000000000000000000000000..13a8c6145dbf40c83f454feb1906398aa09f72d0 --- /dev/null +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/relu.jinja @@ -0,0 +1,4 @@ +{% if not is_output %} +{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET; +{% endif %} +aidge_relu_float32({{in_name[0]}}, {{out_name[0]}}, {{name|upper}}_INPUTS_SIZE); diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/reshape.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/reshape.jinja similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/reshape.jinja rename to aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/reshape.jinja diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/slice.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/slice.jinja similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/slice.jinja rename to aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/slice.jinja diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/transpose.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/transpose.jinja similarity index 100% rename from aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/transpose.jinja rename to aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/transpose.jinja diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/activation.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/activation.jinja deleted file mode 100644 index 8baa4ea019d4624994aabf4a6685f41cd6de4b60..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/activation.jinja +++ /dev/null @@ -1 +0,0 @@ - aidge_{{activation_type|lower}}_{{dataformat}}({{in_name[0]}}, {{out_name[0]}}, {% if activation_type is eq('softmax') %} {{in_name[0]}}_DIMS, {{name|upper}}_AXIS, {{name|upper}}_INPUT_DIMS_SIZE,{% endif %} {{name|upper}}_OUTPUTS_SIZE); diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/activation_chw.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/activation_chw.jinja deleted file mode 100644 index 796a3718483e4fe995e9904c3faeb24693ad5431..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/activation_chw.jinja +++ /dev/null @@ -1 +0,0 @@ - aidge_{{activation_type|lower}}_chw_{{dataformat}}({{input_name}}, {{output_name}}, {% if activation_type is eq('softmax') %} {{input_name}}_DIMS, {{name|upper}}_AXIS, {{name|upper}}_INPUT_DIMS_SIZE,{% endif %} {{name|upper}}_OUTPUTS_SIZE); \ No newline at end of file diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/conv_kernel.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/conv_kernel.jinja deleted file mode 100644 index f637c89134cc5ff988edaab152917bdd694166f9..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/conv_kernel.jinja +++ /dev/null @@ -1,24 +0,0 @@ -N2D2_Export::convcellPropagate<{{ in_name[0]|upper }}_NB_CHANNELS, - {{ in_name[0]|upper }}_CHANNELS_HEIGHT, - {{ in_name[0]|upper }}_CHANNELS_WIDTH, - {{ out_name[0]|upper }}_NB_OUTPUTS, - {{ out_name[0]|upper }}_OUTPUTS_HEIGHT, - {{ out_name[0]|upper }}_OUTPUTS_WIDTH, - {{ name|upper }}_PADDING_Y, - {{ name|upper }}_PADDING_X, - {{ name|upper }}_STRIDE_Y, - {{ name|upper }}_STRIDE_X, - {{ name|upper }}_KERNEL_HEIGHT, - {{ name|upper }}_KERNEL_WIDTH, - {{ name|upper }}_ACTIVATION, - {{ out_name[0]|upper }}_MEM_CONT_OFFSET, - {{ out_name[0]|upper }}_MEM_CONT_SIZE, - {{ out_name[0]|upper }}_MEM_WRAP_OFFSET, - {{ out_name[0]|upper }}_MEM_WRAP_SIZE, - {{ out_name[0]|upper }}_MEM_STRIDE, - {{ name|upper }}_MEM_CONT_OFFSET, - {{ name|upper }}_MEM_CONT_SIZE, - {{ name|upper }}_MEM_WRAP_OFFSET, - {{ name|upper }}_MEM_WRAP_SIZE, - {{ name|upper }}_MEM_STRIDE> - ({{in_name[0]}}, {{out_name[0]}}, {{in_name[2]}}, {{in_name[1]}}, {{ name|upper }}_SCALING); diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/convolution.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/convolution.jinja deleted file mode 100644 index 9fcde23663b5e13d020087e9ce4b097de428babe..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/convolution.jinja +++ /dev/null @@ -1 +0,0 @@ -aidge_conv2d_hwc_{{dataformat}} ({{input_name}}, {{weight_name}}, {{input_name[2]}}, {{output_name}}, {{name|upper}}_NB_CHANNELS, {{name|upper}}_CHANNELS_WIDTH, {{name|upper}}_CHANNELS_HEIGHT, {{name|upper}}_KERNEL_Y, {{name|upper}}_KERNEL_X, {{name|upper}}_NB_OUTPUTS, {{name|upper}}_OUTPUTS_WIDTH, {{name|upper}}_OUTPUTS_HEIGHT, {{name|upper}}_PADDING_X, {{name|upper}}_PADDING_Y, {{name|upper}}_STRIDE_X, {{name|upper}}_STRIDE_Y, {{name|upper}}_DILATION_X, {{name|upper}}_DILATION_Y); diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/fc_chw.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/fc_chw.jinja deleted file mode 100644 index 57aa7876f2d1f6a7d8327a6437eaadc976b03d6a..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/fc_chw.jinja +++ /dev/null @@ -1 +0,0 @@ -aidge_fc_chw_{{dataformat}} ({{input_name}}, {{weight_name}}, {{bias_name}}, {{output_name}}, {{name|upper}}_NB_CHANNELS, {{name|upper}}_CHANNEL_HEIGHT, {{name|upper}}_CHANNEL_WIDTH, {{name|upper}}_NB_OUTPUTS); \ No newline at end of file diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/fc_kernel.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/fc_kernel.jinja deleted file mode 100644 index 93637f2cc91a4004ded15aa35db7f19f829b997c..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/fc_kernel.jinja +++ /dev/null @@ -1,18 +0,0 @@ -N2D2_Export::fccellPropagate<{{ name | upper }}_NB_CHANNELS, - {{ name | upper }}_CHANNELS_HEIGHT, - {{ name | upper }}_CHANNELS_WIDTH, - {{ name | upper }}_NB_OUTPUTS, - {{ name | upper }}_OUTPUTS_HEIGHT, - {{ name | upper }}_OUTPUTS_WIDTH, - {{ name | upper }}_ACTIVATION, - {{ out_name[0]|upper | upper }}_MEM_CONT_OFFSET, - {{ out_name[0]|upper | upper }}_MEM_CONT_SIZE, - {{ out_name[0]|upper | upper }}_MEM_WRAP_OFFSET, - {{ out_name[0]|upper | upper }}_MEM_WRAP_SIZE, - {{ out_name[0]|upper | upper }}_MEM_STRIDE, - {{ name | upper }}_MEM_CONT_OFFSET, - {{ name | upper }}_MEM_CONT_SIZE, - {{ name | upper }}_MEM_WRAP_OFFSET, - {{ name | upper }}_MEM_WRAP_SIZE, - {{ name | upper }}_MEM_STRIDE> - ({{ in_name[0] }}, {{ out_name[0] }}, {{ in_name[2] }}, {{ in_name[1] }}, {{ name | upper }}_SCALING); diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/fullyconnected.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/fullyconnected.jinja deleted file mode 100644 index b57ffdfd3de8699b9c644c56d3c341ed764ee73e..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/fullyconnected.jinja +++ /dev/null @@ -1 +0,0 @@ -aidge_fc_{{dataformat}} ({{input_name}}, {{weight_name}}, {{bias_name}}, {{output_name}}, {{name|upper}}_BATCH_SIZE, {{name|upper}}_NB_INPUTS, {{name|upper}}_NB_OUTPUTS); \ No newline at end of file diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/pool_kernel.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/pool_kernel.jinja deleted file mode 100644 index 95b5b024d4f1d455af9a2ef4167ff5bdfb3b49c0..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/pool_kernel.jinja +++ /dev/null @@ -1,25 +0,0 @@ -N2D2_Export::poolcellPropagat<{{ in_name[0]|upper }}_NB_CHANNELS, - {{ in_name[0]|upper }}_CHANNELS_HEIGHT, - {{ in_name[0]|upper }}_CHANNELS_WIDTH, - {{ out_name[0]|upper }}_NB_OUTPUTS, - {{ out_name[0]|upper }}_OUTPUTS_HEIGHT, - {{ out_name[0]|upper }}_OUTPUTS_WIDTH, - {{ name|upper }}_PADDING_Y, - {{ name|upper }}_PADDING_X, - {{ name|upper }}_STRIDE_Y, - {{ name|upper }}_STRIDE_X, - {{ name|upper }}_KERNEL_HEIGHT, - {{ name|upper }}_KERNEL_WIDTH, - {{ name|upper }}_POOLING_TYPE, - {{ name|upper }}_ACTIVATION, - {{ out_name[0]|upper }}_MEM_CONT_OFFSET, - {{ out_name[0]|upper }}_MEM_CONT_SIZE, - {{ out_name[0]|upper }}_MEM_WRAP_OFFSET, - {{ out_name[0]|upper }}_MEM_WRAP_SIZE, - {{ out_name[0]|upper }}_MEM_STRIDE, - {{ name|upper }}_MEM_CONT_OFFSET, - {{ name|upper }}_MEM_CONT_SIZE, - {{ name|upper }}_MEM_WRAP_OFFSET, - {{ name|upper }}_MEM_WRAP_SIZE, - {{ name|upper }}_MEM_STRIDE> - ({{in_name[0]}}, {{out_name[0]}}); diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/pooling.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/pooling.jinja deleted file mode 100644 index 86684af278e0014b12c1a7ef7f9de26131215dde..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/pooling.jinja +++ /dev/null @@ -1 +0,0 @@ -aidge_{{pool_type}}pool2d_{{dataformat}} ({{input_name}}, {{output_name}}, {{name|upper}}_NB_CHANNELS, {{name|upper}}_CHANNELS_WIDTH, {{name|upper}}_CHANNELS_HEIGHT, {{name|upper}}_KERNEL_X, {{name|upper}}_KERNEL_Y, {{name|upper}}_NB_OUTPUTS, {{name|upper}}_OUTPUTS_WIDTH, {{name|upper}}_OUTPUTS_HEIGHT, {{name|upper}}_PADDING_X, {{name|upper}}_PADDING_Y, {{name|upper}}_STRIDE_X, {{name|upper}}_STRIDE_Y); \ No newline at end of file diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/relu.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/relu.jinja deleted file mode 100644 index cb11a50802e4f713ef23930e88bafd014dbcd616..0000000000000000000000000000000000000000 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/relu.jinja +++ /dev/null @@ -1 +0,0 @@ -aidge_relu_float32({{in_name[0]}}, {{out_name[0]}}, {{in_name[0]}}_DIMS, {{name|upper}}_OUTPUTS_SIZE);