diff --git a/include/aidge/backend/cpu/operator/ScalingImpl.hpp b/include/aidge/backend/cpu/operator/ScalingImpl.hpp index c6ef9585aaaf76b3a727e29e7df56a1261010861..37549349b9f5ffbf443d976135db05b4cec209b7 100644 --- a/include/aidge/backend/cpu/operator/ScalingImpl.hpp +++ b/include/aidge/backend/cpu/operator/ScalingImpl.hpp @@ -18,16 +18,17 @@ #include "aidge/utils/Types.h" #include <memory> #include <vector> +#include <array> namespace Aidge { // class Scaling_Op; // compute kernel registry for forward and backward class ScalingImplForward_cpu - : public Registrable<ScalingImplForward_cpu, std::tuple<DataType, DataType>, void(const Scaling_Op::Attributes&, std::size_t, const void*, void*)> { + : public Registrable<ScalingImplForward_cpu, std::tuple<DataType, DataType>, void(const Scaling_Op::Attrs&, std::size_t, const void*, void*)> { }; class ScalingImplBackward_cpu - : public Registrable<ScalingImplBackward_cpu, std::tuple<DataType, DataType>, void(const Scaling_Op::Attributes&, std::size_t, const void*, void*)> { + : public Registrable<ScalingImplBackward_cpu, std::tuple<DataType, DataType>, void(const Scaling_Op::Attrs&, std::size_t, const void*, void*)> { }; class ScalingImpl_cpu : public OperatorImpl { diff --git a/include/aidge/backend/cpu/operator/ScalingImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/ScalingImpl_forward_kernels.hpp index e517f0a059948fbfccf0508eaf195611077a88eb..8fe13bce3a4c470d77b083603d3b889a46fda71f 100644 --- a/include/aidge/backend/cpu/operator/ScalingImpl_forward_kernels.hpp +++ b/include/aidge/backend/cpu/operator/ScalingImpl_forward_kernels.hpp @@ -18,14 +18,14 @@ namespace Aidge { template <class I, class O> -void ScalingImpl_cpu_forward_kernel(const Scaling_Op::Attributes& attrs, +void ScalingImpl_cpu_forward_kernel(const Scaling_Op::Attrs& attrs, std::size_t inputLenght, const void* input_, void* output_) { const I* input = static_cast<const I*>(input_); O* output = static_cast<O*>(output_); - I scalingFactor = static_cast<I>(std::get<0>(attrs)); + const I& scalingFactor = static_cast<const I&>(std::get<0>(attrs)); for (std::size_t i = 0; i < inputLenght; ++i) { output[i] = input[i] * scalingFactor; diff --git a/src/operator/ScalingImpl.cpp b/src/operator/ScalingImpl.cpp index c6a96f3bc8ea865da1c31ddfadff67c1e8556ad5..84cd6ee33a8316a24bae472c74c039dabe0afba3 100644 --- a/src/operator/ScalingImpl.cpp +++ b/src/operator/ScalingImpl.cpp @@ -68,7 +68,7 @@ void Aidge::ScalingImpl_cpu::forward() { mOp.getOutput(0)->dataType()}); // Call kernel - kernelFunc(mOp.getParams(), + kernelFunc(mOp.getStaticAttributes(), std::static_pointer_cast<Tensor>(mOp.getInput(0))->size(), mOp.getInput(0)->getImpl()->rawPtr(), mOp.getOutput(0)->getImpl()->rawPtr());