// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #include #include #include #include #include #include namespace { template <> struct MemCopyTestHelper { static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager() { armnn::ClBackend backend; return backend.CreateMemoryManager(); } static armnn::ClWorkloadFactory GetFactory( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ModelOptions& modelOptions = {}) { armnn::ClBackend backend; return armnn::ClWorkloadFactory(armnn::PolymorphicPointerDowncast(memoryManager), backend.CreateBackendSpecificModelContext(modelOptions)); } }; } // namespace TEST_SUITE("ClMemCopy") { TEST_CASE("CopyBetweenCpuAndGpu") { LayerTestResult result = MemCopyTest(false); auto predResult = CompareTensors(result.m_ActualData, result.m_ExpectedData, result.m_ActualShape, result.m_ExpectedShape); CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str()); } TEST_CASE("CopyBetweenGpuAndCpu") { LayerTestResult result = MemCopyTest(false); auto predResult = CompareTensors(result.m_ActualData, result.m_ExpectedData, result.m_ActualShape, result.m_ExpectedShape); CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str()); } TEST_CASE("CopyBetweenCpuAndGpuWithSubtensors") { LayerTestResult result = MemCopyTest(true); auto predResult = CompareTensors(result.m_ActualData, result.m_ExpectedData, result.m_ActualShape, result.m_ExpectedShape); CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str()); } TEST_CASE("CopyBetweenGpuAndCpuWithSubtensors") { LayerTestResult result = MemCopyTest(true); auto predResult = CompareTensors(result.m_ActualData, result.m_ExpectedData, result.m_ActualShape, result.m_ExpectedShape); CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str()); } }