#ifndef MNN_OPENCL_BUFFER_CLOSED #ifndef SharedGatherBufExecution_hpp #define SharedGatherBufExecution_hpp #include "backend/opencl/execution/buffer/ConvBufExecution.hpp" #include "backend/opencl/execution/image/CommonExecution.hpp" namespace MNN { namespace OpenCL { class SharedGatherBufExecution : public CommonExecution { public: SharedGatherBufExecution(std::shared_ptr resource, const Op* op, Backend* backend); virtual ~SharedGatherBufExecution() = default; static bool validResource(const std::shared_ptr& resource); virtual ErrorCode onEncode(const std::vector& inputs, const std::vector& outputs) override; virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override; private: OpenCLBackend* mOpenCLBackend = nullptr; std::shared_ptr mResource; std::vector mGWS{0, 0}; std::vector mLWS{0, 0}; }; } // namespace OpenCL } // namespace MNN #endif /* SharedGatherBufExecution_hpp */ #endif /* MNN_OPENCL_BUFFER_CLOSED */