From 33732f64df7d3ed014354806f1b855014501be05 Mon Sep 17 00:00:00 2001 From: nikraj01 Date: Tue, 4 Jun 2019 15:35:34 +0100 Subject: IVGCVSW-3215 Add CreateWorkload test for Rsqrt Fp32 Change-Id: Iea6edf90148773b12f361bfa4b1d572c5322d18b Signed-off-by: nikraj01 --- src/armnn/test/CreateWorkload.hpp | 28 ++++++++++++++++++++++ .../reference/test/RefCreateWorkloadTests.cpp | 20 ++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/src/armnn/test/CreateWorkload.hpp b/src/armnn/test/CreateWorkload.hpp index 135a4421cd..87df00af3c 100644 --- a/src/armnn/test/CreateWorkload.hpp +++ b/src/armnn/test/CreateWorkload.hpp @@ -892,6 +892,34 @@ std::unique_ptr CreateResizeBilinearWorkloadTest(armnn:: return workload; } +template +std::unique_ptr CreateRsqrtWorkloadTest(armnn::IWorkloadFactory& factory, + armnn::Graph& graph) +{ + Layer* const layer = graph.AddLayer("rsqrt"); + + // Creates extra layers. + Layer* const input = graph.AddLayer(0, "input"); + Layer* const output = graph.AddLayer(0, "output"); + + // Connects up. + armnn::TensorInfo tensorInfo({1, 1}, DataType); + + Connect(input, layer, tensorInfo); + Connect(layer, output, tensorInfo); + + CreateTensorHandles(graph, factory); + + // Makes the workload and checks it. + auto workload = MakeAndCheckWorkload(*layer, graph, factory); + + RsqrtQueueDescriptor queueDescriptor = workload->GetData(); + BOOST_TEST(queueDescriptor.m_Inputs.size() == 1); + BOOST_TEST(queueDescriptor.m_Outputs.size() == 1); + + return workload; +} + template std::unique_ptr CreateL2NormalizationWorkloadTest(armnn::IWorkloadFactory& factory, armnn::Graph& graph, DataLayout dataLayout = DataLayout::NCHW) diff --git a/src/backends/reference/test/RefCreateWorkloadTests.cpp b/src/backends/reference/test/RefCreateWorkloadTests.cpp index 0311276f10..7c5712b915 100644 --- a/src/backends/reference/test/RefCreateWorkloadTests.cpp +++ b/src/backends/reference/test/RefCreateWorkloadTests.cpp @@ -614,6 +614,26 @@ BOOST_AUTO_TEST_CASE(CreateResizeBilinearFloat32Nhwc) RefCreateResizeBilinearTest(DataLayout::NHWC); } +template +static void RefCreateRsqrtTest() +{ + Graph graph; + RefWorkloadFactory factory; + + auto workload = CreateRsqrtWorkloadTest(factory, graph); + + // Checks that outputs are as we expect them (see definition of CreateRsqrtWorkloadTest). + CheckInputOutput(std::move(workload), + TensorInfo({ 1, 1 }, DataType), + TensorInfo({ 1, 1 }, DataType)); + +} + +BOOST_AUTO_TEST_CASE(CreateRsqrtFloat32) +{ + RefCreateRsqrtTest(); +} + template static void RefCreateL2NormalizationTest(DataLayout dataLayout) { -- cgit v1.2.1