// // PoolBufExecution.hpp // MNN // // Created by MNN on 2019/01/31. // Copyright © 2018, Alibaba Group Holding Limited // #ifndef MNN_OPENCL_BUFFER_CLOSED #ifndef PoolBufExecution_hpp #define PoolBufExecution_hpp #include "backend/opencl/execution/image/CommonExecution.hpp" namespace MNN { namespace OpenCL { class PoolBufExecution : public CommonExecution { public: PoolBufExecution(const std::vector &inputs, const MNN::Op *op, Backend *backend); virtual ~PoolBufExecution() = default; virtual ErrorCode onEncode(const std::vector &inputs, const std::vector &outputs) override; int getLocalSize(int size, int maxGroupSize); private: #ifdef MNN_SUPPORT_INTEL_SUBGROUP ErrorCode SubgrouponResize(const std::vector &inputs, const std::vector &outputs); #endif /* MNN_SUPPORT_INTEL_SUBGROUP */ const Pool *mPoolParams; std::vector mGlobalWorkSize{1, 1, 1}; std::vector mLocalWorkSize{1, 1, 1, 1}; 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 /* PoolBufExecution_hpp */ #endif /* MNN_OPENCL_BUFFER_CLOSED */