diff options
author | Keith Davis <keith.davis@arm.com> | 2021-08-04 10:35:20 +0100 |
---|---|---|
committer | KeithARM <keith.davis@arm.com> | 2021-08-05 08:11:06 +0000 |
commit | 5a64f22101ecdda4846e9d71428633f3ccd56fb2 (patch) | |
tree | 5d5dcb617bf2c2786b37a7c64bb6c54ca5696914 /src/backends/cl/workloads | |
parent | 8c999dfeeca7b02a6ea1d0cdcd8c34472f6c9cce (diff) | |
download | armnn-5a64f22101ecdda4846e9d71428633f3ccd56fb2.tar.gz |
IVGCVSW-5980 Add Descriptor, TensorInfo and Convolution algorithm to JSON
* Add GUID as field to layer details and profiling events
* Add Optional GUID param to existing tests
* Improve Details macro to be inline function
* Fix some formatting
Signed-off-by: Keith Davis <keith.davis@arm.com>
Change-Id: I66f192a90a7642b3ee8e7dda0d3f428cce002581
Diffstat (limited to 'src/backends/cl/workloads')
-rw-r--r-- | src/backends/cl/workloads/ClConvolution2dWorkload.cpp | 29 | ||||
-rw-r--r-- | src/backends/cl/workloads/ClConvolution2dWorkload.hpp | 1 | ||||
-rw-r--r-- | src/backends/cl/workloads/ClWorkloadUtils.hpp | 25 |
3 files changed, 31 insertions, 24 deletions
diff --git a/src/backends/cl/workloads/ClConvolution2dWorkload.cpp b/src/backends/cl/workloads/ClConvolution2dWorkload.cpp index b3df7ce0b1..ab9d5bcbd2 100644 --- a/src/backends/cl/workloads/ClConvolution2dWorkload.cpp +++ b/src/backends/cl/workloads/ClConvolution2dWorkload.cpp @@ -70,7 +70,6 @@ ClConvolution2dWorkload::ClConvolution2dWorkload(const Convolution2dQueueDescrip : BaseWorkload<Convolution2dQueueDescriptor>(descriptor, info) , m_ConvolutionLayer(memoryManager) { - // todo: check tensor shapes match. const TensorInfo& weightInfo = m_Data.m_Weight->GetTensorInfo(); m_KernelTensor = std::make_unique<arm_compute::CLTensor>(); @@ -121,21 +120,22 @@ ClConvolution2dWorkload::ClConvolution2dWorkload(const Convolution2dQueueDescrip isFastMathEnabled); // Add details for profiling output - std::string workloadName = "ClConvolution2dWorkload_Execute_Guid" + std::to_string(this->GetGuid()); - 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()); - detailsInfo.m_ConvolutionMethod = armnn::Optional<std::string>(GetConvolutionMethodString()); + detailsInfo.m_ConvolutionMethod = armnn::Optional<std::string>(GetConvolutionMethodString(m_ConvolutionMethod)); 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(workloadName, descriptor.m_Parameters, detailsInfo); + ARMNN_REPORT_PROFILING_WORKLOAD_DESC("ClConvolution2dWorkload_Execute_Guid", + descriptor.m_Parameters, + detailsInfo, + this->GetGuid()); InitializeArmComputeClTensorData(*m_KernelTensor, m_Data.m_Weight); @@ -152,7 +152,7 @@ ClConvolution2dWorkload::ClConvolution2dWorkload(const Convolution2dQueueDescrip void ClConvolution2dWorkload::Execute() const { - ARMNN_SCOPED_PROFILING_EVENT_CL("ClConvolution2dWorkload_Execute"); + ARMNN_SCOPED_PROFILING_EVENT_CL_GUID("ClConvolution2dWorkload_Execute", this->GetGuid()); RunClFunction(m_ConvolutionLayer, CHECK_LOCATION()); } @@ -161,23 +161,6 @@ arm_compute::ConvolutionMethod ClConvolution2dWorkload::GetConvolutionMethod() c return m_ConvolutionMethod; } -std::string ClConvolution2dWorkload::GetConvolutionMethodString() -{ - switch ( m_ConvolutionMethod ) - { - case arm_compute::ConvolutionMethod::FFT: - return "FFT"; - case arm_compute::ConvolutionMethod::DIRECT: - return "Direct"; - case arm_compute::ConvolutionMethod::GEMM: - return "GEMM"; - case arm_compute::ConvolutionMethod::WINOGRAD: - return "Winograd"; - default: - return "Unknown"; - } -} - void ClConvolution2dWorkload::FreeUnusedTensors() { FreeTensorIfUnused(m_KernelTensor); diff --git a/src/backends/cl/workloads/ClConvolution2dWorkload.hpp b/src/backends/cl/workloads/ClConvolution2dWorkload.hpp index 49d7f773df..d0f7a5b251 100644 --- a/src/backends/cl/workloads/ClConvolution2dWorkload.hpp +++ b/src/backends/cl/workloads/ClConvolution2dWorkload.hpp @@ -37,7 +37,6 @@ public: void Execute() const override; arm_compute::ConvolutionMethod GetConvolutionMethod() const; - std::string GetConvolutionMethodString(); private: mutable arm_compute::CLConvolutionLayer m_ConvolutionLayer; diff --git a/src/backends/cl/workloads/ClWorkloadUtils.hpp b/src/backends/cl/workloads/ClWorkloadUtils.hpp index 467505d55b..41b97c1e16 100644 --- a/src/backends/cl/workloads/ClWorkloadUtils.hpp +++ b/src/backends/cl/workloads/ClWorkloadUtils.hpp @@ -19,6 +19,14 @@ #define ARMNN_SCOPED_PROFILING_EVENT_CL(name) \ ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(armnn::Compute::GpuAcc, \ + armnn::EmptyOptional(), \ + name, \ + armnn::OpenClTimer(), \ + armnn::WallClockTimer()) + +#define ARMNN_SCOPED_PROFILING_EVENT_CL_GUID(name, guid) \ + ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(armnn::Compute::GpuAcc, \ + guid, \ name, \ armnn::OpenClTimer(), \ armnn::WallClockTimer()) @@ -26,6 +34,23 @@ namespace armnn { +inline std::string GetConvolutionMethodString(arm_compute::ConvolutionMethod& convolutionMethod) +{ + switch (convolutionMethod) + { + case arm_compute::ConvolutionMethod::FFT: + return "FFT"; + case arm_compute::ConvolutionMethod::DIRECT: + return "Direct"; + case arm_compute::ConvolutionMethod::GEMM: + return "GEMM"; + case arm_compute::ConvolutionMethod::WINOGRAD: + return "Winograd"; + default: + return "Unknown"; + } +} + template <typename T> void CopyArmComputeClTensorData(arm_compute::CLTensor& dstTensor, const T* srcData) { |