ArmNN
 22.02
MockBackend.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
9 
10 namespace armnn
11 {
12 
13 constexpr const char* MockBackendId()
14 {
15  return "CpuMock";
16 }
17 
19 {
20  static const BackendId s_Id{MockBackendId()};
21  return s_Id;
22 }
23 
24 namespace
25 {
26 static const BackendId s_Id{ MockBackendId() };
27 }
28 
29 MockWorkloadFactory::MockWorkloadFactory(const std::shared_ptr<MockMemoryManager>& memoryManager)
30  : m_MemoryManager(memoryManager)
31 {}
32 
34  : m_MemoryManager(new MockMemoryManager())
35 {}
36 
38 {
39  return s_Id;
40 }
41 
42 std::unique_ptr<IWorkload> MockWorkloadFactory::CreateWorkload(LayerType type,
43  const QueueDescriptor& descriptor,
44  const WorkloadInfo& info) const
45 {
46  switch (type)
47  {
48  case LayerType::MemCopy: {
49  auto memCopyQueueDescriptor = PolymorphicDowncast<const MemCopyQueueDescriptor*>(&descriptor);
50  if (descriptor.m_Inputs.empty())
51  {
52  throw InvalidArgumentException("MockWorkloadFactory: CreateMemCopy() expected an input tensor.");
53  }
54  return std::make_unique<CopyMemGenericWorkload>(*memCopyQueueDescriptor, info);
55  }
56  default:
57  return nullptr;
58  }
59 }
60 
61 } // namespace armnn
ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "22.11") std std::unique_ptr< IWorkload > CreateWorkload(LayerType type, const QueueDescriptor &descriptor, const WorkloadInfo &info) const override
constexpr const char * MockBackendId()
Definition: MockBackend.cpp:13
Copyright (c) 2021 ARM Limited and Contributors.
const BackendId & GetBackendId() const override
Definition: MockBackend.cpp:37
static const BackendId & GetIdStatic()
Definition: MockBackend.cpp:18
Contains information about TensorInfos of a layer.
std::vector< ITensorHandle * > m_Inputs
LayerType
When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below...
Definition: Types.hpp:458