From 32a8b7f6ee47522c4e8efceb09e2a2f86f86dee3 Mon Sep 17 00:00:00 2001 From: zhaojiaying01 Date: Thu, 18 Oct 2018 16:41:47 +0800 Subject: [PATCH] add fetch kernel for CPU --- src/operators/fetch_op.cpp | 8 ----- src/operators/fetch_op.h | 17 ----------- src/operators/kernel/arm/fetch_kernel.cpp | 36 +++++++++++++++++++++++ 3 files changed, 36 insertions(+), 25 deletions(-) create mode 100644 src/operators/kernel/arm/fetch_kernel.cpp diff --git a/src/operators/fetch_op.cpp b/src/operators/fetch_op.cpp index 852d5c48fc..412f0f3182 100644 --- a/src/operators/fetch_op.cpp +++ b/src/operators/fetch_op.cpp @@ -22,14 +22,6 @@ void FetchOp::InferShape() const { this->param_.Out()->Resize(x_dims); } -template -void FetchOp::RunImpl() { -#ifdef PADDLE_MOBILE_CL - this->kernel_.Compute(this->param_); -#else - this->param_.Out()->ShareDataWith(*(this->param_.InputX())); -#endif -} } // namespace operators } // namespace paddle_mobile diff --git a/src/operators/fetch_op.h b/src/operators/fetch_op.h index 4e313092cc..c3ef5864f0 100644 --- a/src/operators/fetch_op.h +++ b/src/operators/fetch_op.h @@ -24,7 +24,6 @@ namespace operators { using std::string; template -#ifdef PADDLE_MOBILE_CL class FetchOp : public framework::OperatorWithKernel, FetchKernel> { @@ -35,26 +34,10 @@ class FetchOp : framework::OperatorWithKernel, FetchKernel>( type, inputs, outputs, attrs, scope) {} -#else -class FetchOp : public framework::OperatorBase { - public: - FetchOp(const string &type, const VariableNameMap &inputs, - const VariableNameMap &outputs, const framework::AttributeMap attrs, - std::shared_ptr scope) - : framework::OperatorBase(type, inputs, outputs, attrs, - scope), - param_(inputs, outputs, attrs, *scope) {} - void Init() {} -#endif void InferShape() const override; - void RunImpl() override; - protected: -#ifndef PADDLE_MOBILE_CL - FetchParam param_; -#endif }; } // namespace operators diff --git a/src/operators/kernel/arm/fetch_kernel.cpp b/src/operators/kernel/arm/fetch_kernel.cpp new file mode 100644 index 0000000000..a5f7171248 --- /dev/null +++ b/src/operators/kernel/arm/fetch_kernel.cpp @@ -0,0 +1,36 @@ +/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. */ +#ifdef FUSION_CONVADD_OP + +#include "operators/kernel/fetch_kernel.h" + +namespace paddle_mobile { +namespace operators { + +template <> +bool FetchKernel::Init(FetchParam *param) { + return true; +} + +template <> +void FetchKernel::Compute(const FetchParam ¶m) { + param.Out()->ShareDataWith(*(param.InputX())); +} + +template class FetchKernel; + +} // namespace operators +} // namespace paddle_mobile + +#endif -- GitLab