Skip to content
Snippets Groups Projects

Tiling

Merged Maxence Naud requested to merge tiling into master
5 files
+ 272
407
Compare changes
  • Side-by-side
  • Inline
Files
5
@@ -9,13 +9,12 @@
*
********************************************************************************/
#ifndef AIDGE_CPU_OPERATOR_SCALINGIMPL_FORWARD_KERNEL_H
#define AIDGE_CPU_OPERATOR_SCALINGIMPL_FORWARD_KERNEL_H
#ifndef AIDGE_CPU_OPERATOR_SCALINGIMPL_FORWARD_KERNEL_H_
#define AIDGE_CPU_OPERATOR_SCALINGIMPL_FORWARD_KERNEL_H_
#include <cmath>
#include <cstddef>
#include "aidge/utils/Registrar.hpp"
#include "aidge/backend/cpu/operator/ScalingImpl.hpp"
//TODO : improve propagate, n2d2 :
@@ -61,12 +60,13 @@ const O& clamp(const O& x, const O& min, const O& max)
}
template<class O>
O saturate(O value, std::size_t quantizedNbBits, bool isOutputUnsigned) {
O saturate(const O value, const std::size_t quantizedNbBits, const bool isOutputUnsigned) {
// TODO: no assertions in kernel
assert(quantizedNbBits > 0);
const O min = isOutputUnsigned?0:
const O min = isOutputUnsigned ? 0 :
-(1ll << (quantizedNbBits - 1ll));
const O max = isOutputUnsigned?(1ll << quantizedNbBits) - 1ll:
const O max = isOutputUnsigned ? (1ll << quantizedNbBits) - 1ll :
(1ll << (quantizedNbBits - 1ll)) - 1ll;
return clamp(value, min, max);
@@ -81,8 +81,8 @@ void ScalingImpl_cpu_forward_kernel(const Scaling_Op::Attrs& attrs,
const I* input = static_cast<const I*>(input_);
O* output = static_cast<O*>(output_);
const I& scalingFactor = static_cast<const I&>(std::get<0>(attrs));
std::size_t quantizedNbBits = static_cast<std::size_t>(std::get<1>(attrs));
bool isOutputUnsigned = static_cast<bool>(std::get<2>(attrs));
const std::size_t quantizedNbBits = static_cast<std::size_t>(std::get<1>(attrs));
const bool isOutputUnsigned = static_cast<bool>(std::get<2>(attrs));
for (std::size_t i = 0; i < inputLenght; ++i) {
output[i] = input[i] * scalingFactor;
@@ -103,4 +103,4 @@ static Registrar<ScalingImplForward_cpu> registrarScalingImplForward_cpu_Float64
} // namespace
} // namespace Aidge
#endif /* AIDGE_CPU_OPERATOR_SCALINGIMPL_FORWARD_KERNEL_H */
#endif /* AIDGE_CPU_OPERATOR_SCALINGIMPL_FORWARD_KERNEL_H_ */
\ No newline at end of file
Loading