Add QASYMM8_SIGNED support to graph examples via graph mutator
Related to COMPMID-4279
Signed-off-by: SiCongLi <sicong.li@arm.com>
Change-Id: I6c737536b4e614cc9975003acca766803f55bf0b
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5206
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
diff --git a/arm_compute/graph/Types.h b/arm_compute/graph/Types.h
index 77e91b2..c4afba2 100644
--- a/arm_compute/graph/Types.h
+++ b/arm_compute/graph/Types.h
@@ -76,6 +76,7 @@
// Forward declarations
struct TensorDescriptor;
+
/** Graph configuration structure */
struct GraphConfig
{
@@ -83,7 +84,8 @@
bool use_function_weights_manager{ true }; /**< Use a weights manager to manage transformed weights */
bool use_transition_memory_manager{ true }; /**< Use a memory manager to manager transition buffer memory */
bool use_tuner{ false }; /**< Use a tuner in tunable backends */
- bool convert_to_uint8{ false }; /**< Convert graph to a synthetic uint8 graph */
+ bool use_synthetic_type{ false }; /**< Convert graph to a synthetic graph for a data type */
+ DataType synthetic_type{ DataType::QASYMM8 }; /**< The data type of the synthetic graph */
CLTunerMode tuner_mode{ CLTunerMode::EXHAUSTIVE }; /**< Tuner mode to be used by the CL tuner */
int num_threads{ -1 }; /**< Number of threads to use (thread capable backends), if 0 the backend will auto-initialize, if -1 the backend will stay as it is. */
std::string tuner_file{ "acl_tuner.csv" }; /**< File to load/store tuning values from */
diff --git a/arm_compute/graph/mutators/SyntheticDataTypeMutator.h b/arm_compute/graph/mutators/SyntheticDataTypeMutator.h
index ed270f8..2292e52 100644
--- a/arm_compute/graph/mutators/SyntheticDataTypeMutator.h
+++ b/arm_compute/graph/mutators/SyntheticDataTypeMutator.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019 Arm Limited.
+ * Copyright (c) 2019-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -35,10 +35,15 @@
class SyntheticDataTypeMutator final : public IGraphMutator
{
public:
+ // Constructor
+ SyntheticDataTypeMutator(DataType mutate_type = DataType::QASYMM8);
// Inherited methods overridden
virtual void mutate(Graph &g) override;
MutationType type() const override;
const char *name() override;
+
+private:
+ DataType _mutate_type;
};
} // namespace graph
} // namespace arm_compute