1 // 2 // VulkanScale.hpp 3 // MNN 4 // 5 // Created by MNN on 2019/01/31. 6 // Copyright © 2018, Alibaba Group Holding Limited 7 // 8 9 #ifndef VulkanScale_hpp 10 #define VulkanScale_hpp 11 12 #include <stdio.h> 13 #include "VulkanBasicExecution.hpp" 14 15 namespace MNN { 16 class VulkanScale : public VulkanBasicExecution { 17 public: 18 VulkanScale(const Op* op, Backend* bn); 19 virtual ~VulkanScale(); 20 ErrorCode onEncode(const std::vector<Tensor*>& inputs, const std::vector<Tensor*>& outputs, 21 const VulkanCommandPool::Buffer* cmdBuffer) override; 22 23 private: 24 std::shared_ptr<VulkanBuffer> mScaleParam; 25 const VulkanPipeline* mScalePipeline; 26 std::shared_ptr<VulkanPipeline::DescriptorSet> mDescriptorSet; 27 std::shared_ptr<VulkanBuffer> mScaleBuffer; 28 std::shared_ptr<VulkanBuffer> mBiasBuffer; 29 const VulkanSampler* mSampler; 30 }; 31 } // namespace MNN 32 33 #endif /* VulkanScale_hpp */ 34