|
2 | 2 | # Licensed under the MIT License. |
3 | 3 |
|
4 | 4 | add_definitions(-DUSE_MIGRAPHX=1) |
5 | | - set(BUILD_LIBRARY_ONLY 1) |
6 | | - add_definitions("-DONNX_ML=1") |
7 | | - add_definitions("-DONNX_NAMESPACE=onnx") |
8 | | - include_directories(${protobuf_SOURCE_DIR} ${eigen_SOURCE_DIR}) |
9 | | - set(MIGRAPHX_ROOT ${onnxruntime_MIGRAPHX_HOME}) |
10 | | - include_directories(${onnx_SOURCE_DIR}) |
| 5 | + include_directories(${protobuf_SOURCE_DIR} ${eigen_SOURCE_DIR} ${onnx_SOURCE_DIR}) |
11 | 6 | set(OLD_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) |
12 | | - if ( CMAKE_COMPILER_IS_GNUCC ) |
| 7 | + if (CMAKE_COMPILER_IS_GNUCC) |
13 | 8 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter -Wno-missing-field-initializers") |
14 | 9 | endif() |
15 | | - set(CXX_VERSION_DEFINED TRUE) |
16 | | - set(CMAKE_CXX_FLAGS ${OLD_CMAKE_CXX_FLAGS}) |
17 | | - if ( CMAKE_COMPILER_IS_GNUCC ) |
18 | | - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter") |
19 | | - endif() |
20 | 10 |
|
21 | 11 | # Add search paths for default rocm installation |
22 | 12 | list(APPEND CMAKE_PREFIX_PATH /opt/rocm/hcc /opt/rocm/hip /opt/rocm $ENV{HIP_PATH}) |
|
33 | 23 | find_package(hip REQUIRED) |
34 | 24 | find_package(migraphx REQUIRED PATHS ${AMD_MIGRAPHX_HOME}) |
35 | 25 |
|
36 | | - set(migraphx_libs migraphx::c hip::host) |
37 | | - |
38 | 26 | file(GLOB_RECURSE onnxruntime_providers_migraphx_cc_srcs CONFIGURE_DEPENDS |
39 | 27 | "${ONNXRUNTIME_ROOT}/core/providers/migraphx/*.h" |
40 | 28 | "${ONNXRUNTIME_ROOT}/core/providers/migraphx/*.cc" |
41 | 29 | "${ONNXRUNTIME_ROOT}/core/providers/shared_library/*.h" |
42 | 30 | "${ONNXRUNTIME_ROOT}/core/providers/shared_library/*.cc" |
43 | 31 | ) |
44 | 32 | source_group(TREE ${ONNXRUNTIME_ROOT}/core FILES ${onnxruntime_providers_migraphx_cc_srcs}) |
45 | | - onnxruntime_add_shared_library_module(onnxruntime_providers_migraphx ${onnxruntime_providers_migraphx_cc_srcs}) |
| 33 | + onnxruntime_add_shared_library(onnxruntime_providers_migraphx ${onnxruntime_providers_migraphx_cc_srcs}) |
46 | 34 | onnxruntime_add_include_to_target(onnxruntime_providers_migraphx onnxruntime_common onnx flatbuffers::flatbuffers Boost::mp11 safeint_interface) |
47 | | - add_dependencies(onnxruntime_providers_migraphx onnxruntime_providers_shared ${onnxruntime_EXTERNAL_DEPENDENCIES}) |
48 | | - target_link_libraries(onnxruntime_providers_migraphx PRIVATE ${migraphx_libs} ${ONNXRUNTIME_PROVIDERS_SHARED} onnx flatbuffers::flatbuffers Boost::mp11 safeint_interface) |
49 | | - target_include_directories(onnxruntime_providers_migraphx PRIVATE ${ONNXRUNTIME_ROOT} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/amdgpu/onnxruntime) |
| 35 | + add_dependencies(onnxruntime_providers_migraphx ${onnxruntime_EXTERNAL_DEPENDENCIES}) |
| 36 | + target_link_libraries(onnxruntime_providers_migraphx PRIVATE migraphx::c hip::host ${ONNXRUNTIME_PROVIDERS_SHARED} onnx flatbuffers::flatbuffers Boost::mp11 safeint_interface) |
| 37 | + target_include_directories(onnxruntime_providers_migraphx PRIVATE ${ONNXRUNTIME_ROOT} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/migraphx/onnxruntime) |
50 | 38 | set_target_properties(onnxruntime_providers_migraphx PROPERTIES LINKER_LANGUAGE CXX) |
51 | 39 | set_target_properties(onnxruntime_providers_migraphx PROPERTIES FOLDER "ONNXRuntime") |
52 | | - target_compile_definitions(onnxruntime_providers_migraphx PRIVATE ONNXIFI_BUILD_LIBRARY=1) |
| 40 | + target_compile_definitions(onnxruntime_providers_migraphx PRIVATE ONNXIFI_BUILD_LIBRARY=1 ONNX_ML=1 ONNX_NAMESPACE=onnx) |
53 | 41 | if(MSVC) |
54 | 42 | set_property(TARGET onnxruntime_providers_migraphx APPEND_STRING PROPERTY LINK_FLAGS /DEF:${ONNXRUNTIME_ROOT}/core/providers/migraphx/symbols.def) |
55 | 43 | target_link_libraries(onnxruntime_providers_migraphx PRIVATE ws2_32) |
|
62 | 50 | target_link_libraries(onnxruntime_providers_migraphx PRIVATE stdc++fs) |
63 | 51 | endif() |
64 | 52 |
|
| 53 | + set(CMAKE_REQUIRED_LIBRARIES migraphx::c) |
| 54 | + |
| 55 | + check_symbol_exists(migraphx_onnx_options_set_external_data_path |
| 56 | + "migraphx/migraphx.h" HAVE_MIGRAPHX_API_ONNX_OPTIONS_SET_EXTERNAL_DATA_PATH) |
| 57 | + |
| 58 | + if(HAVE_MIGRAPHX_API_ONNX_OPTIONS_SET_EXTERNAL_DATA_PATH) |
| 59 | + target_compile_definitions(onnxruntime_providers_migraphx PRIVATE HAVE_MIGRAPHX_API_ONNX_OPTIONS_SET_EXTERNAL_DATA_PATH=1) |
| 60 | + endif() |
| 61 | + |
65 | 62 | if (onnxruntime_ENABLE_TRAINING_OPS) |
66 | 63 | onnxruntime_add_include_to_target(onnxruntime_providers_migraphx onnxruntime_training) |
67 | 64 | target_link_libraries(onnxruntime_providers_migraphx PRIVATE onnxruntime_training) |
|
71 | 68 | endif() |
72 | 69 |
|
73 | 70 | if(CMAKE_SYSTEM_NAME STREQUAL "Windows") |
74 | | - install(TARGETS onnxruntime_providers_migraphx |
75 | | - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} |
76 | | - LIBRARY DESTINATION ${CMAKE_INSTALL_BINDIR} |
77 | | - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} |
78 | | - ) |
79 | | - else() |
80 | | - install(TARGETS onnxruntime_providers_migraphx |
81 | | - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} |
82 | | - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
83 | | - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} |
84 | | - ) |
| 71 | + foreach(file migraphx-hiprtc-driver.exe migraphx.dll migraphx_c.dll migraphx_cpu.dll migraphx_device.dll migraphx_gpu.dll migraphx_onnx.dll migraphx_tf.dll) |
| 72 | + set(_source "${AMD_MIGRAPHX_HOME}/bin/${file}") |
| 73 | + if(EXISTS "${_source}") |
| 74 | + add_custom_command(TARGET onnxruntime_providers_migraphx |
| 75 | + POST_BUILD |
| 76 | + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${_source} $<TARGET_FILE_DIR:onnxruntime_providers_migraphx>) |
| 77 | + set(_target "$<TARGET_FILE_DIR:onnxruntime_providers_migraphx>/${file}") |
| 78 | + list(APPEND _migraphx_targets ${_target}) |
| 79 | + endif() |
| 80 | + endforeach() |
| 81 | + set(MIGRAPHX_LIB_FILES ${_migraphx_targets} CACHE INTERNAL "" FORCE) |
| 82 | + install(FILES ${_migraphx_targets} |
| 83 | + DESTINATION ${CMAKE_INSTALL_BINDIR}) |
| 84 | + get_property(_amdhip64_location TARGET hip::amdhip64 PROPERTY IMPORTED_LOCATION_RELEASE) |
| 85 | + cmake_path(GET _amdhip64_location PARENT_PATH _hipsdk_path) |
| 86 | + foreach(file amd_comgr0602.dll amd_comgr0604.dll amd_comgr0700.dll hiprtc0602.dll hiprtc0604.dll hiprtc0700.dll hiprtc-builtins0602.dll hiprtc-builtins0604.dll hiprtc-builtins0700.dll) |
| 87 | + set(_source "${_hipsdk_path}/${file}") |
| 88 | + if(EXISTS "${_source}") |
| 89 | + add_custom_command(TARGET onnxruntime_providers_migraphx |
| 90 | + POST_BUILD |
| 91 | + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${_source} $<TARGET_FILE_DIR:onnxruntime_providers_migraphx>) |
| 92 | + set(_target "$<TARGET_FILE_DIR:onnxruntime_providers_migraphx>/${file}") |
| 93 | + list(APPEND _hipsdk_targets ${_target}) |
| 94 | + endif() |
| 95 | + endforeach() |
| 96 | + set(HIPSDK_LIB_FILES ${_hipsdk_targets} CACHE INTERNAL "" FORCE) |
| 97 | + install(FILES ${_hipsdk_targets} |
| 98 | + DESTINATION ${CMAKE_INSTALL_BINDIR}) |
85 | 99 | endif() |
| 100 | + |
| 101 | + install(TARGETS onnxruntime_providers_migraphx |
| 102 | + EXPORT onnxruntime_providers_migraphxTargets |
| 103 | + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| 104 | + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| 105 | + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} |
| 106 | + FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) |
0 commit comments