Browse Source

!11359 fix: enhance rpath link for minddata lib and execute

From: @jonyguo
Reviewed-by: @liucunwei,@heleiwang
Signed-off-by: @liucunwei
tags/v1.2.0-rc1
mindspore-ci-bot Gitee 5 years ago
parent
commit
70e38fbbf6
3 changed files with 111 additions and 93 deletions
  1. +75
    -69
      mindspore/ccsrc/minddata/dataset/CMakeLists.txt
  2. +26
    -17
      mindspore/ccsrc/minddata/dataset/engine/cache/CMakeLists.txt
  3. +10
    -7
      mindspore/ccsrc/minddata/mindrecord/CMakeLists.txt

+ 75
- 69
mindspore/ccsrc/minddata/dataset/CMakeLists.txt View File

@@ -2,8 +2,10 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-sign-compare")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reorder")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch")

if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-uninitialized -Wno-deprecated-declarations -Wno-delete-non-abstract-non-virtual-dtor -Wno-constant-conversion -Wno-unknown-warning-option")
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-uninitialized -Wno-deprecated-declarations
-Wno-delete-non-abstract-non-virtual-dtor
-Wno-constant-conversion -Wno-unknown-warning-option")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-maybe-uninitialized")
endif()
@@ -14,33 +16,33 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-format")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes")

############################# Options ################################
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
add_definitions(-D _CRT_RAND_S)
endif ()
if (ENABLE_ACL)
endif()
if(ENABLE_ACL)
add_definitions(-D ENABLE_ACL)
message(STATUS "ACL module is enabled")
endif ()
if (ENABLE_GPUQUE)
endif()
if(ENABLE_GPUQUE)
add_definitions(-D ENABLE_GPUQUE)
message(STATUS "GPU queue is enabled")
endif ()
if (ENABLE_TDTQUE)
endif()
if(ENABLE_TDTQUE)
add_definitions(-D ENABLE_TDTQUE)
message(STATUS "TDT queue is enabled")
endif ()
if (MS_BUILD_GRPC)
set (ENABLE_CACHE true)
endif()
if(MS_BUILD_GRPC)
set(ENABLE_CACHE true)
add_definitions(-D ENABLE_CACHE)
message(STATUS "Cache is enabled")
endif()

# conde coverage
# option(ENABLE_COVERAGE "Enable code coverage report" OFF)
# if (ENABLE_COVERAGE)
# if(ENABLE_COVERAGE)
# include(${CMAKE_SOURCE_DIR}/cmake/CodeCoverage.cmake)
# append_coverage_compiler_flags()
# endif ()
# endif()

