CMakeLists.txt 1.89 KB
Newer Older
Paul's avatar
Paul committed
1

2
3
include(CheckCXXCompilerFlag)

Paul's avatar
Paul committed
4
add_library(migraphx_cpu
5
    allocate.cpp
6
7
    allocation_model.cpp
    binary.cpp
8
9
10
    concat.cpp
    convolution.cpp
    copy.cpp
11
12
13
14
    deconvolution.cpp
    dnnl.cpp
    eltwise.cpp
    erf.cpp
15
    fuse_ops.cpp
16
    gather.cpp
17
    gemm.cpp
18
    layernorm.cpp
19
    logsoftmax.cpp
Shucai Xiao's avatar
Shucai Xiao committed
20
    lowering.cpp
21
    lrn.cpp
22
    preallocate.cpp
23
24
25
26
27
28
29
    pooling.cpp
    reduction.cpp
    reorder.cpp
    softmax.cpp
    sub.cpp
    target.cpp
    write_literals.cpp
Paul's avatar
Paul committed
30
)
Paul's avatar
Paul committed
31
set_target_properties(migraphx_cpu PROPERTIES EXPORT_NAME cpu)
Paul's avatar
Paul committed
32
rocm_set_soversion(migraphx_cpu ${MIGRAPHX_SO_VERSION})
Paul's avatar
Paul committed
33

34
35
36
37
38
39
40
41
42
set(MIGRAPHX_ENABLE_ZENDNN Off CACHE BOOL "")

if(MIGRAPHX_ENABLE_ZENDNN)
    find_path(ZENDNN_INC_PATH zendnn.hpp)
    find_library(ZENDNN_LIB amdZenDNN)
    find_library(BLIS_LIB blis)
else()
    find_package(dnnl REQUIRED)
endif()
Paul's avatar
Paul committed
43

Paul's avatar
Paul committed
44
rocm_clang_tidy_check(migraphx_cpu)
45
46
47
48
49
50
51
52
53
if(MIGRAPHX_ENABLE_ZENDNN)
    target_compile_definitions(migraphx_cpu PRIVATE -DMIGRAPHX_ENABLE_ZENDNN)
    target_include_directories(migraphx_cpu PRIVATE ${ZENDNN_INC_PATH})
    message(STATUS "ZENDNN_LIB: ${ZENDNN_LIB}")
    target_link_libraries(migraphx_cpu PRIVATE ${BLIS_LIB})
    target_link_libraries(migraphx_cpu PRIVATE ${ZENDNN_LIB})
else()
    target_link_libraries(migraphx_cpu PRIVATE DNNL::dnnl)
endif()
54
target_link_libraries(migraphx_cpu PRIVATE migraphx)
55

56
57
58
59
60
61
62
63
64
find_package(OpenMP)
target_link_libraries(migraphx_cpu PUBLIC OpenMP::OpenMP_CXX)
# Add library path to rpath to workaround issues with our broken packages
foreach(LIBRARY ${OpenMP_CXX_LIBRARIES})
    if(LIBRARY MATCHES "libomp")
        get_filename_component(LIBRARY_PATH "${LIBRARY}" PATH)
        target_link_libraries(migraphx_cpu PUBLIC -Wl,-rpath=${LIBRARY_PATH} -Wl,-rpath-link=${LIBRARY_PATH})
    endif()
endforeach()
mei-ye's avatar
mei-ye committed
65

66
67
target_link_libraries(migraphx_all_targets INTERFACE migraphx_cpu)

Paul's avatar
Paul committed
68
rocm_install_targets(
Paul's avatar
Paul committed
69
  TARGETS migraphx_cpu
Paul's avatar
Paul committed
70
71
72
  INCLUDE
    ${CMAKE_CURRENT_SOURCE_DIR}/include
)
mei-ye's avatar
mei-ye committed
73