// // VulkanUnary.hpp // MNN // // Created by MNN on 2019/01/31. // Copyright © 2018, Alibaba Group Holding Limited // #ifndef VulkanUnary_hpp #define VulkanUnary_hpp #include "VulkanBasicExecution.hpp" #include "core/TensorUtils.hpp" #include namespace MNN { class VulkanUnary : public VulkanBasicExecution { public: VulkanUnary(const std::string& midType, Backend* bn, bool image = false); virtual ~VulkanUnary(); virtual ErrorCode onEncode(const std::vector& inputs, const std::vector& outputs, const VulkanCommandPool::Buffer* cmdBuffer) override; bool encode(const Tensor* input, const Tensor* output, const VulkanCommandPool::Buffer* cmdBuffer, const Tensor::InsideDescribe::Region* region); bool encoderSingle(const VulkanCommandPool::Buffer* cmdBuffer, const VulkanImage* dest, const VulkanImage* source, const std::array& size ); private: std::vector> mParams; const VulkanPipeline* mUnaryPipeline; std::vector> mDesSet; }; } // namespace MNN #endif /* VulkanUnary_hpp */