17 #include <client/include/IProfilingService.hpp>
32 template <
typename QueueDescriptor>
39 m_Guid(
arm::pipe::IProfilingService::GetNextGuid())
46 ARMNN_LOG(
info) <<
"Using default async workload execution, this will network affect performance";
47 #if !defined(ARMNN_DISABLE_THREADS)
48 std::lock_guard<std::mutex> lockGuard(m_AsyncWorkloadMutex);
84 const arm::pipe::ProfilingGuid
m_Guid;
87 #if !defined(ARMNN_DISABLE_THREADS)
88 std::mutex m_AsyncWorkloadMutex;
101 std::vector<armnn::DataType> dataTypes = {DataTypes...};
104 if (!
info.m_InputTensorInfos.empty())
106 expectedInputType =
info.m_InputTensorInfos.front().GetDataType();
108 if (std::find(dataTypes.begin(), dataTypes.end(), expectedInputType) == dataTypes.end())
113 info.m_InputTensorInfos.end(),
115 return it.GetDataType() == expectedInputType;
117 "Trying to create workload with incorrect type");
121 if (!
info.m_OutputTensorInfos.empty())
123 expectedOutputType =
info.m_OutputTensorInfos.front().GetDataType();
125 if (!
info.m_InputTensorInfos.empty())
127 expectedInputType =
info.m_InputTensorInfos.front().GetDataType();
129 if (expectedOutputType != expectedInputType)
134 else if (std::find(dataTypes.begin(), dataTypes.end(), expectedOutputType) == dataTypes.end())
139 info.m_OutputTensorInfos.end(),
141 return it.GetDataType() == expectedOutputType;
143 "Trying to create workload with incorrect type");
148 template <
typename QueueDescriptor, armnn::DataType InputDataType, armnn::DataType OutputDataType>
157 info.m_InputTensorInfos.end(),
159 return it.GetDataType() == InputDataType;
161 "Trying to create workload with incorrect type");
164 info.m_OutputTensorInfos.end(),
166 return it.GetDataType() == OutputDataType;
168 "Trying to create workload with incorrect type");
173 template <
typename QueueDescriptor, armnn::DataType DataType>
181 if (!
info.m_InputTensorInfos.empty())
184 "Trying to create workload with incorrect type");
188 info.m_OutputTensorInfos.end(),
190 return it.GetDataType() == DataType;
192 "Trying to create workload with incorrect type");
196 template <
typename QueueDescriptor>
201 template <
typename QueueDescriptor>
204 template <
typename QueueDescriptor>
207 template <
typename QueueDescriptor>
210 template <
typename QueueDescriptor>
213 template <
typename QueueDescriptor>
218 template <
typename QueueDescriptor>
223 template <
typename QueueDescriptor>
228 template <
typename QueueDescriptor>
233 template <
typename QueueDescriptor>
238 template <
typename QueueDescriptor>
243 template <
typename QueueDescriptor>