// // PoolExecution.hpp // MNN // // Created by MNN on 2019/01/31. // Copyright © 2018, Alibaba Group Holding Limited // #ifndef PoolExecution_hpp #define PoolExecution_hpp #include "CommonExecution.hpp" namespace MNN { namespace OpenCL { class PoolExecution : public CommonExecution { public: PoolExecution(const std::vector &inputs, const MNN::Op *op, Backend *backend); virtual ~PoolExecution() = default; virtual ErrorCode onEncode(const std::vector &inputs, const std::vector &outputs) override; std::vector poolLocalWS(const std::vector &gws, const uint32_t maxWorkGroupSize); int getLocalSize(int size, int maxGroupSize); private: const Pool *mPoolParams; PoolType mPoolType; PoolPadType mPadType; std::vector mStrides{1, 1}; std::vector mKernels{1, 1}; std::vector mPaddings{0, 0}; std::vector mDilations{1, 1}; uint32_t mMaxWorkGroupSize; OpenCLBackend *mOpenCLBackend; }; } // namespace OpenCL } // namespace MNN #endif /* PoolExecution_hpp */