// // VulkanRelu.hpp // MNN // // Created by MNN on 2019/01/31. // Copyright © 2018, Alibaba Group Holding Limited // #ifndef VulkanRelu_hpp #define VulkanRelu_hpp #include #include "VulkanBasicExecution.hpp" namespace MNN { class VulkanRelu : public VulkanBasicExecution { public: VulkanRelu(Backend* bn, const Op* op); virtual ~VulkanRelu(); ErrorCode onEncode(const std::vector& inputs, const std::vector& outputs, const VulkanCommandPool::Buffer* cmdBuffer) override; private: float mSlope[4]; std::vector> mGpuReluParam; const VulkanPipeline* mReluPipeline; std::vector> mDescriptorSet; }; class VulkanPrelu : public VulkanBasicExecution { public: VulkanPrelu(Backend* bn, const Op* op); virtual ~VulkanPrelu(); ErrorCode onEncode(const std::vector& inputs, const std::vector& outputs, const VulkanCommandPool::Buffer* cmdBuffer) override; private: std::shared_ptr mGpuPreluParam; std::shared_ptr mSlope; const VulkanPipeline* mPreluPipeline; std::shared_ptr mDescriptorSet; }; } // namespace MNN #endif /* VulkanRelu_hpp */