aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorJakub Sujak <jakub.sujak@arm.com>2022-11-25 16:43:18 +0000
committerJakub Sujak <jakub.sujak@arm.com>2022-12-13 09:58:36 +0000
commit32741725ac6e6c9658c51ed8585d314a1707ee8c (patch)
treea32c508ade253975a892387f7d5eba5e3f02e650 /utils
parent5945070e4d73962f6d1e0b9eff2ab7488ee5c787 (diff)
downloadComputeLibrary-32741725ac6e6c9658c51ed8585d314a1707ee8c.tar.gz
Add CLAMP operator to Dynamic Fusion interface
Add the CLAMP activation function for GPU backend with generic activation Component and TemplateWriter modules. CLAMP is internally implemented as LU_BOUNDED_RELU activation function with the alpha and beta variables swapped. We do NOT consider in-place computation cases in this patch. * CLAMP operator for GPU backend. * Activation Component and TemplateWriter for CL backend. * TemplateWriter generates tiled kernel code. * Supported data types: F16, F32. * Validation tests for CLAMP operation. Resolves: COMPMID-5519 Change-Id: Ieb097d6b1e6a7ed2b882518e88314454efb402f6 Signed-off-by: Jakub Sujak <jakub.sujak@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/8762 Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Gunes Bayir <gunes.bayir@arm.com> Reviewed-by: SiCong Li <sicong.li@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'utils')
-rw-r--r--utils/TypePrinter.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/utils/TypePrinter.h b/utils/TypePrinter.h
index 515e568657..9f20b38b96 100644
--- a/utils/TypePrinter.h
+++ b/utils/TypePrinter.h
@@ -40,6 +40,7 @@
#include "arm_compute/core/experimental/PostOps.h"
#include "arm_compute/dynamic_fusion/sketch/OperatorAttributes.h"
#include "arm_compute/dynamic_fusion/sketch/attributes/CastAttributes.h"
+#include "arm_compute/dynamic_fusion/sketch/attributes/ClampAttributes.h"
#include "arm_compute/dynamic_fusion/sketch/attributes/DepthwiseConv2dAttributes.h"
#include "arm_compute/runtime/CL/CLTunerTypes.h"
#include "arm_compute/runtime/CL/CLTypes.h"
@@ -3495,6 +3496,34 @@ inline std::string to_string(const experimental::dynamic_fusion::DepthwiseConv2d
return str.str();
}
+/** Formatted output of the arm_compute::experimental::dynamic_fusion::ClampAttributes type.
+ *
+ * @param[out] os Output stream.
+ * @param[in] clamp_attr arm_compute::experimental::dynamic_fusion::ClampAttributes type to output.
+ *
+ * @return Modified output stream.
+ */
+inline ::std::ostream &operator<<(::std::ostream &os, const experimental::dynamic_fusion::ClampAttributes &clamp_attr)
+{
+ os << "ClampAttributes="
+ << "["
+ << "Min value=" << clamp_attr.min_val() << ", "
+ << "Max value=" << clamp_attr.max_val() << "]";
+ return os;
+}
+/** Formatted output of the arm_compute::experimental::dynamic_fusion::ClampAttributes type.
+ *
+ * @param[in] clamp_attr arm_compute::experimental::dynamic_fusion::ClampAttributes type to output.
+ *
+ * @return Formatted string.
+ */
+inline std::string to_string(const experimental::dynamic_fusion::ClampAttributes &clamp_attr)
+{
+ std::stringstream str;
+ str << clamp_attr;
+ return str.str();
+}
+
} // namespace arm_compute
#endif /* __ARM_COMPUTE_TYPE_PRINTER_H__ */