aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/test/CreateWorkload.hpp
diff options
context:
space:
mode:
authorNina Drozd <nina.drozd@arm.com>2019-05-16 12:09:18 +0100
committerNina Drozd <nina.drozd@arm.com>2019-05-20 08:56:46 +0000
commit58ef2c6f797f6bdb962016c519ebbc980ec2ed50 (patch)
tree282d50763bd2a6aaf4bb4ef5ea5ed123cfdcedb6 /src/armnn/test/CreateWorkload.hpp
parent39d487d3e2834a6d3024c92a519d84aa05f87925 (diff)
downloadarmnn-58ef2c6f797f6bdb962016c519ebbc980ec2ed50.tar.gz
IVGCVSW-2967 Support QSymm16 for Constant workloads
* Validate that output is any of supported types in WorkloadData * Validate that output is any of supported types in RefLayerSupport * Add test for constant with QuantisedSymm16 in LayerTests * Add test for creating constant workload in RefCreateWorkloadTests * Add test for constant with QuantisedSymm16 in RefLayerTests * Refactor RefConstantWorkload - BaseWorkload instead of TypedWorkload * Refactor RefConstantWorkload - remove m_RanOnce, use PostAllocationConfigure() Signed-off-by: Nina Drozd <nina.drozd@arm.com> Change-Id: Ic30e61319ef4ff9c367689901f7c6d498142a9c5
Diffstat (limited to 'src/armnn/test/CreateWorkload.hpp')
-rw-r--r--src/armnn/test/CreateWorkload.hpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/armnn/test/CreateWorkload.hpp b/src/armnn/test/CreateWorkload.hpp
index 1193ab721e..f758aaa80b 100644
--- a/src/armnn/test/CreateWorkload.hpp
+++ b/src/armnn/test/CreateWorkload.hpp
@@ -1227,4 +1227,30 @@ std::pair<armnn::IOptimizedNetworkPtr, std::unique_ptr<PreCompiledWorkload>> Cre
return std::make_pair(std::move(optimizedNet), std::move(workload));
}
+template<typename ConstantWorkload, armnn::DataType DataType>
+std::unique_ptr<ConstantWorkload> CreateConstantWorkloadTest(armnn::IWorkloadFactory& factory,
+ armnn::Graph& graph,
+ const armnn::TensorShape& outputShape)
+{
+ armnn::TensorInfo outputTensorInfo(outputShape, DataType);
+
+ auto constant = graph.AddLayer<ConstantLayer>("constant");
+ constant->m_LayerOutput = std::make_unique<ScopedCpuTensorHandle>(outputTensorInfo);
+ BOOST_TEST_CHECKPOINT("created constant layer");
+
+ Layer* const output = graph.AddLayer<OutputLayer>(0, "output");
+
+ // Adds connections.
+ Connect(constant, output, outputTensorInfo, 0, 0);
+ BOOST_TEST_CHECKPOINT("connect constant to output");
+
+ CreateTensorHandles(graph, factory);
+ BOOST_TEST_CHECKPOINT("created tensor handles");
+
+ auto workloadConstant = MakeAndCheckWorkload<ConstantWorkload>(*constant, graph, factory);
+ BOOST_TEST_CHECKPOINT("created Constant workload");
+
+ return std::move(workloadConstant);
+}
+
}