diff options
author | Anthony Barbier <anthony.barbier@arm.com> | 2018-05-18 16:55:39 +0100 |
---|---|---|
committer | Pablo Marquez <pablo.tello@arm.com> | 2020-03-05 16:47:10 +0000 |
commit | b46702118eddcfec11487be8dd23234066642d62 (patch) | |
tree | b80d1346c86f17a08e18879ad47c0e9999af27ac /src/core/CL | |
parent | e8291acc1d9e89c9274d31f0d5bb4779eb95588c (diff) | |
download | ComputeLibrary-b46702118eddcfec11487be8dd23234066642d62.tar.gz |
COMPMID-1181: Support for tracing configuration
This patch adds support for tracing function and kernel configuration
arguments. The trace is printed to stdout.
To enable tracing run the script: scripts/enable_tracing.py and recompile
the library with tracing=1.
Change-Id: If6626785e263d9023899b20e175a53652d70a605
Signed-off-by: morgolock <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/2712
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/core/CL')
-rw-r--r-- | src/core/CL/CLTracePoint.cpp | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/core/CL/CLTracePoint.cpp b/src/core/CL/CLTracePoint.cpp new file mode 100644 index 0000000000..b459cfbf3d --- /dev/null +++ b/src/core/CL/CLTracePoint.cpp @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2020 ARM Limited. + * + * SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#include "arm_compute/core/TracePoint.h" + +#include "arm_compute/core/CL/ICLArray.h" +#include "arm_compute/core/CL/ICLDistribution1D.h" +#include "arm_compute/core/CL/ICLHOG.h" +#include "arm_compute/core/CL/ICLLut.h" +#include "arm_compute/core/CL/ICLMultiHOG.h" +#include "arm_compute/core/CL/ICLMultiImage.h" +#include "arm_compute/core/CL/ICLTensor.h" +#include "arm_compute/core/CL/kernels/CLLKTrackerKernel.h" +#include "utils/TypePrinter.h" + +#include <vector> + +namespace arm_compute +{ +std::string to_string(const ICLTensor &arg) +{ + std::stringstream str; + str << "TensorInfo(" << *arg.info() << ")"; + return str.str(); +} + +template <> +TracePoint::Args &&operator<<(TracePoint::Args &&tp, const ICLTensor *arg) +{ + tp.args.push_back("ICLTensor(" + to_string_if_not_null(arg) + ")"); + return std::move(tp); +} + +TRACE_TO_STRING(std::vector<ICLTensor *>) +TRACE_TO_STRING(ICLMultiImage) +TRACE_TO_STRING(ICLDetectionWindowArray) +TRACE_TO_STRING(ICLKeyPointArray) +TRACE_TO_STRING(ICLLKInternalKeypointArray) +TRACE_TO_STRING(ICLCoefficientTableArray) +TRACE_TO_STRING(ICLCoordinates2DArray) +TRACE_TO_STRING(ICLOldValArray) +TRACE_TO_STRING(cl::Buffer) +TRACE_TO_STRING(ICLDistribution1D) +TRACE_TO_STRING(ICLMultiHOG) +TRACE_TO_STRING(ICLHOG) +TRACE_TO_STRING(ICLLut) +TRACE_TO_STRING(ICLSize2DArray) +TRACE_TO_STRING(std::vector<const ICLTensor *>) + +CONST_PTR_CLASS(std::vector<ICLTensor *>) +CONST_PTR_CLASS(ICLMultiImage) +CONST_PTR_CLASS(ICLDetectionWindowArray) +CONST_PTR_CLASS(ICLKeyPointArray) +CONST_PTR_CLASS(ICLLKInternalKeypointArray) +CONST_PTR_CLASS(ICLCoefficientTableArray) +CONST_PTR_CLASS(ICLCoordinates2DArray) +CONST_PTR_CLASS(ICLOldValArray) +CONST_PTR_CLASS(cl::Buffer) +CONST_PTR_CLASS(ICLDistribution1D) +CONST_PTR_CLASS(ICLMultiHOG) +CONST_PTR_CLASS(ICLHOG) +CONST_PTR_CLASS(ICLLut) +CONST_PTR_CLASS(ICLSize2DArray) +CONST_PTR_CLASS(std::vector<const ICLTensor *>) +} // namespace arm_compute |