blob: 98b873fb6fa4715320af94592e520b45b6cfe1f0 [file] [log] [blame]
Aron Virginas-Tar3b278e92018-10-12 13:00:55 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
Aron Virginas-Tar56055192018-11-12 18:10:43 +00006#include "ClWorkloadFactoryHelper.hpp"
7
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +00008#include <cl/ClWorkloadFactory.hpp>
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +00009#include <aclCommon/test/MemCopyTestImpl.hpp>
Aron Virginas-Tar3b278e92018-10-12 13:00:55 +010010
Aron Virginas-Tar56055192018-11-12 18:10:43 +000011#include <reference/RefWorkloadFactory.hpp>
12#include <reference/test/RefWorkloadFactoryHelper.hpp>
13
Sadik Armagan1625efc2021-06-10 18:24:34 +010014#include <doctest/doctest.h>
Aron Virginas-Tar3b278e92018-10-12 13:00:55 +010015
Sadik Armagan1625efc2021-06-10 18:24:34 +010016TEST_SUITE("ClMemCopy")
17{
18TEST_CASE("CopyBetweenCpuAndGpu")
Aron Virginas-Tar3b278e92018-10-12 13:00:55 +010019{
Matteo Martincigh49124022019-01-11 13:25:59 +000020 LayerTestResult<float, 4> result =
21 MemCopyTest<armnn::RefWorkloadFactory, armnn::ClWorkloadFactory, armnn::DataType::Float32>(false);
Sadik Armagan483c8112021-06-01 09:24:52 +010022 auto predResult = CompareTensors(result.m_ActualData, result.m_ExpectedData,
23 result.m_ActualShape, result.m_ExpectedShape);
Sadik Armagan1625efc2021-06-10 18:24:34 +010024 CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str());
Aron Virginas-Tar3b278e92018-10-12 13:00:55 +010025}
26
Sadik Armagan1625efc2021-06-10 18:24:34 +010027TEST_CASE("CopyBetweenGpuAndCpu")
Aron Virginas-Tar3b278e92018-10-12 13:00:55 +010028{
Matteo Martincigh49124022019-01-11 13:25:59 +000029 LayerTestResult<float, 4> result =
30 MemCopyTest<armnn::ClWorkloadFactory, armnn::RefWorkloadFactory, armnn::DataType::Float32>(false);
Sadik Armagan483c8112021-06-01 09:24:52 +010031 auto predResult = CompareTensors(result.m_ActualData, result.m_ExpectedData,
32 result.m_ActualShape, result.m_ExpectedShape);
Sadik Armagan1625efc2021-06-10 18:24:34 +010033 CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str());
Aron Virginas-Tar3b278e92018-10-12 13:00:55 +010034}
35
Sadik Armagan1625efc2021-06-10 18:24:34 +010036TEST_CASE("CopyBetweenCpuAndGpuWithSubtensors")
Aron Virginas-Tar3b278e92018-10-12 13:00:55 +010037{
Matteo Martincigh49124022019-01-11 13:25:59 +000038 LayerTestResult<float, 4> result =
39 MemCopyTest<armnn::RefWorkloadFactory, armnn::ClWorkloadFactory, armnn::DataType::Float32>(true);
Sadik Armagan483c8112021-06-01 09:24:52 +010040 auto predResult = CompareTensors(result.m_ActualData, result.m_ExpectedData,
41 result.m_ActualShape, result.m_ExpectedShape);
Sadik Armagan1625efc2021-06-10 18:24:34 +010042 CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str());
Aron Virginas-Tar3b278e92018-10-12 13:00:55 +010043}
44
Sadik Armagan1625efc2021-06-10 18:24:34 +010045TEST_CASE("CopyBetweenGpuAndCpuWithSubtensors")
Aron Virginas-Tar3b278e92018-10-12 13:00:55 +010046{
Matteo Martincigh49124022019-01-11 13:25:59 +000047 LayerTestResult<float, 4> result =
48 MemCopyTest<armnn::ClWorkloadFactory, armnn::RefWorkloadFactory, armnn::DataType::Float32>(true);
Sadik Armagan483c8112021-06-01 09:24:52 +010049 auto predResult = CompareTensors(result.m_ActualData, result.m_ExpectedData,
50 result.m_ActualShape, result.m_ExpectedShape);
Sadik Armagan1625efc2021-06-10 18:24:34 +010051 CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str());
Aron Virginas-Tar3b278e92018-10-12 13:00:55 +010052}
53
Sadik Armagan1625efc2021-06-10 18:24:34 +010054}