CMakeLists.txt 1.93 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
set(MIGRAPHX_ENABLE_ZENDNN Off CACHE BOOL "")

Paul's avatar
Paul committed
36
find_package(Threads)
37
38
39
40
41
42
43
44

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
45

Paul's avatar
Paul committed
46
rocm_clang_tidy_check(migraphx_cpu)
47
48
49
50
51
52
53
54
55
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()
56
target_link_libraries(migraphx_cpu PRIVATE migraphx Threads::Threads)
57

58
59
60
61
62
63
64
65
66
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
67

68
69
target_link_libraries(migraphx_all_targets INTERFACE migraphx_cpu)

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