Skip to content
Snippets Groups Projects
Commit f4673ae6 authored by Cyril Moineau's avatar Cyril Moineau
Browse files

First adaptation of export to new ExportNodeCpp.

parent 43914631
No related branches found
No related tags found
3 merge requests!17v0.1.0,!12v0.4.0,!11Export refactor
Showing
with 73 additions and 9 deletions
void aidge_relu_float32 (float* inputs,
void aidge_relu_float32 (float* inputs,
float* outputs, float* outputs,
unsigned int size) unsigned int size)
{ {
for (unsigned int i = 0; i < size; ++i) { for (unsigned int i = 0; i < size; ++i) {
outputs[i] = (inputs[i] < 0.0f) ? 0.0f : inputs[i]; outputs[i] = (inputs[i] < 0.0f) ? 0.0f : inputs[i];
} }
} }
\ No newline at end of file
{# NOTE: Suppose input is first #}
// INPUT CONF
{% 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 %}
// OUTPUT CONF
{% 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 %}
// MEMINFO CONF
{% for outidx in range(nb_out) -%}
#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]}}
#define {{ out_name[outidx]|upper }}_LENGTH {{ mem_info_length[outidx]}}
#define {{ out_name[outidx]|upper }}_CONT_SIZE {{ mem_info_cont_size[outidx]}}
#define {{ out_name[outidx]|upper }}_CONT_OFFSET {{ mem_info_cont_offset[outidx]}}
#define {{ out_name[outidx]|upper }}_WRAP_OFFSET {{ mem_info_wrap_offset[outidx]}}
#define {{ out_name[outidx]|upper }}_WRAP_SIZE {{ mem_info_wrap_size[outidx]}}
{% endfor %}
...@@ -2,15 +2,15 @@ ...@@ -2,15 +2,15 @@
#ifndef {{ name|upper }}_LAYER_H #ifndef {{ name|upper }}_LAYER_H
#define {{ name|upper }}_LAYER_H #define {{ name|upper }}_LAYER_H
/* Activation {{ activation_type|lower }} layer */ /* Activation "{{ activation_type|lower }}" layer */
{# For layer configuration -#} {# For layer configuration -#}
#define {{ name|upper }}_INPUTS_SIZE {{ nb_inputs }} #define {{ name|upper }}_INPUTS_SIZE {{ in_size[0] }}
#define {{ name|upper }}_OUTPUTS_SIZE {{ nb_outputs }} #define {{ name|upper }}_OUTPUTS_SIZE {{ out_size[0] }}
{% if axis is defined %} {% if axis is defined %}
#define {{ name|upper }}_AXIS {{ axis }} #define {{ name|upper }}_AXIS {{ axis }}
#define {{name|upper}}_INPUT_DIMS_SIZE {{ input_dims|length}} #define {{ name|upper }}_INPUT_DIMS_SIZE {{ in_dims[0]|length}}
{% endif %} {% endif %}
#define {{ name|upper }}_ACTIVATION {{ activation_type }} #define {{ name|upper }}_ACTIVATION "{{ activation_type }}"
#endif /* {{ name|upper }}_LAYER_H */ #endif /* {{ name|upper }}_LAYER_H */
...@@ -5,24 +5,18 @@ ...@@ -5,24 +5,18 @@
#include "typedefs.h" #include "typedefs.h"
#include "nn_scaling_functions.hpp" #include "nn_scaling_functions.hpp"
{# For layer configuration -#} {% include "./_def_io.jinja" %}
// In/Out {% include "./_meminfo.jinja" %}
#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] }}
// Attributes // Attributes
#define {{ name|upper }}_KERNEL_HEIGHT {{ kernel[1] }} #define {{ name|upper }}_KERNEL_HEIGHT {{ kernel_dims[1] }}
#define {{ name|upper }}_KERNEL_WIDTH {{ kernel[0] }} #define {{ name|upper }}_KERNEL_WIDTH {{ kernel_dims[0] }}
#define {{ name|upper }}_PADDING_Y {{ padding[1] }} #define {{ name|upper }}_PADDING_Y {{ padding[1] }}
#define {{ name|upper }}_PADDING_X {{ padding[0] }} #define {{ name|upper }}_PADDING_X {{ padding[0] }}
#define {{ name|upper }}_STRIDE_Y {{ stride[1] }} #define {{ name|upper }}_STRIDE_Y {{ stride_dims[1] }}
#define {{ name|upper }}_STRIDE_X {{ stride[0] }} #define {{ name|upper }}_STRIDE_X {{ stride_dims[0] }}
#define {{ name|upper }}_DILATION_Y {{ dilation[1] }} #define {{ name|upper }}_DILATION_Y {{ dilation_dims[1] }}
#define {{ name|upper }}_DILATION_X {{ dilation[0] }} #define {{ name|upper }}_DILATION_X {{ dilation_dims[0] }}
// Activation/Scaling // Activation/Scaling
#define {{ name|upper }}_ACTIVATION {{ activation }} #define {{ name|upper }}_ACTIVATION {{ activation }}
...@@ -37,13 +31,11 @@ static const N2D2_Export::SingleShiftScaling<{{shift_value}}> {{ name|upper }}_S ...@@ -37,13 +31,11 @@ static const N2D2_Export::SingleShiftScaling<{{shift_value}}> {{ name|upper }}_S
static const N2D2_Export::NoScaling {{ name|upper }}_SCALING; static const N2D2_Export::NoScaling {{ name|upper }}_SCALING;
{%- endif %} {%- endif %}
{# Calculate sizes -#}
{%- set weights_size = output_dims[0] * input_dims[0] * kernel[1] * kernel[0] %}
// Sizes // Sizes
#define {{ name|upper }}_WEIGHTS_SIZE {{ weights_size }} #define {{ name|upper }}_WEIGHTS_SIZE {{ out_chan[0] * in_chan[0] * kernel_dims[1] * kernel_dims[0] }}
#define {{ name|upper }}_BIASES_SIZE {{ output_dims[0] }} #define {{ name|upper }}_BIASES_SIZE {{ out_chan[0] }}
#define {{ name|upper }}_OUTPUTS_SIZE {{ output_dims[0] * output_dims[1] * output_dims[2] }} #define {{ name|upper }}_OUTPUTS_SIZE {{ out_chan[0] * out_height[0] * out_width[0] }}
#define {{ name|upper }}_CHANNELS_SIZE {{ input_dims[0] * input_dims[1] * input_dims[2] }} #define {{ name|upper }}_CHANNELS_SIZE {{ in_chan[0] * in_height[0] * in_width[0] }}
#endif /* {{ name|upper }}_LAYER_H */ #endif /* {{ name|upper }}_LAYER_H */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment