1 // 2 // Copyright © 2020 Arm Ltd and Contributors. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #pragma once 7 8 #include "ClBaseWorkload.hpp" 9 #include <armnn/backends/WorkloadData.hpp> 10 11 #include "ClWorkloadUtils.hpp" 12 13 namespace armnn 14 { 15 16 struct ClRankWorkload : public ClBaseWorkload<RankQueueDescriptor> 17 { 18 public: 19 using ClBaseWorkload<RankQueueDescriptor>::ClBaseWorkload; Executearmnn::ClRankWorkload20 virtual void Execute() const override 21 { 22 const ClTensorHandle* clTensorHandle = PolymorphicDowncast<const ClTensorHandle*>(m_Data.m_Inputs[0]); 23 const int32_t rank = static_cast<int32_t>(clTensorHandle->GetShape().GetNumDimensions()); 24 25 std::memcpy(GetOutputTensorData<void>(0, m_Data), &rank, sizeof(int32_t)); 26 m_Data.m_Outputs[0]->Unmap(); 27 } 28 }; 29 30 } //namespace armnn 31