17 #include <client/include/IProfilingService.hpp>
32 template <
typename QueueDescriptor>
39 m_Guid(
arm::pipe::IProfilingService::GetNextGuid()),
45 virtual const std::string&
GetName()
const override
52 ARMNN_LOG(
info) <<
"Using default async workload execution, this will network affect performance";
53 #if !defined(ARMNN_DISABLE_THREADS)
54 std::lock_guard<std::mutex> lockGuard(m_AsyncWorkloadMutex);
90 const arm::pipe::ProfilingGuid
m_Guid;
94 #if !defined(ARMNN_DISABLE_THREADS)
95 std::mutex m_AsyncWorkloadMutex;
108 std::vector<armnn::DataType> dataTypes = {DataTypes...};
111 if (!
info.m_InputTensorInfos.empty())
113 expectedInputType =
info.m_InputTensorInfos.front().GetDataType();
115 if (std::find(dataTypes.begin(), dataTypes.end(), expectedInputType) == dataTypes.end())
119 if (std::all_of(std::next(
info.m_InputTensorInfos.begin()),
120 info.m_InputTensorInfos.end(),
122 return it.GetDataType() == expectedInputType;
130 if (!
info.m_OutputTensorInfos.empty())
132 expectedOutputType =
info.m_OutputTensorInfos.front().GetDataType();
134 if (!
info.m_InputTensorInfos.empty())
136 expectedInputType =
info.m_InputTensorInfos.front().GetDataType();
138 if (expectedOutputType != expectedInputType)
143 else if (std::find(dataTypes.begin(), dataTypes.end(), expectedOutputType) == dataTypes.end())
147 if (std::all_of(std::next(
info.m_OutputTensorInfos.begin()),
148 info.m_OutputTensorInfos.end(),
150 return it.GetDataType() == expectedOutputType;
159 template <
typename QueueDescriptor, armnn::DataType InputDataType, armnn::DataType OutputDataType>
167 if (std::all_of(
info.m_InputTensorInfos.begin(),
168 info.m_InputTensorInfos.end(),
170 return it.GetDataType() == InputDataType;
175 if (std::all_of(
info.m_OutputTensorInfos.begin(),
176 info.m_OutputTensorInfos.end(),
178 return it.GetDataType() == OutputDataType;
187 template <
typename QueueDescriptor, armnn::DataType DataType>
195 if (!
info.m_InputTensorInfos.empty())
197 if (
info.m_InputTensorInfos.front().GetDataType() !=
DataType)
203 if (std::all_of(
info.m_OutputTensorInfos.begin(),
204 info.m_OutputTensorInfos.end(),
206 return it.GetDataType() == DataType;
214 template <
typename QueueDescriptor>
219 template <
typename QueueDescriptor>
222 template <
typename QueueDescriptor>
225 template <
typename QueueDescriptor>
228 template <
typename QueueDescriptor>
231 template <
typename QueueDescriptor>
236 template <
typename QueueDescriptor>
241 template <
typename QueueDescriptor>
246 template <
typename QueueDescriptor>
251 template <
typename QueueDescriptor>
256 template <
typename QueueDescriptor>
261 template <
typename QueueDescriptor>