// Copyright (c) OpenMMLab. All rights reserved. #include "src/turbomind/kernels/gemm/desc.h" #include #include #include namespace turbomind::gemm { class DispatchCache { public: DispatchCache(std::vector kernels); ~DispatchCache(); std::optional LowerBound(const GemmDesc& desc) const; std::optional Find(const GemmDesc& desc) const; bool Insert(const GemmDesc& desc, const LaunchSpec& spec); int Export(std::ostream& os) const; int Import(std::istream& is); private: struct Impl; std::unique_ptr impl_; }; } // namespace turbomind::gemm