diff options
Diffstat (limited to 'src/armnn/test/NeonTimerTest.cpp')
-rw-r--r-- | src/armnn/test/NeonTimerTest.cpp | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/src/armnn/test/NeonTimerTest.cpp b/src/armnn/test/NeonTimerTest.cpp deleted file mode 100644 index 6d0429c8b9..0000000000 --- a/src/armnn/test/NeonTimerTest.cpp +++ /dev/null @@ -1,103 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#include <NeonTimer.hpp> -#include "TensorHelpers.hpp" - -#include <armnn/ArmNN.hpp> -#include <armnn/Tensor.hpp> -#include <armnn/TypesUtils.hpp> -#include <backends/CpuTensorHandle.hpp> -#include <backends/neon/NeonWorkloadFactory.hpp> -#include <backends/WorkloadFactory.hpp> -#include <backends/test/LayerTests.hpp> -#include <backends/test/TensorCopyUtils.hpp> -#include <backends/test/WorkloadTestUtils.hpp> - -#include <boost/test/unit_test.hpp> -#include <cstdlib> -#include <algorithm> - -using namespace armnn; - -BOOST_AUTO_TEST_SUITE(NeonTimerInstrument) - - -BOOST_AUTO_TEST_CASE(NeonTimerGetName) -{ - NeonTimer neonTimer; - BOOST_CHECK_EQUAL(neonTimer.GetName(), "NeonKernelTimer"); -} - -BOOST_AUTO_TEST_CASE(NeonTimerMeasure) -{ - NeonWorkloadFactory workloadFactory; - - unsigned int inputWidth = 4000u; - unsigned int inputHeight = 5000u; - unsigned int inputChannels = 1u; - unsigned int inputBatchSize = 1u; - - float upperBound = 1.0f; - float lowerBound = -1.0f; - - size_t inputSize = inputWidth * inputHeight * inputChannels * inputBatchSize; - std::vector<float> inputData(inputSize, 0.f); - std::generate(inputData.begin(), inputData.end(), [](){ - return (static_cast<float>(rand()) / static_cast<float>(RAND_MAX / 3)) + 1.f; }); - - unsigned int outputWidth = inputWidth; - unsigned int outputHeight = inputHeight; - unsigned int outputChannels = inputChannels; - unsigned int outputBatchSize = inputBatchSize; - - armnn::TensorInfo inputTensorInfo({ inputBatchSize, inputChannels, inputHeight, inputWidth }, - armnn::GetDataType<float>()); - - armnn::TensorInfo outputTensorInfo({ outputBatchSize, outputChannels, outputHeight, outputWidth }, - armnn::GetDataType<float>()); - - LayerTestResult<float, 4> result(inputTensorInfo); - - auto input = MakeTensor<float, 4>(inputTensorInfo, inputData); - - std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo); - std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo); - - // Setup bounded ReLu - armnn::ActivationQueueDescriptor descriptor; - armnn::WorkloadInfo workloadInfo; - AddInputToWorkload(descriptor, workloadInfo, inputTensorInfo, inputHandle.get()); - AddOutputToWorkload(descriptor, workloadInfo, outputTensorInfo, outputHandle.get()); - - descriptor.m_Parameters.m_Function = armnn::ActivationFunction::BoundedReLu; - descriptor.m_Parameters.m_A = upperBound; - descriptor.m_Parameters.m_B = lowerBound; - - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateActivation(descriptor, workloadInfo); - - inputHandle->Allocate(); - outputHandle->Allocate(); - - CopyDataToITensorHandle(inputHandle.get(), &input[0][0][0][0]); - - NeonTimer neonTimer; - // Start the timer. - neonTimer.Start(); - // Execute the workload. - workload->Execute(); - // Stop the timer. - neonTimer.Stop(); - - std::vector<Measurement> measurements = neonTimer.GetMeasurements(); - - BOOST_CHECK_EQUAL(measurements.size(), 2); - BOOST_CHECK_EQUAL(measurements[0].m_Name, "NeonKernelTimer/0: NEFillBorderKernel"); - BOOST_CHECK(measurements[0].m_Value > 0.0); - BOOST_CHECK_EQUAL(measurements[1].m_Name, "NeonKernelTimer/1: NEActivationLayerKernel"); - BOOST_CHECK(measurements[1].m_Value > 0.0); -} - -BOOST_AUTO_TEST_SUITE_END() |