• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1add_subdirectory(perf EXCLUDE_FROM_ALL)
2include_directories("${CMAKE_BINARY_DIR}/minddata/dataset/engine/cache")
3set(MD_FLATBUFFER_OU "${CMAKE_BINARY_DIR}/minddata/dataset/engine/cache")
4set(FBS_FILES de_tensor.fbs)
5ms_build_flatbuffers(FBS_FILES ${CMAKE_CURRENT_SOURCE_DIR} generated_engine_files ${MD_FLATBUFFER_OU})
6
7file(GLOB_RECURSE _CURRENT_SRC_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cc")
8set_property(SOURCE ${_CURRENT_SRC_FILES} PROPERTY COMPILE_DEFINITIONS SUBMODULE_ID=mindspore::SubModuleId::SM_MD)
9
10if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
11  # Try to find numa header file and its library
12  FIND_PATH(NUMA_INCLUDE_DIR numa.h)
13  MESSAGE("Numa include dir is: ${NUMA_INCLUDE_DIR}")
14
15  FIND_LIBRARY(NUMA_LIBRARY NAMES libnuma.so)
16  MESSAGE("Numa library is: ${NUMA_LIBRARY}")
17
18  FIND_PACKAGE_HANDLE_STANDARD_ARGS(NUMA DEFAULT_MSG
19          NUMA_INCLUDE_DIR
20          NUMA_LIBRARY
21          )
22  if(NUMA_FOUND)
23    ADD_DEFINITIONS(-DNUMA_ENABLED)
24    MESSAGE("Numa package found")
25  else()
26    MESSAGE(FATAL_ERROR
27            "Numa package not found, try 'sudo yum install numactl-devel' or 'sudo apt-get install libnuma-dev'")
28  endif()
29endif()
30
31if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
32  ADD_DEFINITIONS(-DCACHE_LOCAL_CLIENT)
33endif()
34
35add_library(engine-cache-client OBJECT
36    cache_client.cc
37    cache_fbb.cc
38    cache_request.cc)
39
40if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
41    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-delete-abstract-non-virtual-dtor")
42else()
43    # add python lib dir to rpath
44    if(NOT MSVC)
45      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-rpath,$ORIGIN:$ORIGIN/..:$ORIGIN/../lib")
46    endif()
47endif()
48if(NOT MSVC)
49set(CMAKE_CXX_FLAGS "-fPIE ${CMAKE_CXX_FLAGS}")
50endif()
51
52if(ENABLE_CACHE)
53  ms_grpc_generate(CACHE_GRPC_SRCS CACHE_GRPC_HDRS cache_grpc.proto)
54  target_sources(engine-cache-client PUBLIC ${CACHE_GRPC_SRCS}
55      cache_grpc_client.cc
56      cache_ipc.cc)
57
58  add_library(engine-cache-server OBJECT
59      ${CACHE_GRPC_SRCS}
60      cache_grpc_server.cc
61      cache_arena.cc
62      cache_hw.cc
63      cache_numa.cc
64      cache_pool.cc
65      cache_service.cc
66      cache_server.cc
67      storage_manager.cc
68      storage_container.cc)
69
70  if(ENABLE_ASAN)
71      target_compile_options(engine-cache-server PRIVATE -fsanitize=address)
72      target_compile_options(engine-cache-server PRIVATE -fno-omit-frame-pointer)
73      target_compile_options(engine-cache-server PRIVATE -ggdb)
74      set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
75  endif()
76
77  add_executable(cache_server cache_main.cc)
78  target_link_libraries(cache_server
79      engine-cache-server
80      _c_dataengine
81      _c_mindrecord
82      mindspore_core
83      mindspore::protobuf
84      ${PYTHON_LIBRARIES}
85      ${SECUREC_LIBRARY}
86      pthread
87      -ldl)
88  if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
89    target_link_libraries(cache_server mindspore::grpc++)
90  else()
91    target_link_libraries(cache_server
92        -Wl,--no-as-needed
93        mindspore::grpc++
94        -Wl,--as-needed)
95  endif()
96
97  if(USE_GLOG)
98    target_link_libraries(cache_server mindspore::glog)
99  endif()
100
101  if(NUMA_FOUND)
102    target_link_libraries(cache_server numa)
103  endif()
104
105  add_executable(cache_admin cache_admin.cc cache_admin_arg.cc)
106  target_link_libraries(cache_admin _c_dataengine _c_mindrecord ${PYTHON_LIBRARIES} pthread -ldl)
107  if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
108    target_link_libraries(cache_admin mindspore::protobuf mindspore_core mindspore_shared_lib)
109  else()
110    target_link_libraries(cache_admin
111        -Wl,--start-group mindspore::protobuf mindspore_core mindspore_shared_lib -Wl,--end-group)
112  endif()
113
114  if(USE_GLOG)
115    target_link_libraries(cache_admin mindspore::glog)
116  endif()
117
118  add_dependencies(engine-cache-server generated_engine_files)
119
120  set_target_properties(cache_admin PROPERTIES INSTALL_RPATH ${ORIGIN_PATH}/..:${ORIGIN_PATH}/../lib)
121  set_target_properties(cache_server PROPERTIES INSTALL_RPATH ${ORIGIN_PATH}/..:${ORIGIN_PATH}/../lib)
122else()
123  ms_protobuf_generate(CACHE_PROTO_SRCS CACHE_PROTO_HDRS cache_grpc.proto)
124  target_sources(engine-cache-client PUBLIC ${CACHE_PROTO_SRCS})
125endif()
126
127add_dependencies(engine-cache-client generated_engine_files)
128if(MSLITE_ENABLE_CLOUD_MIND_DATA)
129  add_dependencies(engine-cache-client fbs_src)
130endif()
131