// Copyright © Advanced Micro Devices, Inc., or its affiliates. // SPDX-License-Identifier: MIT #pragma once #include #include #include "HipdnnMiopenContext.hpp" #include "HipdnnMiopenHandle.hpp" #include "HipdnnMiopenSettings.hpp" namespace miopen_plugin { class MiopenBatchnormFwdTrainingPlanBuilder : public hipdnn_plugin_sdk:: IPlanBuilder { public: MiopenBatchnormFwdTrainingPlanBuilder() = default; ~MiopenBatchnormFwdTrainingPlanBuilder() override = default; // Disallow copy and assignment MiopenBatchnormFwdTrainingPlanBuilder(const MiopenBatchnormFwdTrainingPlanBuilder&) = delete; MiopenBatchnormFwdTrainingPlanBuilder& operator=(const MiopenBatchnormFwdTrainingPlanBuilder&) = delete; bool isApplicable( const HipdnnMiopenHandle& handle, const hipdnn_flatbuffers_sdk::flatbuffer_utilities::IGraph& opGraph) const override; size_t getMaxWorkspaceSize(const HipdnnMiopenHandle& handle, const hipdnn_flatbuffers_sdk::flatbuffer_utilities::IGraph& opGraph, const HipdnnMiopenSettings& executionSettings) const override; void initializeExecutionSettings( const HipdnnMiopenHandle& handle, const hipdnn_flatbuffers_sdk::flatbuffer_utilities::IGraph& opGraph, const hipdnn_flatbuffers_sdk::flatbuffer_utilities::IEngineConfig& engineConfig, HipdnnMiopenSettings& executionSettings) const override; void buildPlan( const HipdnnMiopenHandle& handle, const hipdnn_flatbuffers_sdk::flatbuffer_utilities::IGraph& opGraph, [[maybe_unused]] const hipdnn_flatbuffers_sdk::flatbuffer_utilities::IEngineConfig& engineConfig, HipdnnMiopenContext& executionContext) const override; std::vector getCustomKnobs( const HipdnnMiopenHandle& handle, const hipdnn_flatbuffers_sdk::flatbuffer_utilities::IGraph& opGraph) const override; }; }