onnxruntime

Форк
0
/
onnxruntime_optimizer.cmake 
139 строк · 8.0 Кб
1
# Copyright (c) Microsoft Corporation. All rights reserved.
2
# Licensed under the MIT License.
3

4
set(onnxruntime_optimizer_src_patterns)
5

6
if (onnxruntime_MINIMAL_BUILD)
7
  # we include a couple of files so a library is produced and we minimize other changes to the build setup.
8
  # if the transformer base class is unused it will be excluded from the final binary size
9
  list(APPEND onnxruntime_optimizer_src_patterns
10
    "${ONNXRUNTIME_INCLUDE_DIR}/core/optimizer/graph_transformer.h"
11
    "${ONNXRUNTIME_ROOT}/core/optimizer/graph_transformer.cc"
12
  )
13

14
  if (onnxruntime_EXTENDED_MINIMAL_BUILD)
15
    list(APPEND onnxruntime_optimizer_src_patterns
16
      "${ONNXRUNTIME_INCLUDE_DIR}/core/optimizer/graph_transformer_utils.h"
17
      "${ONNXRUNTIME_ROOT}/core/optimizer/conv_activation_fusion.cc"
18
      "${ONNXRUNTIME_ROOT}/core/optimizer/conv_activation_fusion.h"
19
      "${ONNXRUNTIME_ROOT}/core/optimizer/graph_transformer_utils.cc"
20
      "${ONNXRUNTIME_ROOT}/core/optimizer/initializer.cc"
21
      "${ONNXRUNTIME_ROOT}/core/optimizer/initializer.h"
22
      "${ONNXRUNTIME_ROOT}/core/optimizer/matmul_nbits_fusion.cc"
23
      "${ONNXRUNTIME_ROOT}/core/optimizer/matmul_nbits_fusion.h"
24
      "${ONNXRUNTIME_ROOT}/core/optimizer/nhwc_transformer.cc"
25
      "${ONNXRUNTIME_ROOT}/core/optimizer/nhwc_transformer.h"
26
      "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/qdq_final_cleanup.cc"
27
      "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/qdq_final_cleanup.h"
28
      "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/qdq_util.cc"
29
      "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/qdq_util.h"
30
      "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/selectors_actions/qdq_actions.cc"
31
      "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/selectors_actions/qdq_actions.h"
32
      "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/selectors_actions/qdq_selector_action_transformer.cc"
33
      "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/selectors_actions/qdq_selector_action_transformer.h"
34
      "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/selectors_actions/qdq_selectors.cc"
35
      "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/selectors_actions/qdq_selectors.h"
36
      "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/selectors_actions/shared/utils.cc"
37
      "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/selectors_actions/shared/utils.h"
38
      "${ONNXRUNTIME_ROOT}/core/optimizer/selectors_actions/actions.cc"
39
      "${ONNXRUNTIME_ROOT}/core/optimizer/selectors_actions/actions.h"
40
      "${ONNXRUNTIME_ROOT}/core/optimizer/selectors_actions/helpers.cc"
41
      "${ONNXRUNTIME_ROOT}/core/optimizer/selectors_actions/helpers.cc"
42
      "${ONNXRUNTIME_ROOT}/core/optimizer/selectors_actions/helpers.h"
43
      "${ONNXRUNTIME_ROOT}/core/optimizer/selectors_actions/helpers.h"
44
      "${ONNXRUNTIME_ROOT}/core/optimizer/selectors_actions/selector_action_transformer_apply_contexts.h"
45
      "${ONNXRUNTIME_ROOT}/core/optimizer/selectors_actions/selector_action_transformer.cc"
46
      "${ONNXRUNTIME_ROOT}/core/optimizer/selectors_actions/selector_action_transformer.h"
47
      # files required for layout transformation
48
      "${ONNXRUNTIME_ROOT}/core/optimizer/layout_transformation/layout_transformation.h"
49
      "${ONNXRUNTIME_ROOT}/core/optimizer/layout_transformation/layout_transformation.cc"
50
      "${ONNXRUNTIME_ROOT}/core/optimizer/layout_transformation/layout_transformation_potentially_added_ops.h"
51
      # files required for transpose optimization post-layout transformation
52
      "${ONNXRUNTIME_ROOT}/core/optimizer/transpose_optimization/optimizer_api.h"
53
      "${ONNXRUNTIME_ROOT}/core/optimizer/transpose_optimization/onnx_transpose_optimization.h"
54
      "${ONNXRUNTIME_ROOT}/core/optimizer/transpose_optimization/onnx_transpose_optimization.cc"
55
      "${ONNXRUNTIME_ROOT}/core/optimizer/transpose_optimization/ort_optimizer_api_impl.cc"
56
      "${ONNXRUNTIME_ROOT}/core/optimizer/transpose_optimization/ort_optimizer_utils.h"
57
      "${ONNXRUNTIME_ROOT}/core/optimizer/transpose_optimization/ort_transpose_optimization.h"
58
      "${ONNXRUNTIME_ROOT}/core/optimizer/transpose_optimization/ort_transpose_optimization.cc"
59
      "${ONNXRUNTIME_ROOT}/core/optimizer/utils.cc"
60
      "${ONNXRUNTIME_ROOT}/core/optimizer/utils.h"
61
    )
62
  endif()
