aboutsummaryrefslogtreecommitdiff
path: root/src/backends/tosaCommon/test/OneToManyMappingTests.cpp
diff options
context:
space:
mode:
authorTeresa Charlin <teresa.charlinreyes@arm.com>2023-12-15 14:20:47 +0000
committerjohn.mcloughlin <john.mcloughlin@arm.com>2023-12-21 11:14:54 +0000
commitca5a23a7cbe46b8da8de432d80889c47a745ca4c (patch)
treec375efe1f4ecdad708d6e8e771a13c07ddbc0257 /src/backends/tosaCommon/test/OneToManyMappingTests.cpp
parent0587dd01272199a36210bd0ccc266185b113df75 (diff)
downloadarmnn-ca5a23a7cbe46b8da8de432d80889c47a745ca4c.tar.gz
Add Quantize Support to TOSA Ref Backend
* Adding a one to many tosa mapping for Quantize * Added tests * Resolves IVGCVSW-7175 Signed-off-by: John Mcloughlin <john.mcloughlin@arm.com> Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: Ia0852fefb618b4a29c2601b9de8b6b2731229801
Diffstat (limited to 'src/backends/tosaCommon/test/OneToManyMappingTests.cpp')
-rw-r--r--src/backends/tosaCommon/test/OneToManyMappingTests.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/backends/tosaCommon/test/OneToManyMappingTests.cpp b/src/backends/tosaCommon/test/OneToManyMappingTests.cpp
index 94dd537a30..f439b044a4 100644
--- a/src/backends/tosaCommon/test/OneToManyMappingTests.cpp
+++ b/src/backends/tosaCommon/test/OneToManyMappingTests.cpp
@@ -4,7 +4,9 @@
//
#include "AvgPool2DIgnoreValueChecker.hpp"
+#include "QuantizeChecker.hpp"
#include "SplitChecker.hpp"
+
#include <armnn/IRuntime.hpp>
using namespace armnn;
@@ -84,6 +86,46 @@ TEST_CASE("GetTosaMappingFromLayer_AvgPool2DIgnoreValueLayer")
descriptor);
}
+TEST_CASE("GetTosaMapping_QuantizeLayer")
+{
+ NullDescriptor descriptor;
+ DataType outputDataType = DataType::Signed32;
+
+ TensorInfo inputTensorInfo({ 1, 3, 3, 1 }, DataType::Float32);
+ TensorInfo outputTensorInfo({ 1, 3, 3, 1 }, outputDataType);
+ std::vector<int32_t> shape = { 1, 3, 3, 1 };
+
+ TosaSerializationBasicBlock* basicBlock =
+ GetTosaMapping(nullptr, LayerType::Quantize, {&inputTensorInfo}, {&outputTensorInfo}, descriptor);
+ VerifyQuantize(basicBlock, shape, ArmNNToDType(DataType::Float32), ArmNNToDType(outputDataType));
+}
+TEST_CASE("GetTosaMappingFromLayer_QuantizeLayer")
+{
+ IRuntime::CreationOptions options;
+ IRuntimePtr runtime(IRuntime::Create(options));
+ // Builds up the structure of the network.
+ INetworkPtr net(INetwork::Create());
+ NullDescriptor descriptor;
+ DataType outputDataType = DataType::Signed32;
+
+ IConnectableLayer* input0 = net->AddInputLayer(0, "input0");
+ IConnectableLayer* quantize = net->AddQuantizeLayer("quantize");
+ IConnectableLayer* output = net->AddOutputLayer(0, "output");
+
+ input0->GetOutputSlot(0).Connect(quantize->GetInputSlot(0));
+ quantize->GetOutputSlot(0).Connect(output->GetInputSlot(0));
+
+ armnn::TensorInfo inputTensorInfo({ 1, 3, 3, 1 }, DataType::Float32);
+ armnn::TensorInfo outputTensorInfo({ 1, 3, 3, 1 }, outputDataType);
+ std::vector<int32_t> shape = { 1, 3, 3, 1 };
+
+ input0->GetOutputSlot(0).SetTensorInfo(inputTensorInfo);
+ quantize->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
+
+ TosaSerializationBasicBlock* basicBlock = GetTosaMappingFromLayer(PolymorphicDowncast<Layer*>(quantize));
+ VerifyQuantize(basicBlock, shape, ArmNNToDType(DataType::Float32), ArmNNToDType(outputDataType));
+}
+
TEST_CASE("GetTosaMapping_SplitLayer")
{
const unsigned int numViews = 3;