// // VulkanArgMax.cpp // MNN // // Created by MNN on 2024/08/20. // Copyright © 2018, Alibaba Group Holding Limited // #ifndef VulkanArgMax_hpp #define VulkanArgMax_hpp #include "VulkanBasicExecution.hpp" #include "VulkanImageConverter.hpp" namespace MNN { class VulkanArgMax : public VulkanBasicExecution { public: VulkanArgMax(const Op* op, Backend* bn); virtual ~VulkanArgMax(); ErrorCode onEncode(const std::vector& inputs, const std::vector& outputs, const VulkanCommandPool::Buffer* cmdBuffer) override; private: const VulkanPipeline* mArgMaxPipeline; std::shared_ptr mDescriptorSet; std::shared_ptr mGpuArgMaxParam; struct ConvertInfo { const VulkanPipeline* pipeline; std::shared_ptr convert; std::shared_ptr buffer; }; ConvertInfo mSource; ConvertInfo mOutput; int mAxis; }; } // namespace MNN #endif /* VulkanArgMax_hpp */