// // DepthwiseConvBufExecution.hpp // MNN // // Created by MNN on 2019/01/31. // Copyright © 2018, Alibaba Group Holding Limited // #ifndef MNN_OPENCL_BUFFER_CLOSED #ifndef DepthwiseConvBufExecution_hpp #define DepthwiseConvBufExecution_hpp #include "ConvBufExecution.hpp" namespace MNN { namespace OpenCL { class DepthwiseConvBufExecution : public ConvBufCommonExecution, public CommonExecution { public: DepthwiseConvBufExecution(const std::vector &inputs, const MNN::Op *op, Backend *backend); DepthwiseConvBufExecution(std::shared_ptr resource, const MNN::Op* op, Backend* backend); virtual ~DepthwiseConvBufExecution(); virtual ErrorCode onEncode(const std::vector &inputs, const std::vector &outputs) override; virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override; std::pair, int> DepthwiseConvBufLwsTune(const cl::Kernel &kernel, const std::vector &gws, const std::string &kernelName, const uint32_t maxWorkGroupSize); private: std::vector mPaddings{0, 0}; std::vector mGlobalWorkSize{1, 1, 1}; std::vector mLocalWorkSize{1, 1, 1, 1}; bool mStride_1 = false; }; } // namespace OpenCL } // namespace MNN #endif /* DepthwiseConvBufExecution_hpp */ #endif /* MNN_OPENCL_BUFFER_CLOSED */