onnxruntime

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

4
  file(GLOB_RECURSE onnxruntime_providers_dnnl_cc_srcs CONFIGURE_DEPENDS
5
    "${ONNXRUNTIME_ROOT}/core/providers/dnnl/*.h"
6
    "${ONNXRUNTIME_ROOT}/core/providers/dnnl/*.cc"
7
    "${ONNXRUNTIME_ROOT}/core/providers/shared_library/*.h"
8
    "${ONNXRUNTIME_ROOT}/core/providers/shared_library/*.cc"
9
  )
10

11
  source_group(TREE ${ONNXRUNTIME_ROOT}/core FILES ${onnxruntime_providers_dnnl_cc_srcs})
12
  onnxruntime_add_shared_library_module(onnxruntime_providers_dnnl ${onnxruntime_providers_dnnl_cc_srcs})
13
  target_link_directories(onnxruntime_providers_dnnl PRIVATE ${DNNL_LIB_DIR})
14
  if (MSVC AND onnxruntime_ENABLE_STATIC_ANALYSIS)
15
    # dnnl_convgrad.cc(47,0): Warning C6262: Function uses '38816' bytes of stack:  exceeds /analyze:stacksize '16384'.  Consider moving some data to heap.
16
    target_compile_options(onnxruntime_providers_dnnl PRIVATE  "/analyze:stacksize 131072")
17
  endif()
18

19
  add_dependencies(onnxruntime_providers_dnnl onnxruntime_providers_shared project_dnnl ${onnxruntime_EXTERNAL_DEPENDENCIES})
20
  target_include_directories(onnxruntime_providers_dnnl PRIVATE ${ONNXRUNTIME_ROOT} ${eigen_INCLUDE_DIRS} ${DNNL_INCLUDE_DIR} ${DNNL_OCL_INCLUDE_DIR})
21
  # ${CMAKE_CURRENT_BINARY_DIR} is so that #include "onnxruntime_config.h" inside tensor_shape.h is found
22
  target_link_libraries(onnxruntime_providers_dnnl PRIVATE dnnl ${ONNXRUNTIME_PROVIDERS_SHARED} Boost::mp11 ${ABSEIL_LIBS} ${GSL_TARGET} safeint_interface)
23
  install(FILES ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/providers/dnnl/dnnl_provider_options.h
24
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/)
25
  set_target_properties(onnxruntime_providers_dnnl PROPERTIES FOLDER "ONNXRuntime")
26
  set_target_properties(onnxruntime_providers_dnnl PROPERTIES LINKER_LANGUAGE CXX)
27

28
  # Needed for the provider interface, as it includes training headers when training is enabled
29
  if (onnxruntime_ENABLE_TRAINING_OPS)
30
    target_include_directories(onnxruntime_providers_dnnl PRIVATE ${ORTTRAINING_ROOT})
31
  endif()
32

33
  # Needed for threadpool handling
34
  if(onnxruntime_BUILD_JAVA)
35
    add_compile_definitions(DNNL_JAVA)
36
  endif()
37

38
  if(APPLE)
39
    set_property(TARGET onnxruntime_providers_dnnl APPEND_STRING PROPERTY LINK_FLAGS "-Xlinker -exported_symbols_list ${ONNXRUNTIME_ROOT}/core/providers/dnnl/exported_symbols.lst")
40
    set_target_properties(onnxruntime_providers_dnnl PROPERTIES
41
      INSTALL_RPATH "@loader_path"
42
      BUILD_WITH_INSTALL_RPATH TRUE
43
      INSTALL_RPATH_USE_LINK_PATH FALSE)
44
    target_link_libraries(onnxruntime_providers_dnnl PRIVATE nsync::nsync_cpp)
45
  elseif(UNIX)
46
    set_property(TARGET onnxruntime_providers_dnnl APPEND_STRING PROPERTY LINK_FLAGS "-Xlinker --version-script=${ONNXRUNTIME_ROOT}/core/providers/dnnl/version_script.lds -Xlinker --gc-sections -Xlinker -rpath=\$ORIGIN")
47
    target_link_libraries(onnxruntime_providers_dnnl PRIVATE nsync::nsync_cpp)
48
  elseif(WIN32)
49
    set_property(TARGET onnxruntime_providers_dnnl APPEND_STRING PROPERTY LINK_FLAGS "-DEF:${ONNXRUNTIME_ROOT}/core/providers/dnnl/symbols.def")
50
  else()
51
    message(FATAL_ERROR "onnxruntime_providers_dnnl unknown platform, need to specify shared library exports for it")
52
  endif()
53

54
  install(TARGETS onnxruntime_providers_dnnl
55
          ARCHIVE  DESTINATION ${CMAKE_INSTALL_LIBDIR}
56
          LIBRARY  DESTINATION ${CMAKE_INSTALL_LIBDIR}
57
          RUNTIME  DESTINATION ${CMAKE_INSTALL_BINDIR})

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

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

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

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