// // VulkanConvolution1x1.hpp // MNN // // Created by MNN on 2025/01/10. // Copyright © 2018, Alibaba Group Holding Limited // #ifndef VulkanConvolution1x1_hpp #define VulkanConvolution1x1_hpp #include "VulkanBasicExecution.hpp" namespace MNN { class VulkanConvolution1x1 : public VulkanBasicExecution { public: VulkanConvolution1x1(VulkanBackend* backend, const Convolution2DCommon* convCommon, const float* weightPtr, const float* biasPtr, const int ic, const int oc); ~VulkanConvolution1x1(); ErrorCode onEncode(const std::vector& inputs, const std::vector& outputs, const VulkanCommandPool::Buffer* cmdBuffer) override; private: SharedPtr mPipeline; std::vector> mCands; std::shared_ptr mDescriptorSet; std::shared_ptr mConv1x1Param; const Convolution2DCommon* mConvCommon; std::shared_ptr mKernel; std::shared_ptr mKernelBuffer; std::shared_ptr mBias; std::vector> mCandidataGws; }; } // end namespace MNN #endif /* VulkanConvolution1x1_hpp */