option_pybind.cc 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. // Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. #include "ultra_infer/pybind/main.h"
  15. #include "ultra_infer/runtime/backends/paddle/option.h"
  16. namespace ultra_infer {
  17. void BindIpuOption(pybind11::module &m) {
  18. pybind11::class_<IpuOption>(m, "IpuOption")
  19. .def(pybind11::init())
  20. .def_readwrite("ipu_device_num", &IpuOption::ipu_device_num)
  21. .def_readwrite("ipu_micro_batch_size", &IpuOption::ipu_micro_batch_size)
  22. .def_readwrite("ipu_enable_pipelining", &IpuOption::ipu_enable_pipelining)
  23. .def_readwrite("ipu_batches_per_step", &IpuOption::ipu_batches_per_step)
  24. .def_readwrite("ipu_enable_fp16", &IpuOption::ipu_enable_fp16)
  25. .def_readwrite("ipu_replica_num", &IpuOption::ipu_replica_num)
  26. .def_readwrite("ipu_available_memory_proportion",
  27. &IpuOption::ipu_available_memory_proportion)
  28. .def_readwrite("ipu_enable_half_partial",
  29. &IpuOption::ipu_enable_half_partial);
  30. }
  31. void BindPaddleOption(pybind11::module &m) {
  32. BindIpuOption(m);
  33. pybind11::class_<PaddleBackendOption>(m, "PaddleBackendOption")
  34. .def(pybind11::init())
  35. .def_readwrite("enable_fixed_size_opt",
  36. &PaddleBackendOption::enable_fixed_size_opt)
  37. .def_readwrite("enable_log_info", &PaddleBackendOption::enable_log_info)
  38. .def_readwrite("enable_mkldnn", &PaddleBackendOption::enable_mkldnn)
  39. .def_readwrite("enable_trt", &PaddleBackendOption::enable_trt)
  40. .def_readwrite("enable_memory_optimize",
  41. &PaddleBackendOption::enable_memory_optimize)
  42. .def_readwrite("switch_ir_debug", &PaddleBackendOption::switch_ir_debug)
  43. .def_readwrite("ipu_option", &PaddleBackendOption::ipu_option)
  44. .def_readwrite("xpu_option", &PaddleBackendOption::xpu_option)
  45. .def_readwrite("trt_option", &PaddleBackendOption::trt_option)
  46. .def_readwrite("allow_build_trt_at_runtime",
  47. &PaddleBackendOption::allow_build_trt_at_runtime)
  48. .def_readwrite("collect_trt_shape",
  49. &PaddleBackendOption::collect_trt_shape)
  50. .def_readwrite("collect_trt_shape_by_device",
  51. &PaddleBackendOption::collect_trt_shape_by_device)
  52. .def_readwrite("mkldnn_cache_size",
  53. &PaddleBackendOption::mkldnn_cache_size)
  54. .def_readwrite("gpu_mem_init_size",
  55. &PaddleBackendOption::gpu_mem_init_size)
  56. .def_readwrite("is_quantize_model",
  57. &PaddleBackendOption::is_quantize_model)
  58. .def_readwrite("inference_precision",
  59. &PaddleBackendOption::inference_precision)
  60. .def_readwrite("enable_inference_cutlass",
  61. &PaddleBackendOption::enable_inference_cutlass)
  62. .def_readwrite("trt_min_subgraph_size",
  63. &PaddleBackendOption::trt_min_subgraph_size)
  64. .def_readwrite("enable_new_ir", &PaddleBackendOption::enable_new_ir)
  65. .def("disable_trt_ops", &PaddleBackendOption::DisableTrtOps)
  66. .def("delete_pass", &PaddleBackendOption::DeletePass)
  67. .def("set_ipu_config", &PaddleBackendOption::SetIpuConfig);
  68. }
  69. } // namespace ultra_infer