提交 975e8b8e 编写于 作者: Y Yuan Shuai 提交者: GitHub

[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
上级 c465a71c
...@@ -107,6 +107,13 @@ ...@@ -107,6 +107,13 @@
using param_t = operators::ArgmaxParam; using param_t = operators::ArgmaxParam;
void Run() override; void Run() override;
virtual ~ArgmaxCompute() = default; 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的输入参数都需要绑定),代码如下: - 在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 @@ ...@@ -117,6 +124,9 @@
lite::Tensor* output = param.Out; lite::Tensor* output = param.Out;
int axis = param.Axis; int axis = param.Axis;
lite::arm::math::argmax_func(input, axis, output); lite::arm::math::argmax_func(input, axis, output);
#ifdef LITE_WITH_PROFILE
kernel_func_name_ = "argmax_func";
#endif
return; return;
} }
......
...@@ -35,6 +35,9 @@ void ArgmaxCompute::Run() { ...@@ -35,6 +35,9 @@ void ArgmaxCompute::Run() {
} }
lite::arm::math::argmax_func(input, axis, output); lite::arm::math::argmax_func(input, axis, output);
#ifdef LITE_WITH_PROFILE
kernel_func_name_ = "argmax_func";
#endif
return; return;
} }
......
...@@ -16,6 +16,10 @@ ...@@ -16,6 +16,10 @@
#include <algorithm> #include <algorithm>
#include "lite/core/kernel.h" #include "lite/core/kernel.h"
#include "lite/operators/argmax_op.h" #include "lite/operators/argmax_op.h"
#ifdef LITE_WITH_PROFILE
#include <string>
#include "lite/core/profile/profiler.h"
#endif
namespace paddle { namespace paddle {
namespace lite { namespace lite {
...@@ -29,6 +33,14 @@ class ArgmaxCompute : public KernelLite<TARGET(kARM), PRECISION(kFloat)> { ...@@ -29,6 +33,14 @@ class ArgmaxCompute : public KernelLite<TARGET(kARM), PRECISION(kFloat)> {
void Run() override; void Run() override;
virtual ~ArgmaxCompute() = default; 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 } // namespace arm
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册