diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/conv_config.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/conv_config.jinja index 6a48f2b55c4889829823f0abf095cff40ebecc71..cea1af7109f604bfe31b844a758474b5cade3d1d 100644 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/conv_config.jinja +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/conv_config.jinja @@ -2,8 +2,7 @@ #ifndef {{ name|upper }}_LAYER_H #define {{ name|upper }}_LAYER_H -#include "typedefs.h" -#include "nn_scaling_functions.hpp" +#include "kernels/nn_scaling_functions.hpp" {% include "./_def_io.jinja" %} {% include "./_meminfo.jinja" %} diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/fc_config.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/fc_config.jinja index ab33588ca642d54e6fb5fcc58fe7a5279d4ddb32..ba84b82a9d85bea686aca366b47067c016cf103e 100644 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/fc_config.jinja +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/fc_config.jinja @@ -2,8 +2,7 @@ #ifndef {{ name|upper }}_LAYER_H #define {{ name|upper }}_LAYER_H -#include "typedefs.h" -#include "nn_scaling_functions.hpp" +#include "kernels/nn_scaling_functions.hpp" {# For layer configuration -#} {% include "./_def_io.jinja" %} diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/pool_config.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/pool_config.jinja index 02586f2958896397b5d6b18cdc6f1ddfa27f476e..363e6f9bcd3f83460a3a2533ce6e243c887442fd 100644 --- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/pool_config.jinja +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/configuration/pool_config.jinja @@ -2,7 +2,7 @@ #ifndef {{ name|upper }}_LAYER_H #define {{ name|upper }}_LAYER_H -#include "typedefs.h" +{# #include "typedefs.h" #} {# For layer configuration -#} {% include "./_def_io.jinja" %} diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/custom_conv_kernel.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/custom_conv_kernel.jinja new file mode 100644 index 0000000000000000000000000000000000000000..b7dc7bd3ff2ab65d61d5f58af4bff1780dd15444 --- /dev/null +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/custom_conv_kernel.jinja @@ -0,0 +1,17 @@ +{% filter indent(width=4, first=False) %} +{% include "./_mem_offset.jinja" %} +N2D2_Export::customconvcellPropagate<{{ 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, data<32>> + ({{in_name[0]}}, {{out_name[0]}}, {{in_name[2]}}, {{in_name[1]}}, {{ name|upper }}_SCALING); +{% endfilter %} diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/custom_fc_kernel.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/custom_fc_kernel.jinja new file mode 100644 index 0000000000000000000000000000000000000000..7de26494bc8ae6d6edad687b6e6d150d82b50821 --- /dev/null +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/custom_fc_kernel.jinja @@ -0,0 +1,12 @@ +{% filter indent(width=4, first=False) %} +{% include "./_mem_offset.jinja" %} +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, + data<32>> + ({{ in_name[0] }}, {{ out_name[0] }}, {{ in_name[2] }}, {{ in_name[1] }}, {{ name | upper }}_SCALING); +{% endfilter %} \ No newline at end of file diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/custom_pool_kernel.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/custom_pool_kernel.jinja new file mode 100644 index 0000000000000000000000000000000000000000..5fe2d352bc28ed09534c0433ef0fc1d9866e037d --- /dev/null +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/custom_pool_kernel.jinja @@ -0,0 +1,18 @@ +{% filter indent(width=4, first=False) %} +{% include "./_mem_offset.jinja" %} +N2D2_Export::custompoolcellPropagate<{{ 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]}}, {{out_name[0]}}); +{% endfilter %} diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/forward.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/forward.jinja new file mode 100644 index 0000000000000000000000000000000000000000..fa87a657c4dfec6c2ad5da2fb35b03b443e1b8fc --- /dev/null +++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/forward.jinja @@ -0,0 +1,43 @@ + +#include <stdint.h> + +#ifdef SAVE_OUTPUTS +#include <sys/types.h> +#include <sys/stat.h> +#endif + +#include "include/forward.hpp" + +// Layer & memory configurations +{%- for header in headers %} +#include "{{ header }}" +{%- endfor %} + +// blabla + +// Memory block +{%- if mem_section == None %} +static {{mem_ctype}} mem[{{peak_mem}}]; +{%- else %} +static {{mem_ctype}} mem[{{peak_mem}}] __attribute__((section("{{ mem_section }}"))); +{%- endif %} + +{# Forward function #} +{#- Support multiple inputs with different datatypes and multiple outputs with different datatypes -#} +void {{ func_name }} ( + {%- for i in range(inputs_name | length) -%} + const {{ inputs_dtype[i] }}* {{ inputs_name[i] }}, + {%- endfor -%} + {%- for o in range(outputs_name | length) -%} + {{ outputs_dtype[o] }}** {{ outputs_name[o] }}_ptr{% if not loop.last %}, {% endif %} + {%- endfor -%}) +{ + + {%- for action in actions %} + {{ action }} + {%- endfor %} + + {%- for output_name in outputs_name %} + *{{ output_name }}_ptr = {{ output_name }}; + {%- endfor %} +}