########### Set up the include directories ###########################
include_directories(${CMAKE_SOURCE_DIR}/mindspore/ccsrc)
@@ -59,9 +61,9 @@ include_directories(${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/kernels
# compile flags
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=default")

if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-delete-abstract-non-virtual-dtor")
else ()
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-rpath,$ORIGIN:$ORIGIN/lib")
endif()

@@ -95,17 +97,17 @@ add_dependencies(engine-ir-datasetops core)
add_dependencies(engine-ir-datasetops-source core)
add_dependencies(engine-ir-cache core)

if (ENABLE_ACL)
if(ENABLE_ACL)
add_dependencies(kernels-dvpp-image core dvpp-utils)
endif ()
endif()

if (ENABLE_PYTHON)
if(ENABLE_PYTHON)
add_dependencies(APItoPython core)
endif ()
if (ENABLE_TDTQUE)
endif()
if(ENABLE_TDTQUE)
add_dependencies(engine-tdt core)
endif ()
if (ENABLE_CACHE)
endif()
if(ENABLE_CACHE)
add_dependencies(APItoPython engine-cache-client)
add_dependencies(cpp-API engine-cache-client)
add_dependencies(engine-ir-cache engine-cache-client)
@@ -114,7 +116,7 @@ if (ENABLE_CACHE)
add_dependencies(engine-datasetops engine-cache-client)
add_dependencies(engine-cache-client core)
add_dependencies(engine-cache-server core)
endif ()
endif()
################### Create _c_dataengine Library ######################
set(submodules
$<TARGET_OBJECTS:core>
@@ -143,42 +145,42 @@ set(submodules
$<TARGET_OBJECTS:text-kernels>
)

if (ENABLE_ACL)
if(ENABLE_ACL)
set(submodules
${submodules}
$<TARGET_OBJECTS:kernels-dvpp-image>
$<TARGET_OBJECTS:dvpp-utils>)
endif ()
endif()

if (ENABLE_PYTHON)
if(ENABLE_PYTHON)
set(submodules
${submodules}
$<TARGET_OBJECTS:APItoPython>)
endif ()
endif()

if (ENABLE_TDTQUE)
if(ENABLE_TDTQUE)
add_library(_c_dataengine SHARED ${submodules} $<TARGET_OBJECTS:engine-tdt>)
else ()
else()
add_library(_c_dataengine SHARED ${submodules})
endif ()
endif()

if (ENABLE_PYTHON)
if(ENABLE_PYTHON)
set_target_properties(_c_dataengine PROPERTIES
PREFIX "${PYTHON_MODULE_PREFIX}"
SUFFIX "${PYTHON_MODULE_EXTENSION}"
)
endif ()
endif()

######################################################################

################# Link with external libraries ########################
target_link_libraries(_c_dataengine PRIVATE mindspore mindspore_gvar)

if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
set(CMAKE_MACOSX_RPATH 1)
set(CMAKE_INSTALL_RPATH "@loader_path/lib;@loader_path")
set_target_properties(_c_dataengine PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_RPATH}")
endif ()
endif()

set(targetso $<TARGET_FILE:_c_dataengine>)
set(target_tiny "libtinyxml")
@@ -225,7 +227,7 @@ function(changerpath targetso linkso)
COMMENT "install tool name")
endfunction()

if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
changerpath(${targetso} ${target_tiny})
changerpath(${targetso} ${target_icuuc})
add_dependencies(link_${target_icuuc} link_${target_tiny})
@@ -235,70 +237,74 @@ if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
add_dependencies(link_${target_icui18n} link_${target_icudata})
endif()

if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
if (ENABLE_PYTHON)
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
if(ENABLE_PYTHON)
target_link_libraries(_c_dataengine PRIVATE mindspore::pybind11_module ${PYTHON_LIBRARIES} ${SECUREC_LIBRARY})
else ()
else()
target_link_libraries(_c_dataengine PRIVATE ${SECUREC_LIBRARY})
endif ()
else ()
endif()
else()
set(ICU_LIB mindspore::icuuc mindspore::icudata mindspore::icui18n)
if (ENABLE_PYTHON)
if(ENABLE_PYTHON)
target_link_libraries(_c_dataengine PRIVATE mindspore::pybind11_module -ldl ${SECUREC_LIBRARY})
else ()
else()
target_link_libraries(_c_dataengine PRIVATE -ldl ${SECUREC_LIBRARY})
endif ()
endif()
target_link_libraries(_c_dataengine PUBLIC mindspore::sentencepiece)
endif()

target_link_libraries(_c_dataengine PUBLIC mindspore::jpeg_turbo mindspore::turbojpeg mindspore::opencv_core mindspore::opencv_imgcodecs
mindspore::opencv_imgproc mindspore::tinyxml2 mindspore::sentencepiece_train ${ICU_LIB})
if (ENABLE_GPUQUE)
target_link_libraries(_c_dataengine PUBLIC mindspore::jpeg_turbo mindspore::turbojpeg mindspore::opencv_core
mindspore::opencv_imgcodecs mindspore::opencv_imgproc mindspore::tinyxml2
mindspore::sentencepiece_train ${ICU_LIB})
if(ENABLE_GPUQUE)
target_link_libraries(_c_dataengine PRIVATE gpu_queue
${CUDNN_LIBRARY_PATH}
${CUDA_PATH}/lib64/libcudart.so
${CUDA_PATH}/lib64/stubs/libcuda.so)
endif ()
endif()

if (ENABLE_TDTQUE)
if(ENABLE_TDTQUE)
target_link_libraries(_c_dataengine PRIVATE ${TSDCLIENT})
endif ()
endif()

add_dependencies(_c_dataengine _c_mindrecord)
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
set(MINDRECORD_LINK_OBJECT ${CMAKE_BINARY_DIR}/mindspore/ccsrc/minddata/mindrecord/CMakeFiles/_c_mindrecord.dir/objects.a)
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
set(MINDRECORD_LINK_OBJECT
${CMAKE_BINARY_DIR}/mindspore/ccsrc/minddata/mindrecord/CMakeFiles/_c_mindrecord.dir/objects.a)
target_link_libraries(_c_dataengine PRIVATE _c_mindrecord ${MINDRECORD_LINK_OBJECT} mindspore::sqlite)
else ()
else()
target_link_libraries(_c_dataengine PRIVATE _c_mindrecord)
if (ENABLE_CPU AND (ENABLE_D OR ENABLE_GPU))
if(ENABLE_CPU AND (ENABLE_D OR ENABLE_GPU))
target_link_libraries(_c_dataengine PRIVATE mindspore::pslite ${zeromq_DIRPATH}/zmq_install/lib/libzmq.a)
if (${ENABLE_IBVERBS} STREQUAL "ON")
if(${ENABLE_IBVERBS} STREQUAL "ON")
target_link_libraries(_c_dataengine PRIVATE ibverbs rdmacm)
endif ()
endif()
target_link_libraries(_c_dataengine PRIVATE ps_cache)
endif ()
endif ()
endif()
endif()

add_dependencies(_c_dataengine mindspore_shared_lib)
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
set(MINDSPORE_LINK_OBJECT ${CMAKE_BINARY_DIR}/mindspore/ccsrc/cxx_api/CMakeFiles/mindspore_shared_lib.dir/objects.a)
target_link_libraries(_c_dataengine PRIVATE mindspore_shared_lib ${MINDSPORE_LINK_OBJECT})
else()
if (ENABLE_ACL)
if(ENABLE_ACL)
target_link_libraries(_c_dataengine PRIVATE mindspore_shared_lib)
endif ()
endif()
endif()

if (USE_GLOG)
if(USE_GLOG)
target_link_libraries(_c_dataengine PRIVATE mindspore::glog)
else ()
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
else()
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
target_link_options(_c_dataengine PRIVATE -Wl,-init,mindspore_log_init)
elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
set_target_properties(_c_dataengine PROPERTIES MACOSX_RPATH ON)
endif ()
endif ()
endif()
endif()

if (MS_BUILD_GRPC)
if(MS_BUILD_GRPC)
target_link_libraries(_c_dataengine PRIVATE mindspore::grpc++)
endif ()
endif()

set_target_properties(_c_dataengine PROPERTIES INSTALL_RPATH ${MINDSPORE_RPATH})

+ 26
- 17
mindspore/ccsrc/minddata/dataset/engine/cache/CMakeLists.txt View File

@@ -6,7 +6,7 @@ ms_build_flatbuffers("de_tensor.fbs" ${CMAKE_CURRENT_SOURCE_DIR} generated_engin
file(GLOB_RECURSE _CURRENT_SRC_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cc")
set_property(SOURCE ${_CURRENT_SRC_FILES} PROPERTY COMPILE_DEFINITIONS SUBMODULE_ID=mindspore::SubModuleId::SM_MD)

if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
# Try to find numa header file and its library
FIND_PATH(NUMA_INCLUDE_DIR numa.h)
MESSAGE("Numa include dir is: ${NUMA_INCLUDE_DIR}")
@@ -18,24 +18,31 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
NUMA_INCLUDE_DIR
NUMA_LIBRARY
)
if (NUMA_FOUND)
if(NUMA_FOUND)
ADD_DEFINITIONS(-DNUMA_ENABLED)
MESSAGE("Numa package found")
else()
MESSAGE(FATAL_ERROR "Numa package not found, try 'sudo yum install numactl-devel' or 'sudo apt-get install libnuma-dev'")
MESSAGE(FATAL_ERROR
"Numa package not found, try 'sudo yum install numactl-devel' or 'sudo apt-get install libnuma-dev'")
endif()
endif ()
endif()

if (NUMA_FOUND)
if(NUMA_FOUND)
ADD_DEFINITIONS(-DCACHE_LOCAL_CLIENT)
endif ()
endif()

add_library(engine-cache-client OBJECT
cache_client.cc
cache_fbb.cc
cache_request.cc)

if (ENABLE_CACHE)
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-delete-abstract-non-virtual-dtor")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-rpath,$ORIGIN:$ORIGIN/lib")
endif()

if(ENABLE_CACHE)
ms_grpc_generate(CACHE_GRPC_SRCS CACHE_GRPC_HDRS cache_grpc.proto)
target_sources(engine-cache-client PUBLIC ${CACHE_GRPC_SRCS}
cache_grpc_client.cc
@@ -53,7 +60,7 @@ if (ENABLE_CACHE)
storage_manager.cc
storage_container.cc)

if (ENABLE_ASAN)
if(ENABLE_ASAN)
target_compile_options(engine-cache-server PRIVATE -fsanitize=address)
target_compile_options(engine-cache-server PRIVATE -fno-omit-frame-pointer)
target_compile_options(engine-cache-server PRIVATE -ggdb)
@@ -61,7 +68,7 @@ if (ENABLE_CACHE)
endif()

add_executable(cache_server cache_main.cc)
if (ENABLE_GPU)
if(ENABLE_GPU)
target_link_libraries(cache_server
engine-cache-server
_c_dataengine
@@ -86,26 +93,28 @@ if (ENABLE_CACHE)
pthread)
endif()

if (USE_GLOG)
if(USE_GLOG)
target_link_libraries(cache_server mindspore::glog)
endif ()
endif()

if (NUMA_FOUND)
if(NUMA_FOUND)
target_link_libraries(cache_server numa)
endif ()
endif()

add_executable(cache_admin cache_admin.cc cache_admin_arg.cc)
target_link_libraries(cache_admin _c_dataengine _c_mindrecord mindspore::protobuf ${PYTHON_LIBRARIES} pthread)

if (USE_GLOG)
if(USE_GLOG)
target_link_libraries(cache_admin mindspore::glog)
endif ()
endif()

add_dependencies(engine-cache-server generated_engine_files)

else ()
set_target_properties(cache_admin PROPERTIES INSTALL_RPATH ${MINDSPORE_RPATH})
set_target_properties(cache_server PROPERTIES INSTALL_RPATH ${MINDSPORE_RPATH})
else()
ms_protobuf_generate(CACHE_PROTO_SRCS CACHE_PROTO_HDRS cache_grpc.proto)
target_sources(engine-cache-client PUBLIC ${CACHE_PROTO_SRCS})
endif ()
endif()

add_dependencies(engine-cache-client generated_engine_files)

+ 10
- 7
mindspore/ccsrc/minddata/mindrecord/CMakeLists.txt View File

@@ -10,7 +10,7 @@ aux_source_directory(common DIR_LIB_SRCS)

# set(CMAKE_CXX_COMPILER "g++")
# set(CMAKE_CXX_FLAGS "-Wall -fvisibility=hidden")
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-command-line-argument")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-rpath,$ORIGIN:$ORIGIN/lib")
@@ -31,18 +31,21 @@ set_target_properties(_c_mindrecord PROPERTIES
)

# add link library
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
target_link_libraries(_c_mindrecord PRIVATE mindspore::sqlite mindspore mindspore_gvar mindspore::protobuf)
else()
target_link_libraries(_c_mindrecord PRIVATE mindspore::sqlite ${PYTHON_LIB} ${SECUREC_LIBRARY} mindspore mindspore_gvar mindspore::protobuf)
target_link_libraries(_c_mindrecord PRIVATE mindspore::sqlite ${PYTHON_LIB} ${SECUREC_LIBRARY} mindspore
mindspore_gvar mindspore::protobuf)
endif()

if (USE_GLOG)
if(USE_GLOG)
target_link_libraries(_c_mindrecord PRIVATE mindspore::glog)
else()
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
target_link_options(_c_mindrecord PRIVATE -Wl,-init,mindspore_log_init)
elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
set_target_properties(_c_mindrecord PROPERTIES MACOSX_RPATH ON)
endif ()
endif()
endif()

set_target_properties(_c_mindrecord PROPERTIES INSTALL_RPATH ${MINDSPORE_RPATH})

Loading…
Cancel
Save