From 382f6d471afa648757a72a89f1a31c29c7d88e89 Mon Sep 17 00:00:00 2001
From: Olivier BICHLER <olivier.bichler@cea.fr>
Date: Fri, 4 Jul 2025 11:54:16 +0200
Subject: [PATCH] Fixed dimensions inversion

---
 .../backend/cpu/operator/ConvImpl_kernels.hpp      | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/include/aidge/backend/cpu/operator/ConvImpl_kernels.hpp b/include/aidge/backend/cpu/operator/ConvImpl_kernels.hpp
index f516a251..489e478b 100644
--- a/include/aidge/backend/cpu/operator/ConvImpl_kernels.hpp
+++ b/include/aidge/backend/cpu/operator/ConvImpl_kernels.hpp
@@ -633,8 +633,8 @@ void ConvImpl2D_cpu_forward_kernel(const array<DimSize_t, 2> &strideDims,
                                      iIndex_channel +=
                                      inputDims[3] * strideDims[0]) {
                         // loop over associated input line
-                        for (std::size_t ky = 0, ix = 0; ky < kernelDims[1];
-                             ++ky, ix += inputDims[3] * dilationDims[0]) {
+                        for (std::size_t kx = 0, ix = 0; kx < kernelDims[0];
+                             ++kx, ix += inputDims[3] * dilationDims[0]) {
                             // loop over the entire line
                             for (std::size_t oy = 0, iy = 0; oy < oySize;
                                  ++oy, iy += strideDims[1]) {
@@ -642,12 +642,12 @@ void ConvImpl2D_cpu_forward_kernel(const array<DimSize_t, 2> &strideDims,
                                     iIndex_channel + ix + iy;
                                 // loop over elements assosicated with one
                                 // output
-                                for (std::size_t kx = 0; kx < kernelDims[0];
-                                     ++kx) {
+                                for (std::size_t ky = 0; ky < kernelDims[1];
+                                     ++ky) {
                                     output[oIndex + oy] +=
-                                        weights[wIndex + kernelDims[0] * ky +
-                                                kx] *
-                                        input[iIndex + kx * dilationDims[1]];
+                                        weights[wIndex + kernelDims[1] * kx +
+                                                ky] *
+                                        input[iIndex + ky * dilationDims[1]];
                                 }
                             }
                         }
-- 
GitLab