MCPcopy Create free account
hub / github.com/ARM-software/armnn / MemCopyTest

Function MemCopyTest

include/armnnTestUtils/MemCopyTestImpl.hpp:19–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17
18template<armnn::DataType dataType, typename T = armnn::ResolveType<dataType>>
19LayerTestResult<T, 4> MemCopyTest(armnn::IWorkloadFactory& srcWorkloadFactory,
20 armnn::IWorkloadFactory& dstWorkloadFactory,
21 bool withSubtensors)
22{
23 const std::array<unsigned int, 4> shapeData = { { 1u, 1u, 6u, 5u } };
24 const armnn::TensorShape tensorShape(4, shapeData.data());
25 const armnn::TensorInfo tensorInfo(tensorShape, dataType);
26 std::vector<T> inputData =
27 {
28 1, 2, 3, 4, 5,
29 6, 7, 8, 9, 10,
30 11, 12, 13, 14, 15,
31 16, 17, 18, 19, 20,
32 21, 22, 23, 24, 25,
33 26, 27, 28, 29, 30,
34 };
35
36 LayerTestResult<T, 4> ret(tensorInfo);
37 ret.m_ExpectedData = inputData;
38
39 std::vector<T> actualOutput(tensorInfo.GetNumElements());
40
41 ARMNN_NO_DEPRECATE_WARN_BEGIN
42 auto inputTensorHandle = srcWorkloadFactory.CreateTensorHandle(tensorInfo);
43 auto outputTensorHandle = dstWorkloadFactory.CreateTensorHandle(tensorInfo);
44 ARMNN_NO_DEPRECATE_WARN_END
45
46 AllocateAndCopyDataToITensorHandle(inputTensorHandle.get(), inputData.data());
47 outputTensorHandle->Allocate();
48
49 armnn::MemCopyQueueDescriptor memCopyQueueDesc;
50 armnn::WorkloadInfo workloadInfo;
51
52 const unsigned int origin[4] = {};
53
54 ARMNN_NO_DEPRECATE_WARN_BEGIN
55 auto workloadInput = (withSubtensors && srcWorkloadFactory.SupportsSubTensors())
56 ? srcWorkloadFactory.CreateSubTensorHandle(*inputTensorHandle, tensorShape, origin)
57 : std::move(inputTensorHandle);
58 auto workloadOutput = (withSubtensors && dstWorkloadFactory.SupportsSubTensors())
59 ? dstWorkloadFactory.CreateSubTensorHandle(*outputTensorHandle, tensorShape, origin)
60 : std::move(outputTensorHandle);
61 ARMNN_NO_DEPRECATE_WARN_END
62
63 AddInputToWorkload(memCopyQueueDesc, workloadInfo, tensorInfo, workloadInput.get());
64 AddOutputToWorkload(memCopyQueueDesc, workloadInfo, tensorInfo, workloadOutput.get());
65
66 dstWorkloadFactory.CreateWorkload(armnn::LayerType::MemCopy, memCopyQueueDesc, workloadInfo)->Execute();
67
68 CopyDataFromITensorHandle(actualOutput.data(), workloadOutput.get());
69 ret.m_ActualData = actualOutput;
70
71 return ret;
72}
73
74template <typename WorkloadFactoryType>
75struct MemCopyTestHelper

Callers

nothing calls this directly

Calls 12

AddOutputToWorkloadFunction · 0.85
GetFactoryFunction · 0.85
dataMethod · 0.45
GetNumElementsMethod · 0.45
CreateTensorHandleMethod · 0.45
getMethod · 0.45
AllocateMethod · 0.45
SupportsSubTensorsMethod · 0.45
CreateSubTensorHandleMethod · 0.45
ExecuteMethod · 0.45
CreateWorkloadMethod · 0.45

Tested by

no test coverage detected