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 if (expectedOutputType != expectedInputType)
132 else if (std::find(dataTypes.begin(), dataTypes.end(), expectedOutputType) == dataTypes.end())
137 info.m_OutputTensorInfos.end(),
139 return it.GetDataType() == expectedOutputType;
141 "Trying to create workload with incorrect type");
146 template <
typename QueueDescriptor, armnn::DataType InputDataType, armnn::DataType OutputDataType>
155 info.m_InputTensorInfos.end(),
157 return it.GetDataType() == InputDataType;
159 "Trying to create workload with incorrect type");
162 info.m_OutputTensorInfos.end(),
164 return it.GetDataType() == OutputDataType;
166 "Trying to create workload with incorrect type");
171 template <
typename QueueDescriptor, armnn::DataType DataType>
179 if (!
info.m_InputTensorInfos.empty())
182 "Trying to create workload with incorrect type");
186 info.m_OutputTensorInfos.end(),
188 return it.GetDataType() == DataType;
190 "Trying to create workload with incorrect type");
194 template <
typename QueueDescriptor>
199 template <
typename QueueDescriptor>
202 template <
typename QueueDescriptor>
205 template <
typename QueueDescriptor>
208 template <
typename QueueDescriptor>
211 template <
typename QueueDescriptor>
216 template <
typename QueueDescriptor>
221 template <
typename QueueDescriptor>
226 template <
typename QueueDescriptor>
231 template <
typename QueueDescriptor>
236 template <
typename QueueDescriptor>
241 template <
typename QueueDescriptor>