diff options
author | Teresa Charlin <teresa.charlinreyes@arm.com> | 2023-12-15 14:20:47 +0000 |
---|---|---|
committer | john.mcloughlin <john.mcloughlin@arm.com> | 2023-12-21 11:14:54 +0000 |
commit | ca5a23a7cbe46b8da8de432d80889c47a745ca4c (patch) | |
tree | c375efe1f4ecdad708d6e8e771a13c07ddbc0257 /src/backends/tosaCommon/test/OneToManyMappingTests.cpp | |
parent | 0587dd01272199a36210bd0ccc266185b113df75 (diff) | |
download | armnn-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.cpp | 42 |
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; |