diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Softmax/aidge_softmax_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Softmax/aidge_softmax_chw_float32.c
similarity index 95%
rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Softmax/aidge_softmax_float32.c
rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Softmax/aidge_softmax_chw_float32.c
index cafa9e46ae946d274b815b3c21adcd8469185742..93d710e5955f478e11ead1c7f848dc5d716b28f0 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Softmax/aidge_softmax_float32.c
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Activation/Softmax/aidge_softmax_chw_float32.c
@@ -1,6 +1,6 @@
 #include <math.h>
 
-void aidge_softmax_float32 (float* inputs, 
+void aidge_softmax_chw_float32 (float* inputs, 
                             float* outputs,
                             int inputDims[],
                             int axis,
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/BatchNorm/aidge_batchnorm2d_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/BatchNorm/aidge_batchnorm2d_chw_float32.c
similarity index 94%
rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/BatchNorm/aidge_batchnorm2d_float32.c
rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/BatchNorm/aidge_batchnorm2d_chw_float32.c
index a6d65b2ae2b6f557de349cc72d84496ad5215d3a..62cc292e3e29bf81fbb878659899f8aa0d591f45 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/BatchNorm/aidge_batchnorm2d_float32.c
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/BatchNorm/aidge_batchnorm2d_chw_float32.c
@@ -1,7 +1,7 @@
 #include <math.h>
 
 
-void aidge_batchnorm2d_float32 (float* inputs,
+void aidge_batchnorm2d_chw_float32 (float* inputs,
                                 float* outputs,
                                 float* input_mean,
                                 float* input_var,
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/MatMul/aidge_matmul_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/MatMul/aidge_matmul_chw_float32.c
similarity index 98%
rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/MatMul/aidge_matmul_float32.c
rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/MatMul/aidge_matmul_chw_float32.c
index a28659ab7dce21dddb8f0ea28144649184749705..764d3d046e969227665a2bf55ef9e2c66fbf4b4f 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/MatMul/aidge_matmul_float32.c
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/MatMul/aidge_matmul_chw_float32.c
@@ -1,4 +1,4 @@
-void aidge_matmul_float32(float* input_a, 
+void aidge_matmul_chw_float32(float* input_a, 
                        float* input_b, 
                        float* output,
                        int dim_a[],
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Reshape/aidge_reshape_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Reshape/aidge_reshape_chw_float32.c
similarity index 78%
rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/Reshape/aidge_reshape_float32.c
rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Reshape/aidge_reshape_chw_float32.c
index 8ddbef43832c7221d811e5e4e9c0f0a949efec6d..e55d77c7cf43cb2fee719a24b835797175ebbfab 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Reshape/aidge_reshape_float32.c
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Reshape/aidge_reshape_chw_float32.c
@@ -1,5 +1,5 @@
 
-void aidge_reshape_float32(float* inputs,
+void aidge_reshape_chw_float32(float* inputs,
                            float* outputs,
                            unsigned int size)
 {
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Transform/Gather/aidge_gather_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Transform/Gather/aidge_gather_chw_float32.c
similarity index 96%
rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/Transform/Gather/aidge_gather_float32.c
rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Transform/Gather/aidge_gather_chw_float32.c
index 71abc521c1d007ae8ea1dc9c38be1d94ac6f5e81..62fee42da890f2a07aa8cc4a943ce1ad017c2534 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Transform/Gather/aidge_gather_float32.c
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Transform/Gather/aidge_gather_chw_float32.c
@@ -1,6 +1,6 @@
 
 
-void aidge_gather_float32 (float* inputs, 
+void aidge_gather_chw_float32 (float* inputs, 
                             float* outputs,
                             int axis,
                             int indices[],
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Transform/Transpose/aidge_transpose_float32.c b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Transform/Transpose/aidge_transpose_chw_float32.c
similarity index 94%
rename from aidge_export_arm_cortexm/_Aidge_Arm/kernels/Transform/Transpose/aidge_transpose_float32.c
rename to aidge_export_arm_cortexm/_Aidge_Arm/kernels/Transform/Transpose/aidge_transpose_chw_float32.c
index 2256ecdc9ac2f6ca2fa703cd86e4149f2db8a817..7b0313abced3b30f98853e3f0c2557562b0f27a3 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Transform/Transpose/aidge_transpose_float32.c
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/kernels/Transform/Transpose/aidge_transpose_chw_float32.c
@@ -1,4 +1,4 @@
-void aidge_transpose_float32   (float* inputs,    
+void aidge_transpose_chw_float32   (float* inputs,    
                                 float* outputs,
                                 int input_dims[],
                                 int perm[],
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
new file mode 100644
index 0000000000000000000000000000000000000000..796a3718483e4fe995e9904c3faeb24693ad5431
--- /dev/null
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/activation_chw.jinja
@@ -0,0 +1 @@
+    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/batchnorm2d.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/batchnorm2d.jinja
index da6ff8918c47c866361b2ff3588228e643cf00a9..5e7c73c8e55233b2c3d93c99fe3dc6e7682fe503 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/batchnorm2d.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/batchnorm2d.jinja
@@ -1 +1 @@
-aidge_batchnorm2d_{{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);
\ No newline at end of file
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/gather.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/gather.jinja
index 5abb0b497a8156f8fcbc2a4740671bf46ac4f8b7..f709c8699dbe75793df18d8e341010b3793b8ad6 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/gather.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/gather.jinja
@@ -1 +1 @@
-aidge_gather_{{dataformat}} ({{input_name}}, {{output_name}}, {{name|upper}}_AXIS, {{name}}_INDEXES , {{input_name}}_DIMS, {{name|upper}}_INPUT_DIMS_SIZE,{{name|upper}}_INDEXES_DIMS_SIZE,{{name|upper}}_OUTPUT_SIZE);
\ No newline at end of file
+aidge_gather_chw_{{dataformat}} ({{input_name}}, {{output_name}}, {{name|upper}}_AXIS, {{name}}_INDEXES , {{input_name}}_DIMS, {{name|upper}}_INPUT_DIMS_SIZE,{{name|upper}}_INDEXES_DIMS_SIZE,{{name|upper}}_OUTPUT_SIZE);
\ No newline at end of file
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/matmul.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/matmul.jinja
index b9315fe441823a297934a2e42deb53d22bd98f8e..15ff05fec3bb40332ac7968d20f594009f7903a4 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/matmul.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/matmul.jinja
@@ -1 +1 @@
-aidge_matmul_{{dataformat}} ({{inputa_name}}, {{inputb_name}}, {{output_name}}, {{inputa_name}}_DIMS, {{inputb_name}}_DIMS, {{output_name}}_DIMS ,{{name|upper}}_INPUT_A_DIMS_SIZE,{{name|upper}}_INPUT_B_DIMS_SIZE,{{name|upper}}_OUTPUT_DIMS_SIZE);
\ No newline at end of file
+aidge_matmul_chw_{{dataformat}} ({{inputa_name}}, {{inputb_name}}, {{output_name}}, {{inputa_name}}_DIMS, {{inputb_name}}_DIMS, {{output_name}}_DIMS ,{{name|upper}}_INPUT_A_DIMS_SIZE,{{name|upper}}_INPUT_B_DIMS_SIZE,{{name|upper}}_OUTPUT_DIMS_SIZE);
\ No newline at end of file
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/reshape.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/reshape.jinja
index 839624da766dab0ff1e4d2c1e5659c342afca796..059e90e33512c1d0ba8da8b716e78e375b28eda6 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/reshape.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/reshape.jinja
@@ -1 +1 @@
-aidge_reshape_{{dataformat}}({{input_name}}, {{output_name}}, {{name|upper}}_OUTPUTS_SIZE);
\ No newline at end of file
+aidge_reshape_chw_{{dataformat}}({{input_name}}, {{output_name}}, {{name|upper}}_OUTPUTS_SIZE);
\ No newline at end of file
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/transpose.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/transpose.jinja
index 91c266e1f2bdb0d1c8fc07967ebada7232c7e688..748cc71ac86c31d32bf93396dfd9796948355bbc 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/transpose.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/kernel/transpose.jinja
@@ -1 +1 @@
-aidge_transpose_{{dataformat}} ({{input_name}}, {{output_name}},{{input_name}}_DIMS, {{name}}_PERMUTATIONS, {{output_name}}_DIMS, {{name|upper}}_OUTPUT_DIMS_SIZE, {{name|upper}}_OUTPUT_SIZE);
\ No newline at end of file
+aidge_transpose_chw_{{dataformat}} ({{input_name}}, {{output_name}},{{input_name}}_DIMS, {{name}}_PERMUTATIONS, {{output_name}}_DIMS, {{name|upper}}_OUTPUT_DIMS_SIZE, {{name|upper}}_OUTPUT_SIZE);
\ No newline at end of file
diff --git a/aidge_export_arm_cortexm/operators.py b/aidge_export_arm_cortexm/operators.py
index f9520fefa11d6fdb6c7300cae7e5530cb5af0032..2cafd333c1603c0ddcec76b02851d24f0b0cba45 100644
--- a/aidge_export_arm_cortexm/operators.py
+++ b/aidge_export_arm_cortexm/operators.py
@@ -596,7 +596,6 @@ class FC_ARMCortexM(ExportNode):
         #     # transform to [nb_outputs, 1, 1]
         #     self.outputs_dims[0] = [self.outputs_dims[0][1], 1, 1]
 
-
     def export(self, export_folder:Path, list_configs:list):
 
         # Export weights to NHWC format
@@ -873,7 +872,7 @@ class Softmax_ARMCortexM(ExportNode):
         
         if self.library == "aidge":
             if self.dataformat == "float32":
-                copyfile(str(ROOT / "_Aidge_Arm" / "kernels" / "Activation" / "Softmax" / "aidge_softmax_float32.c"),
+                copyfile(str(ROOT / "_Aidge_Arm" / "kernels" / "Activation" / "Softmax" / "aidge_softmax_chw_float32.c"),
                          str(export_folder / "src" / "kernels"))
 
             generate_file(
@@ -895,7 +894,7 @@ class Softmax_ARMCortexM(ExportNode):
 
         if self.library == "aidge":
             list_actions.append(generate_str(
-                str(ROOT / "_Aidge_Arm" / "templates" / "kernel" / "activation.jinja"),
+                str(ROOT / "_Aidge_Arm" / "templates" / "kernel" / "activation_chw.jinja"),
                 name=self.name,
                 activation_type="softmax",
                 dataformat=self.dataformat,
@@ -933,7 +932,7 @@ class BatchNorm2D_ARMCortexM(ExportNode):
         
         if self.library == "aidge":
             if self.dataformat == "float32":
-                copyfile(str(ROOT / "_Aidge_Arm" / "kernels" / "BatchNorm" / "aidge_batchnorm2d_float32.c"),
+                copyfile(str(ROOT / "_Aidge_Arm" / "kernels" / "BatchNorm" / "aidge_batchnorm2d_chw_float32.c"),
                          str(export_folder / "src" / "kernels"))
 
             generate_file(
@@ -1028,7 +1027,7 @@ class Reshape_ARMCortexM(ExportNode):
 
         if self.library == "aidge":
             if self.dataformat == "float32":
-                copyfile(str(ROOT / "_Aidge_Arm" / "kernels" / "Reshape" / "aidge_reshape_float32.c"),
+                copyfile(str(ROOT / "_Aidge_Arm" / "kernels" / "Reshape" / "aidge_reshape_chw_float32.c"),
                          str(export_folder / "src" / "kernels"))
 
             generate_file(
@@ -1091,7 +1090,7 @@ class Matmul_ARMCortexM(ExportNode):
 
         if self.library == "aidge":
             if self.dataformat == "float32":
-                copyfile(str(ROOT / "_Aidge_Arm" / "kernels" / "MatMul" / "aidge_matmul_float32.c"),
+                copyfile(str(ROOT / "_Aidge_Arm" / "kernels" / "MatMul" / "aidge_matmul_chw_float32.c"),
                          str(export_folder / "src" / "kernels"))
                 copyfile(str(ROOT / "_Aidge_Arm" / "kernels" / "SupportFunctions" / "aidge_supportfunctions.h"),
                          str(Path(export_folder) / "include"))
@@ -1146,7 +1145,7 @@ class Gather_ARMCortexM(ExportNode):
 
         if self.library == "aidge":
             if self.dataformat == "float32":
-                copyfile(str(ROOT / "_Aidge_Arm" / "kernels" / "Transform" / "Gather" / "aidge_gather_float32.c"),
+                copyfile(str(ROOT / "_Aidge_Arm" / "kernels" / "Transform" / "Gather" / "aidge_gather_chw_float32.c"),
                          str(export_folder / "src" / "kernels"))
 
             generate_file(
@@ -1203,7 +1202,7 @@ class Transpose_ARMCortexM(ExportNode):
         
         if self.library == "aidge":
             if self.dataformat == "float32":
-                copyfile(str(ROOT / "_Aidge_Arm" / "kernels" / "Transform" / "Transpose" / "aidge_transpose_float32.c"),
+                copyfile(str(ROOT / "_Aidge_Arm" / "kernels" / "Transform" / "Transpose" / "aidge_transpose_chw_float32.c"),
                          str(export_folder / "src" / "kernels"))
 
             generate_file(