#ifndef PIANO_DYNASTY_FLOATING_POINT_INCLUDE_MSFT_GPU_INFERENCERPIMPL_H_ #define PIANO_DYNASTY_FLOATING_POINT_INCLUDE_MSFT_GPU_INFERENCERPIMPL_H_ #include #include "msft/MSFTInferencer.h" namespace dynasty { namespace inferencer { namespace msftgpu { template class Inferencer : public msft::Inferencer { public: class Builder : public msft::Inferencer::Builder { friend class Inferencer; private: Builder() = default; uint32_t device_id_ = INT_MAX; void ConfigSessionOption(Ort::SessionOptions& option) override; public: Builder *WithGraphOptimization(uint32_t level); Builder *WithParallelLevel(uint32_t parallel_level); Builder *WithDeviceID(uint32_t device_id); Builder *WithONNXModel(std::string const &model_file); Builder *WithEncryptedModel(std::string const &model_file); ~Builder() override = default; InferencerUniquePtr Build() override; }; protected: explicit Inferencer(std::shared_ptr enviroment, std::shared_ptr session) : msft::Inferencer(enviroment, session) {} public: ~Inferencer() override; static Inferencer::Builder* GetBuilder(); }; } } } #endif //PIANO_DYNASTY_FLOATING_POINT_INCLUDE_MSFT_GPU_INFERENCERPIMPL_H_