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