diff --git a/include/aidge/backend/cpu/operator/ClipImpl_kernels.hpp b/include/aidge/backend/cpu/operator/ClipImpl_kernels.hpp index 1afac4698be2a63790ebac671ecc1e59166c5f94..f7a645854271f755a622a63c7945a00562b59282 100644 --- a/include/aidge/backend/cpu/operator/ClipImpl_kernels.hpp +++ b/include/aidge/backend/cpu/operator/ClipImpl_kernels.hpp @@ -23,13 +23,14 @@ void ClipImpl_cpu_forward_kernel( float max_, const void* input_, const std::size_t length, - void* output_) + void* output_) { const I* input = static_cast<const I*>(input_); O* output = static_cast<O*>(output_); - + I minCasted = static_cast<I>(min_); + I maxCasted = static_cast<I>(max_); for (std::size_t i = 0; i < length; ++i) { - output[i] = std::min(std::max(static_cast<float>(input[i]), min_), max_); + output[i] = std::min(std::max(input[i], minCasted), maxCasted); } } @@ -38,9 +39,9 @@ void ClipImpl_cpu_backward_kernel( float min_, float max_, const std::size_t length, - const void* input_, + const void* input_, const void* grad_output_, - void* grad_input_) + void* grad_input_) { const I* input = static_cast<const I*>(input_); const GO* grad_output = static_cast<const GO*>(grad_output_); diff --git a/include/aidge/backend/cpu/operator/ReLUImpl_kernels.hpp b/include/aidge/backend/cpu/operator/ReLUImpl_kernels.hpp index bb5d7cc35c18db29eb734b5f868b311d3a734bdc..6b7c3c9c58e0a3426a641466fd584a68dd8cccaa 100644 --- a/include/aidge/backend/cpu/operator/ReLUImpl_kernels.hpp +++ b/include/aidge/backend/cpu/operator/ReLUImpl_kernels.hpp @@ -60,7 +60,10 @@ REGISTRAR(ReLUImpl_cpu, {ProdConso::inPlaceModel, Aidge::ReLUImpl_cpu_forward_kernel<double, double>, Aidge::ReLUImpl_cpu_backward_kernel<double, double, double>}); REGISTRAR(ReLUImpl_cpu, {DataType::Int32}, - {ProdConso::inPlaceModel, Aidge::ReLUImpl_cpu_forward_kernel<int32_t, int32_t>, Aidge::ReLUImpl_cpu_backward_kernel<int32_t, int32_t, int32_t>}); + {ProdConso::inPlaceModel, Aidge::ReLUImpl_cpu_forward_kernel<int32_t, int32_t>, nullptr}); +REGISTRAR(ReLUImpl_cpu, + {DataType::Int8}, + {ProdConso::inPlaceModel, Aidge::ReLUImpl_cpu_forward_kernel<int8_t, int8_t>, nullptr}); } // namespace Aidge #endif /* AIDGE_CPU_OPERATOR_RELUIMPL_KERNELS_H_ */