| 45 | } |
| 46 | |
| 47 | ClStackWorkload::ClStackWorkload(const StackQueueDescriptor& descriptor, |
| 48 | const WorkloadInfo& info, |
| 49 | const arm_compute::CLCompileContext& clCompileContext) |
| 50 | : ClBaseWorkload<StackQueueDescriptor>(descriptor, info) |
| 51 | { |
| 52 | // Report Profiling Details |
| 53 | ARMNN_REPORT_PROFILING_WORKLOAD_DESC("ClStackWorkload_Construct", |
| 54 | descriptor.m_Parameters, |
| 55 | info, |
| 56 | this->GetGuid()); |
| 57 | |
| 58 | std::vector<arm_compute::ICLTensor*> aclInputs; |
| 59 | for (auto input : m_Data.m_Inputs) |
| 60 | { |
| 61 | arm_compute::ICLTensor& aclInput = armnn::PolymorphicPointerDowncast<IClTensorHandle>(input)->GetTensor(); |
| 62 | aclInputs.emplace_back(&aclInput); |
| 63 | } |
| 64 | arm_compute::ICLTensor& output = armnn::PolymorphicPointerDowncast<IClTensorHandle>( |
| 65 | m_Data.m_Outputs[0])->GetTensor(); |
| 66 | |
| 67 | m_Layer.reset(new arm_compute::CLStackLayer()); |
| 68 | int aclAxis = CalcAxis(descriptor.m_Parameters.m_Axis, descriptor.m_Parameters.m_InputShape.GetNumDimensions()); |
| 69 | { |
| 70 | ARMNN_SCOPED_PROFILING_EVENT_CL_NAME_GUID("ClStackWorkload_configure"); |
| 71 | m_Layer->configure(clCompileContext, aclInputs, aclAxis, &output); |
| 72 | } |
| 73 | } |
| 74 | |
| 75 | void ClStackWorkload::Execute() const |
| 76 | { |
nothing calls this directly
no test coverage detected