diff --git a/aidge_export_cpp/templates/configuration/_def_io.jinja b/aidge_export_cpp/templates/configuration/_def_io.jinja index 9770465a0540a77052acc8ee1e1a618bc3e9491b..e8330d9fa1b156530ed1e3f460f669c2379e472a 100644 --- a/aidge_export_cpp/templates/configuration/_def_io.jinja +++ b/aidge_export_cpp/templates/configuration/_def_io.jinja @@ -1,8 +1,12 @@ {# NOTE: Suppose input is first #} -#define {{ name|upper }}_NB_CHANNELS {{ in_chan[0] }} -#define {{ name|upper }}_CHANNELS_HEIGHT {{ in_height[0] }} -#define {{ name|upper }}_CHANNELS_WIDTH {{ in_width[0] }} -#define {{ name|upper }}_NB_OUTPUTS {{ out_chan[0] }} -#define {{ name|upper }}_OUTPUTS_HEIGHT {{ out_height[0] }} -#define {{ name|upper }}_OUTPUTS_WIDTH {{ out_width[0] }} +{% for inidx in range(nb_in) -%} +#define {{ in_name[inidx]|upper }}_NB_CHANNELS {{ in_chan[inidx] }} +#define {{ in_name[inidx]|upper }}_IN_HEIGHT {{ in_height[inidx] }} +#define {{ in_name[inidx]|upper }}_IN_WIDTH {{ in_width[inidx] }} +{% endfor %} +{% for outidx in range(nb_out) -%} +#define {{ out_name[outidx]|upper }}_NB_OUTPUTS {{ out_chan[outidx] }} +#define {{ out_name[outidx]|upper }}_OUT_HEIGHT {{ out_height[outidx] }} +#define {{ out_name[outidx]|upper }}_OUT_WIDTH {{ out_width[outidx] }} +{% endfor %} diff --git a/aidge_export_cpp/templates/configuration/activation_config.jinja b/aidge_export_cpp/templates/configuration/activation_config.jinja index 240e86bec4a9f2cdf33d12017437e064fc5a1812..f9535e7bebf50ad25bfd6defd79562d410addf5e 100644 --- a/aidge_export_cpp/templates/configuration/activation_config.jinja +++ b/aidge_export_cpp/templates/configuration/activation_config.jinja @@ -6,6 +6,7 @@ {%- set nb_data = in_chan[0] * in_height[0] * in_width[0] %} #define {{ name|upper }}_NB_DATA {{ nb_data }} #define {{ name|upper }}_ACTIVATION {{ activation }} +{% include "./_def_io.jinja" %} {% include "./_meminfo.jinja" %} static const {{ rescaling }} {{ name|upper }}_RESCALING = {}; diff --git a/aidge_export_cpp/templates/configuration/elemwise_config.jinja b/aidge_export_cpp/templates/configuration/elemwise_config.jinja index 2c5c436de24aca803ef085284009afbb83b541fb..fc801f16806968bf9da86c6009532d84655125b3 100644 --- a/aidge_export_cpp/templates/configuration/elemwise_config.jinja +++ b/aidge_export_cpp/templates/configuration/elemwise_config.jinja @@ -2,6 +2,7 @@ #ifndef {{ name|upper }}_LAYER_H #define {{ name|upper }}_LAYER_H +{% include "./_def_io.jinja" %} {% include "./_meminfo.jinja" %} {# For layer configuration -#} #define {{ name|upper }}_NB_ELTS {{ in_dims[0]|join('*') }} diff --git a/aidge_export_cpp/templates/configuration/leakyrelu_config.jinja b/aidge_export_cpp/templates/configuration/leakyrelu_config.jinja index d8377de9c1913b8f9ac2536741ede94f461800b7..80903622d394bac9132ae3015f82ef72ac2242ea 100644 --- a/aidge_export_cpp/templates/configuration/leakyrelu_config.jinja +++ b/aidge_export_cpp/templates/configuration/leakyrelu_config.jinja @@ -3,6 +3,7 @@ #define {{ name|upper }}_LAYER_H {# For layer configuration -#} +{% include "./_def_io.jinja" %} {% include "./_meminfo.jinja" %} #define {{ name|upper }}_NB_DATA {{ nb_data }} #define {{ name|upper }}_ALPHA {{ alpha }} diff --git a/aidge_export_cpp/templates/kernel_forward/_save_outputs.jinja b/aidge_export_cpp/templates/kernel_forward/_save_outputs.jinja index 1b2a698b0493ac4a2c97c5098fe1ed76234e4e47..ddefc0c7bfbb5fc5e9298091f755b0438496fe53 100644 --- a/aidge_export_cpp/templates/kernel_forward/_save_outputs.jinja +++ b/aidge_export_cpp/templates/kernel_forward/_save_outputs.jinja @@ -1,18 +1,19 @@ -/* COMMENTED FOR THE MOMENT +/* #ifdef SAVE_OUTPUTS {% for outidx in range(nb_out) -%} FILE* {{out_name[outidx]|upper}}_STREAM = fopen("outputs/{{out_name[outidx]}}.txt", "w"); - saveOutputs( + saveOutputs<{{out_cdtype[outidx]}}>( {{out_name[outidx]|upper}}_NB_OUTPUTS, - {{out_name[outidx]|upper}}_OUTPUTS_HEIGHT, - {{out_name[outidx]|upper}}_OUTPUTS_WIDTH, + {{out_name[outidx]|upper}}_OUT_HEIGHT, + {{out_name[outidx]|upper}}_OUT_WIDTH, {{out_name[outidx]|upper}}_CONT_OFFSET, {{out_name[outidx]|upper}}_CONT_SIZE, {{out_name[outidx]|upper}}_WRAP_OFFSET, {{out_name[outidx]|upper}}_WRAP_SIZE, {{out_name[outidx]|upper}}_STRIDE, {{out_name[outidx]}}, - {{out_name[outidx]|upper}}_STREAM, Network::Format::CHW); + {{out_name[outidx]|upper}}_STREAM, + Format::{{out_format[outidx]}}); fclose({{out_name[outidx]|upper}}_STREAM); {% endfor %} #endif diff --git a/aidge_export_cpp/templates/kernel_forward/batchnorm_forward.jinja b/aidge_export_cpp/templates/kernel_forward/batchnorm_forward.jinja index 4bf5191b033bc952be43ca1799d13550a3a56b71..86dfb9be5e698ea1ea5d5220fdba24355c816c4e 100644 --- a/aidge_export_cpp/templates/kernel_forward/batchnorm_forward.jinja +++ b/aidge_export_cpp/templates/kernel_forward/batchnorm_forward.jinja @@ -1,6 +1,6 @@ -batchnorm_forward<{{name|upper}}_NB_OUTPUTS, - {{name|upper}}_OUTPUTS_HEIGHT, - {{name|upper}}_OUTPUTS_WIDTH, +batchnorm_forward<{{ out_name[0]|upper }}_NB_OUTPUTS, + {{ out_name[0]|upper }}_OUT_HEIGHT, + {{ out_name[0]|upper }}_OUT_WIDTH, {{name|upper}}_ACTIVATION> ({{input_name}}, {{output_name}}, {{biases_name}}, {{variances_name}}, {{means_name}}, {{scales_name}}, {{name|upper}}_EPSILON); {% include "./_save_outputs.jinja" %} diff --git a/aidge_export_cpp/templates/kernel_forward/convolution_forward.jinja b/aidge_export_cpp/templates/kernel_forward/convolution_forward.jinja index e51fa3b4a9f4084f27085a29a59c00d1a8f140fb..59f218737082ad8a357672b18253b6d577365aa0 100644 --- a/aidge_export_cpp/templates/kernel_forward/convolution_forward.jinja +++ b/aidge_export_cpp/templates/kernel_forward/convolution_forward.jinja @@ -1,12 +1,12 @@ {% if not is_output %} {{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET; {% endif %} -convolution_forward<{{name|upper}}_NB_CHANNELS, - {{name|upper}}_CHANNELS_HEIGHT, - {{name|upper}}_CHANNELS_WIDTH, - {{name|upper}}_NB_OUTPUTS, - {{name|upper}}_OUTPUTS_HEIGHT, - {{name|upper}}_OUTPUTS_WIDTH, +convolution_forward<{{ 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, diff --git a/aidge_export_cpp/templates/kernel_forward/fullyconnected_forward.jinja b/aidge_export_cpp/templates/kernel_forward/fullyconnected_forward.jinja index e0043ed9c794f1b222f8a496884505063498f7cc..bb1e5f4974e99dc424b36268b4f7bba6745a6804 100644 --- a/aidge_export_cpp/templates/kernel_forward/fullyconnected_forward.jinja +++ b/aidge_export_cpp/templates/kernel_forward/fullyconnected_forward.jinja @@ -1,12 +1,12 @@ {% if not is_output %} {{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET; {% endif %} -fullyconnected_forward<{{name|upper}}_NB_CHANNELS, - {{name|upper}}_CHANNELS_HEIGHT, - {{name|upper}}_CHANNELS_WIDTH, - {{name|upper}}_NB_OUTPUTS, - {{name|upper}}_OUTPUTS_HEIGHT, - {{name|upper}}_OUTPUTS_WIDTH, +fullyconnected_forward<{{ 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]}}, {{out_name[0]}}, {{in_name[1]}}, {{in_name[2]}}, {{name|upper}}_RESCALING); {% include "./_save_outputs.jinja" %} diff --git a/aidge_export_cpp/templates/kernel_forward/pooling_forward.jinja b/aidge_export_cpp/templates/kernel_forward/pooling_forward.jinja index c70bba63781bf24aaae1b07ee1262c0c7b732b75..47973085549ba344478970fa60186c56f965481b 100644 --- a/aidge_export_cpp/templates/kernel_forward/pooling_forward.jinja +++ b/aidge_export_cpp/templates/kernel_forward/pooling_forward.jinja @@ -1,12 +1,12 @@ {% if not is_output %} {{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET; {% endif %} -pooling_forward<{{name|upper}}_NB_CHANNELS, - {{name|upper}}_CHANNELS_HEIGHT, - {{name|upper}}_CHANNELS_WIDTH, - {{name|upper}}_NB_OUTPUTS, - {{name|upper}}_OUTPUTS_HEIGHT, - {{name|upper}}_OUTPUTS_WIDTH, +pooling_forward<{{ 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, diff --git a/aidge_export_cpp/templates/network/network_forward.jinja b/aidge_export_cpp/templates/network/network_forward.jinja index 863fefd519b984e0bfb138c0fa76adfab0a21717..592e8c92bfaa5b67974791919553cb86005a2840 100644 --- a/aidge_export_cpp/templates/network/network_forward.jinja +++ b/aidge_export_cpp/templates/network/network_forward.jinja @@ -25,7 +25,7 @@ void model_forward({% for inp in inputs %}const {{inp[0]}}* {{inp[1]}}, {% endfo #ifdef SAVE_OUTPUTS // Creation of the outputs directory - struct stat st = {0}; + struct stat st {}; if (stat("outputs", &st) == -1) { mkdir("outputs", 0700); }