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