From 975e8b8e397da0dcefde6e634ca14d0b4b29421f Mon Sep 17 00:00:00 2001 From: Yuan Shuai Date: Wed, 27 May 2020 17:13:26 +0800 Subject: [PATCH] [LITE][DOC] Add kernel profiler doc for add operation. test=develop (#3713) * [LITE][DOC] Add kernel profiler doc for add operation. test=develop * add argmax profiler info. test=develop --- docs/develop_guides/add_operation.md | 10 ++++++++++ lite/kernels/arm/argmax_compute.cc | 3 +++ lite/kernels/arm/argmax_compute.h | 12 ++++++++++++ 3 files changed, 25 insertions(+) diff --git a/docs/develop_guides/add_operation.md b/docs/develop_guides/add_operation.md index d177775ff0..63a8b08df3 100644 --- a/docs/develop_guides/add_operation.md +++ b/docs/develop_guides/add_operation.md @@ -107,6 +107,13 @@ using param_t = operators::ArgmaxParam; void Run() override; virtual ~ArgmaxCompute() = default; + #ifdef LITE_WITH_PROFILE + virtual void SetProfileRuntimeKernelInfo( + paddle::lite::profile::OpCharacter* ch) { + ch->kernel_func_name = kernel_func_name_; + } + std::string kernel_func_name_{"NotImplForArgmax"}; + #endif }; ``` - 在paddlelite/lite/kernels/arm/目录下新建argmax_compute.cc文件,主要实现Run函数。`Run()`函数调用paddlelite/lite/bachends/arm/math/argmax.h中的`argmax_func()`函数,根据输入计算输出。最后在argmax_compute.cc文件中,我们绑定argmax的输入输出(为tensor的输入参数都需要绑定),代码如下: @@ -117,6 +124,9 @@ lite::Tensor* output = param.Out; int axis = param.Axis; lite::arm::math::argmax_func(input, axis, output); + #ifdef LITE_WITH_PROFILE + kernel_func_name_ = "argmax_func"; + #endif return; } diff --git a/lite/kernels/arm/argmax_compute.cc b/lite/kernels/arm/argmax_compute.cc index dda3880987..d076837264 100644 --- a/lite/kernels/arm/argmax_compute.cc +++ b/lite/kernels/arm/argmax_compute.cc @@ -35,6 +35,9 @@ void ArgmaxCompute::Run() { } lite::arm::math::argmax_func(input, axis, output); +#ifdef LITE_WITH_PROFILE + kernel_func_name_ = "argmax_func"; +#endif return; } diff --git a/lite/kernels/arm/argmax_compute.h b/lite/kernels/arm/argmax_compute.h index c87f5a451b..c49403d170 100644 --- a/lite/kernels/arm/argmax_compute.h +++ b/lite/kernels/arm/argmax_compute.h @@ -16,6 +16,10 @@ #include #include "lite/core/kernel.h" #include "lite/operators/argmax_op.h" +#ifdef LITE_WITH_PROFILE +#include +#include "lite/core/profile/profiler.h" +#endif namespace paddle { namespace lite { @@ -29,6 +33,14 @@ class ArgmaxCompute : public KernelLite { void Run() override; virtual ~ArgmaxCompute() = default; + +#ifdef LITE_WITH_PROFILE + virtual void SetProfileRuntimeKernelInfo( + paddle::lite::profile::OpCharacter* ch) { + ch->kernel_func_name = kernel_func_name_; + } + std::string kernel_func_name_{"NotImplForArgmax"}; +#endif }; } // namespace arm -- GitLab