diff options
author | Keith Davis <keith.davis@arm.com> | 2021-08-05 14:20:33 +0100 |
---|---|---|
committer | Matthew Sloyan <matthew.sloyan@arm.com> | 2021-08-10 13:51:31 +0000 |
commit | bcd860a30eba22bb2ba0943ad705734ce0ec5b23 (patch) | |
tree | a54dc121df65036f1604389684c76cdd2c988a4a /src/backends/cl/workloads/ClFullyConnectedWorkload.cpp | |
parent | 2d0679f33f75c43e7169fe0f0ee2d15d0620e091 (diff) | |
download | armnn-bcd860a30eba22bb2ba0943ad705734ce0ec5b23.tar.gz |
IVGCVSW-6249 Add ProfilingDetails Macros to all workloads in CL
Signed-off-by: Keith Davis <keith.davis@arm.com>
Change-Id: I92dd410da7ad633a46d025fdc2b26093041c439b
Diffstat (limited to 'src/backends/cl/workloads/ClFullyConnectedWorkload.cpp')
-rw-r--r-- | src/backends/cl/workloads/ClFullyConnectedWorkload.cpp | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/src/backends/cl/workloads/ClFullyConnectedWorkload.cpp b/src/backends/cl/workloads/ClFullyConnectedWorkload.cpp index d1d911ac13..a0889e1b60 100644 --- a/src/backends/cl/workloads/ClFullyConnectedWorkload.cpp +++ b/src/backends/cl/workloads/ClFullyConnectedWorkload.cpp @@ -28,10 +28,10 @@ arm_compute::Status ClFullyConnectedWorkloadValidate(const TensorInfo& input, const arm_compute::TensorInfo aclWeights = BuildArmComputeTensorInfo(weights); arm_compute::TensorInfo aclBiases; - arm_compute::TensorInfo *optionalAclBiases = nullptr; + arm_compute::TensorInfo* optionalAclBiases = nullptr; if (descriptor.m_BiasEnabled) { - aclBiases = BuildArmComputeTensorInfo(biases); + aclBiases = BuildArmComputeTensorInfo(biases); optionalAclBiases = &aclBiases; } @@ -50,9 +50,25 @@ ClFullyConnectedWorkload::ClFullyConnectedWorkload( const WorkloadInfo& info, std::shared_ptr<arm_compute::MemoryManagerOnDemand>& memoryManager, const arm_compute::CLCompileContext& clCompileContext) - : BaseWorkload<FullyConnectedQueueDescriptor>(descriptor, info) - , m_FullyConnectedLayer(memoryManager) + : BaseWorkload<FullyConnectedQueueDescriptor>(descriptor, info), m_FullyConnectedLayer(memoryManager) { + // Add details for profiling output + WorkloadInfo detailsInfo; + + detailsInfo.m_InputTensorInfos = info.m_InputTensorInfos; + detailsInfo.m_OutputTensorInfos = info.m_OutputTensorInfos; + detailsInfo.m_WeightsTensorInfo = armnn::Optional<armnn::TensorInfo>(descriptor.m_Weight->GetTensorInfo()); + if (descriptor.m_Parameters.m_BiasEnabled) + { + detailsInfo.m_BiasTensorInfo = armnn::Optional<armnn::TensorInfo>(descriptor.m_Bias->GetTensorInfo()); + } + + // Report Profiling Details + ARMNN_REPORT_PROFILING_WORKLOAD_DESC("ClFullyConnectedWorkload_Construct", + descriptor.m_Parameters, + detailsInfo, + this->GetGuid()); + m_WeightsTensor = std::make_unique<arm_compute::CLTensor>(); BuildArmComputeTensor(*m_WeightsTensor, m_Data.m_Weight->GetTensorInfo()); @@ -64,13 +80,13 @@ ClFullyConnectedWorkload::ClFullyConnectedWorkload( m_Data.ValidateInputsOutputs("ClFullyConnectedWorkload", 1, 1); - arm_compute::ICLTensor& input = static_cast<IClTensorHandle*>(m_Data.m_Inputs[0])->GetTensor(); + arm_compute::ICLTensor& input = static_cast<IClTensorHandle*>(m_Data.m_Inputs[0])->GetTensor(); arm_compute::ICLTensor& output = static_cast<IClTensorHandle*>(m_Data.m_Outputs[0])->GetTensor(); const arm_compute::ActivationLayerInfo activationInfo = ConvertAdditionalInfoToAclActivationLayerInfo(descriptor); arm_compute::FullyConnectedLayerInfo fc_info = - ConvertFullyConnectedDescriptorToAclFullyConnectedLayerInfo(descriptor.m_Parameters, activationInfo); + ConvertFullyConnectedDescriptorToAclFullyConnectedLayerInfo(descriptor.m_Parameters, activationInfo); m_FullyConnectedLayer.configure(clCompileContext, &input, @@ -94,7 +110,7 @@ ClFullyConnectedWorkload::ClFullyConnectedWorkload( void ClFullyConnectedWorkload::Execute() const { - ARMNN_SCOPED_PROFILING_EVENT_CL("ClFullyConnectedWorkload_Execute"); + ARMNN_SCOPED_PROFILING_EVENT_CL_GUID("ClFullyConnectedWorkload_Execute", this->GetGuid()); RunClFunction(m_FullyConnectedLayer, CHECK_LOCATION()); } |