From a23bb0cf9fb1eaee461208589c3fa78aba927100 Mon Sep 17 00:00:00 2001 From: NAUD Maxence <maxence.naud@cea.fr> Date: Tue, 17 Oct 2023 12:24:27 +0000 Subject: [PATCH] [Fix] Slice kernel picking the wrong values from input --- .../backend/cpu/operator/SliceImpl_forward_kernels.hpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp index 01e2735a..bbf4ccba 100644 --- a/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp +++ b/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp @@ -13,6 +13,8 @@ #define AIDGE_CPU_OPERATOR_SLICEIMPL_FORWARD_KERNEL_H_ #include "aidge/utils/Registrar.hpp" +#include "aidge/operator/Slice.hpp" +#include "aidge/backend/cpu/operator/SliceImpl.hpp" #include <array> #include <cstddef> @@ -20,7 +22,7 @@ namespace Aidge { template <class I, std::size_t DIM> -void SliceImpl_cpu_forward_kernel(const Slice_Op::Attrs& attrs, +void SliceImpl_cpu_forward_kernel(const typename Slice_Op<DIM>::Attrs& attrs, const std::array<std::size_t, DIM> inputDims, const void* input_, void* output_) { @@ -48,8 +50,9 @@ void SliceImpl_cpu_forward_kernel(const Slice_Op::Attrs& attrs, std::size_t j = 0; std::size_t i = 0; - for (; j < prodSlicedDims[0]; ++j) { + for (; j < prodSlicedDims[0];) { output[j] = input[i++]; + ++j; for (std::size_t idx = DIM - 1; idx > 0; --idx) { i += j % prodSlicedDims[idx] == 0 ? substractedDims[idx]*prodInputDims[idx+1] : 0; } -- GitLab