// Copyright (c) 2025 PaddlePaddle Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #pragma once #include #include #include #include "absl/status/status.h" #include "absl/status/statusor.h" #ifdef WITH_GPU static constexpr const char *DEVICE = "gpu:0"; #else static constexpr const char *DEVICE = "cpu"; #endif class PaddlePredictorOption { public: const std::vector SUPPORT_RUN_MODE = {"paddle", "paddle_fp16", "mkldnn", "mkldnn_bf16"}; const std::vector SUPPORT_DEVICE = {"gpu", "cpu"}; const std::string &RunMode() const; const std::string &DeviceType() const; int DeviceId() const; int CpuThreads() const; const std::vector &DeletePass() const; bool EnableNewIR() const; bool EnableCinn() const; int MkldnnCacheCapacity() const; const std::vector &GetSupportRunMode() const; const std::vector &GetSupportDevice() const; std::string DebugString() const; absl::Status SetRunMode(const std::string &run_mode); absl::Status SetDeviceType(const std::string &device_type); absl::Status SetDeviceId(int device_id); absl::Status SetCpuThreads(int cpu_threads); absl::Status SetMkldnnCacheCapacity(int mkldnn_cache_capacity); void SetDeletePass(const std::vector &delete_pass); void SetEnableNewIR(bool enable_new_ir); void SetEnableCinn(bool enable_cinn); private: std::string run_mode_ = "paddle"; std::string device_type_ = DEVICE; int device_id_ = 0; int cpu_threads_ = 10; std::vector delete_pass_ = {}; bool enable_new_ir_ = true; bool enable_cinn_ = false; int mkldnn_cache_capacity_ = 10; };