63
else()
64
  list(APPEND onnxruntime_optimizer_src_patterns
65
    "${ONNXRUNTIME_INCLUDE_DIR}/core/optimizer/*.h"
66
    "${ONNXRUNTIME_ROOT}/core/optimizer/*.h"
67
    "${ONNXRUNTIME_ROOT}/core/optimizer/*.cc"
68
    "${ONNXRUNTIME_ROOT}/core/optimizer/compute_optimizer/*.h"
69
    "${ONNXRUNTIME_ROOT}/core/optimizer/compute_optimizer/*.cc"
70
    "${ONNXRUNTIME_ROOT}/core/optimizer/layout_transformation/*.h"
71
    "${ONNXRUNTIME_ROOT}/core/optimizer/layout_transformation/*.cc"
72
    "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/*.h"
73
    "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/*.cc"
74
    "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/selectors_actions/*.h"
75
    "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/selectors_actions/*.cc"
76
    "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/selectors_actions/shared/utils.h"
77
    "${ONNXRUNTIME_ROOT}/core/optimizer/qdq_transformer/selectors_actions/shared/utils.cc"
78
    "${ONNXRUNTIME_ROOT}/core/optimizer/selectors_actions/*.h"
79
    "${ONNXRUNTIME_ROOT}/core/optimizer/selectors_actions/*.cc"
80
    "${ONNXRUNTIME_ROOT}/core/optimizer/transpose_optimization/*.h"
81
    "${ONNXRUNTIME_ROOT}/core/optimizer/transpose_optimization/*.cc"
82
  )
83
endif()
84

85
if (onnxruntime_ENABLE_TRAINING)
86
  list(APPEND onnxruntime_optimizer_src_patterns
87
    "${ORTTRAINING_SOURCE_DIR}/core/optimizer/*.h"
88
    "${ORTTRAINING_SOURCE_DIR}/core/optimizer/*.cc"
89
    "${ORTTRAINING_SOURCE_DIR}/core/optimizer/compute_optimizer/*.h"
90
    "${ORTTRAINING_SOURCE_DIR}/core/optimizer/compute_optimizer/*.cc"
91
    "${ORTTRAINING_SOURCE_DIR}/core/optimizer/memory_optimizer/*.h"
92
    "${ORTTRAINING_SOURCE_DIR}/core/optimizer/memory_optimizer/*.cc"
93
  )
94
endif()
95

96
file(GLOB onnxruntime_optimizer_srcs CONFIGURE_DEPENDS ${onnxruntime_optimizer_src_patterns})
97

98
source_group(TREE ${REPO_ROOT} FILES ${onnxruntime_optimizer_srcs})
99

100
if (onnxruntime_EXTERNAL_TRANSFORMER_SRC_PATH)
101
  set(onnxruntime_external_transformer_src_patterns)
102
  list(APPEND onnxruntime_external_transformer_src_patterns
103
    "${onnxruntime_EXTERNAL_TRANSFORMER_SRC_PATH}/*.cc"
104
    "${onnxruntime_EXTERNAL_TRANSFORMER_SRC_PATH}/*.cpp"
105
  )
106
  file(GLOB onnxruntime_external_transformer_src ${onnxruntime_external_transformer_src_patterns})
107
  list(APPEND onnxruntime_optimizer_srcs ${onnxruntime_external_transformer_src})
108
endif()
109

110
onnxruntime_add_static_library(onnxruntime_optimizer ${onnxruntime_optimizer_srcs})
111

112
onnxruntime_add_include_to_target(onnxruntime_optimizer onnxruntime_common onnxruntime_framework onnx onnx_proto ${PROTOBUF_LIB} flatbuffers::flatbuffers Boost::mp11 safeint_interface)
113
target_include_directories(onnxruntime_optimizer PRIVATE ${ONNXRUNTIME_ROOT})
114
if (onnxruntime_ENABLE_TRAINING)
115
  target_include_directories(onnxruntime_optimizer PRIVATE ${ORTTRAINING_ROOT})
116
  onnxruntime_add_include_to_target(onnxruntime_optimizer nlohmann_json::nlohmann_json)
117
  if (onnxruntime_ENABLE_TRAINING_TORCH_INTEROP)
118
    onnxruntime_add_include_to_target(onnxruntime_optimizer Python::Module)
119
  endif()
120
endif()
121
if (onnxruntime_ENABLE_TRITON)
122
  target_link_libraries(onnxruntime_optimizer PRIVATE nlohmann_json::nlohmann_json)
123
  onnxruntime_add_include_to_target(onnxruntime_optimizer Python::Module)
124
endif()
125
add_dependencies(onnxruntime_optimizer ${onnxruntime_EXTERNAL_DEPENDENCIES})
126
set_target_properties(onnxruntime_optimizer PROPERTIES FOLDER "ONNXRuntime")
127

128
if (NOT onnxruntime_BUILD_SHARED_LIB)
129
  install(DIRECTORY ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/optimizer  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/core)
130
  install(TARGETS onnxruntime_optimizer
131
            ARCHIVE   DESTINATION ${CMAKE_INSTALL_LIBDIR}
132
            LIBRARY   DESTINATION ${CMAKE_INSTALL_LIBDIR}
133
            RUNTIME   DESTINATION ${CMAKE_INSTALL_BINDIR}
134
            FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR})
135
endif()
136

137
if (onnxruntime_USE_ROCM)
138
  add_dependencies(onnxruntime_optimizer generate_hipified_files)
139
endif()
140

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.