// Copyright © Advanced Micro Devices, Inc., or its affiliates. // SPDX-License-Identifier: MIT #pragma once #include #include #include #include #include "HipdnnEnginePluginExecutionContext.hpp" #include "HipdnnEnginePluginHandle.hpp" namespace hipblaslt_plugin { class IPlanBuilder { public: virtual ~IPlanBuilder() = default; virtual bool isApplicable(const HipdnnEnginePluginHandle& handle, const hipdnn_flatbuffers_sdk::flatbuffer_utilities::IGraph& opGraph) const = 0; virtual size_t getWorkspaceSize(const HipdnnEnginePluginHandle& handle, const hipdnn_flatbuffers_sdk::flatbuffer_utilities::IGraph& opGraph) const = 0; virtual void buildPlan(const HipdnnEnginePluginHandle& handle, const hipdnn_flatbuffers_sdk::flatbuffer_utilities::IGraph& opGraph, HipdnnEnginePluginExecutionContext& executionContext) const = 0; }; }