You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@singa.apache.org by wa...@apache.org on 2016/10/25 08:43:40 UTC
[4/6] incubator-singa git commit: SINGA-255 Compile mandatory
depedent libaries together with SINGA code
SINGA-255 Compile mandatory depedent libaries together with SINGA code
Add git tag and remove some options.
Project: http://git-wip-us.apache.org/repos/asf/incubator-singa/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-singa/commit/47e38c87
Tree: http://git-wip-us.apache.org/repos/asf/incubator-singa/tree/47e38c87
Diff: http://git-wip-us.apache.org/repos/asf/incubator-singa/diff/47e38c87
Branch: refs/heads/master
Commit: 47e38c87c574f012b6aa5238c5e7a06a6bdf348e
Parents: a98446f
Author: xiezl <xi...@comp.nus.edu.sg>
Authored: Mon Oct 24 13:45:10 2016 +0800
Committer: xiezl <xi...@comp.nus.edu.sg>
Committed: Tue Oct 25 14:52:34 2016 +0800
----------------------------------------------------------------------
CMakeLists.txt | 59 +++++++++++++++++-----------------------
cmake/Dependencies.cmake | 63 +++++++++++++++++++++++--------------------
2 files changed, 58 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/47e38c87/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f67c7af..58244c7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,7 +20,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(singa)
SET(PACKAGE_VERSION "1.0.0")
-MESSAGE(STATUS "CMAKE paths: ${CMAKE_PREFIX_PATH} test ${CMAKE_SYSTEM_PREFIX_PATH}")
LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Thirdparty)
#message(STATUS "module path: ${CMAKE_MODULE_PATH}")
@@ -34,7 +33,7 @@ IF(WIN32)
IF (MSVC)
MESSAGE(STATUS "Using msvc compiler")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D_SCL_SECURE_NO_WARNINGS")
- MESSAGE(STATUS "Using msvc compiler ${CMAKE_CXX_FLAGS}")
+ #MESSAGE(STATUS "Using msvc compiler ${CMAKE_CXX_FLAGS}")
ENDIF()
ENDIF()
IF(CMAKE_BUILD_TYPE=Debug)
@@ -42,10 +41,10 @@ IF(CMAKE_BUILD_TYPE=Debug)
ENDIF()
#message(STATUS "${CMAKE_CXX_FLAGS}")
SET(SINGA_INCLUDE_DIR
- "${CMAKE_SOURCE_DIR}/include;${CMAKE_SOURCE_DIR}/lib/cnmem/include;${PROJECT_BINARY_DIR}")
+ "${CMAKE_SOURCE_DIR}/include;${PROJECT_BINARY_DIR}")
INCLUDE_DIRECTORIES(${SINGA_INCLUDE_DIR})
-OPTION(USE_CBLAS "Use CBlas libs" ON)
+#OPTION(USE_CBLAS "Use CBlas libs" ON)
OPTION(USE_CUDA "Use Cuda libs" OFF)
OPTION(USE_CUDNN "Use Cudnn libs" ON)
OPTION(USE_OPENCV "Use opencv" OFF)
@@ -56,7 +55,7 @@ OPTION(USE_OPENCL "Use OpenCL" OFF)
OPTION(ENABLE_DIST "enable distributed training" OFF)
OPTION(DISABLE_WARNINGS "disable warnings under windows" ON)
OPTION(USE_MODULES "Use submodules to compile" OFF)
-OPTION(BUILD_SHARED_LIBS "Use shared library" OFF)
+#OPTION(USE_SHARED_LIBS "Use shared library" OFF)
INCLUDE("cmake/Dependencies.cmake")
#INCLUDE("cmake/Utils.cmake")
@@ -77,7 +76,7 @@ IF (USE_CUDA)
include(ExternalProject)
ExternalProject_Add(cnmem
GIT_REPOSITORY "https://github.com/NVIDIA/cnmem.git"
- GIT_TAG "master"
+ GIT_TAG "28a182d"
SOURCE_DIR "cnmem/"
CONFIGURE_COMMAND "${CMAKE_COMMAND}"
"-H${CMAKE_BINARY_DIR}/cnmem" "-B."
@@ -85,7 +84,7 @@ IF (USE_CUDA)
)
#ADD_SUBDIRECTORY(lib/cnmem)
#LIST(APPEND SINGA_LINKER_LIBS cnmem)
- #SET(global_cuda_objs "")
+ SET(global_cuda_objs "")
ENDIF()
# TODO(wangwei) detect the ev lib
@@ -95,24 +94,23 @@ ENDIF()
IF (USE_MODULES)
include(ExternalProject)
- #ADD_SUBDIRECTORY(lib/protobuf/cmake)
- #ADD_SUBDIRECTORY(lib/OpenBLAS)
- IF(BUILD_SHARED_LIBS)
+ #IF(USE_SHARED_LIBS)
+ # ExternalProject_Add(protobuf
+ # GIT_REPOSITORY "https://github.com/google/protobuf.git"
+ # GIT_TAG "2.7.0"
+ # SOURCE_DIR "protobuf/"
+ # CONFIGURE_COMMAND "${CMAKE_COMMAND}"
+ # "-H${CMAKE_BINARY_DIR}/protobuf/cmake" "-B."
+ # "-Dprotobuf_BUILD_TESTS=OFF" "-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}"
+ # "-Dprotobuf_BUILD_SHARED_LIBS=ON" "-DCMAKE_C_FLAGS=-fPIC"
+ # "-DCMAKE_CXX_FLAGS=-fPIC"
+ # BUILD_COMMAND "${CMAKE_COMMAND}" --build "."
+ # )
+ #ELSE()
ExternalProject_Add(protobuf
GIT_REPOSITORY "https://github.com/google/protobuf.git"
- GIT_TAG "2.7.0"
- SOURCE_DIR "protobuf/"
- CONFIGURE_COMMAND "${CMAKE_COMMAND}"
- "-H${CMAKE_BINARY_DIR}/protobuf/cmake" "-B."
- "-Dprotobuf_BUILD_TESTS=OFF" "-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}"
- "-Dprotobuf_BUILD_SHARED_LIBS=ON" "-DCMAKE_C_FLAGS=-fPIC"
- "-DCMAKE_CXX_FLAGS=-fPIC"
- BUILD_COMMAND "${CMAKE_COMMAND}" --build "."
- )
- ELSE()
- ExternalProject_Add(protobuf
- GIT_REPOSITORY "https://github.com/google/protobuf.git"
- GIT_TAG "2.7.0"
+ #GIT_TAG "2.7.0"
+ GIT_TAG "f56542f"
SOURCE_DIR "protobuf/"
CONFIGURE_COMMAND "${CMAKE_COMMAND}"
"-H${CMAKE_BINARY_DIR}/protobuf/cmake" "-B."
@@ -121,26 +119,17 @@ IF (USE_MODULES)
"-DCMAKE_CXX_FLAGS=-fPIC"
BUILD_COMMAND "${CMAKE_COMMAND}" --build "."
)
- ENDIF()
+ #ENDIF()
ExternalProject_Add(openblas
GIT_REPOSITORY "https://github.com/xianyi/OpenBLAS.git"
- GIT_TAG "develop"
+ #GIT_TAG "develop"
+ GIT_TAG "f3419e6"
SOURCE_DIR "openblas/"
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND ""
BUILD_COMMAND "make" "ONLY_CBLAS=1"
INSTALL_COMMAND "make" "PREFIX=${CMAKE_BINARY_DIR}/" "install"
)
- IF(USE_CUDA)
- ExternalProject_Add(cnmem
- GIT_REPOSITORY "https://github.com/NVIDIA/cnmem.git"
- GIT_TAG "master"
- SOURCE_DIR "cnmem/"
- CONFIGURE_COMMAND "${CMAKE_COMMAND}"
- "-H${CMAKE_BINARY_DIR}/cnmem" "-B."
- "-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}"
- )
- ENDIF()
ENDIF()
INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}/include")
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/47e38c87/cmake/Dependencies.cmake
----------------------------------------------------------------------
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index 572a43b..ed49eaf 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -19,45 +19,47 @@
SET(SINGA_LINKER_LIBS "")
IF(USE_MODULES)
- IF(USE_SHARED_LIBS)
+ #IF(USE_SHARED_LIBS)
+ # include(FindProtobuf)
+ # SET(CMAKE_INSTALL_RPATH "${CMAKE_BINARY_DIR}/lib")
+ # link_directories(${CMAKE_BINARY_DIR}/lib)
+ # SET(PROTOBUF_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include")
+ # SET(PROTOBUF_LIBRARY "${CMAKE_BINARY_DIR}/lib/libprotobuf.so")
+ # SET(PROTOBUF_PROTOC_LIBRARY "${CMAKE_BINARY_DIR}/lib/libprotoc.so")
+ # SET(PROTOBUF_PROTOC_EXECUTABLE "${CMAKE_BINARY_DIR}/bin/protoc")
+ # INCLUDE_DIRECTORIES(SYSTEM ${PROTOBUF_INCLUDE_DIR})
+ # LIST(APPEND SINGA_LINKER_LIBS ${PROTOBUF_LIBRARY})
+ # #IF(USE_CBLAS)
+ # SET(CBLAS_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include")
+ # SET(CBLAS_LIBRARIES "${CMAKE_BINARY_DIR}/lib/libopenblas.so")
+ # INCLUDE_DIRECTORIES(SYSTEM ${CBLAS_INCLUDE_DIR})
+ # LIST(APPEND SINGA_LINKER_LIBS ${CBLAS_LIBRARIES})
+ #ENDIF()
+ #ELSE()
include(FindProtobuf)
SET(PROTOBUF_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include")
- SET(PROTOBUF_LIBRARIES "${CMAKE_BINARY_DIR}/lib/libprotobuf.so")
- SET(PROTOBUF_PROTOC_LIBRARY "${CMAKE_BINARY_DIR}/lib/libprotoc.so")
- SET(PROTOBUF_PROTOC_EXECUTABLE "${CMAKE_BINARY_DIR}/bin/protoc")
- INCLUDE_DIRECTORIES(SYSTEM ${PROTOBUF_INCLUDE_DIR})
- LIST(APPEND SINGA_LINKER_LIBS ${PROTOBUF_LIBRARIES})
- IF(USE_CBLAS)
- SET(CBLAS_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include")
- SET(CBLAS_LIBRARIES "${CMAKE_BINARY_DIR}/lib/libopenblas.so")
- INCLUDE_DIRECTORIES(SYSTEM ${CBLAS_INCLUDE_DIR})
- LIST(APPEND SINGA_LINKER_LIBS ${CBLAS_LIBRARIES})
- ENDIF()
- ELSE()
- include(FindProtobuf)
- SET(PROTOBUF_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include")
- SET(PROTOBUF_LIBRARIES "${CMAKE_BINARY_DIR}/lib/libprotobuf.a")
+ SET(PROTOBUF_LIBRARY "${CMAKE_BINARY_DIR}/lib/libprotobuf.a")
SET(PROTOBUF_PROTOC_LIBRARY "${CMAKE_BINARY_DIR}/lib/libprotoc.a")
SET(PROTOBUF_PROTOC_EXECUTABLE "${CMAKE_BINARY_DIR}/bin/protoc")
INCLUDE_DIRECTORIES(SYSTEM ${PROTOBUF_INCLUDE_DIR})
- LIST(APPEND SINGA_LINKER_LIBS ${PROTOBUF_LIBRARIES})
- IF(USE_CBLAS)
+ LIST(APPEND SINGA_LINKER_LIBS ${PROTOBUF_LIBRARY})
+ #IF(USE_CBLAS)
SET(CBLAS_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include")
SET(CBLAS_LIBRARIES "${CMAKE_BINARY_DIR}/lib/libopenblas.a")
INCLUDE_DIRECTORIES(SYSTEM ${CBLAS_INCLUDE_DIR})
LIST(APPEND SINGA_LINKER_LIBS ${CBLAS_LIBRARIES})
- ENDIF()
- ENDIF()
+ #ENDIF()
+ #ENDIF()
ELSE()
FIND_PACKAGE( Protobuf REQUIRED )
- MESSAGE(STATUS "proto libs " ${PROTOBUF_LIBRARIES})
- LIST(APPEND SINGA_LINKER_LIBS ${PROTOBUF_LIBRARIES})
- IF(USE_CBLAS)
+ #MESSAGE(STATUS "proto libs " ${PROTOBUF_LIBRARY})
+ LIST(APPEND SINGA_LINKER_LIBS ${PROTOBUF_LIBRARY})
+ #IF(USE_CBLAS)
FIND_PACKAGE(CBLAS REQUIRED)
INCLUDE_DIRECTORIES(SYSTEM ${CBLAS_INCLUDE_DIR})
LIST(APPEND SINGA_LINKER_LIBS ${CBLAS_LIBRARIES})
- MESSAGE(STATUS "Found cblas at ${CBLAS_LIBRARIES}")
- ENDIF()
+ #MESSAGE(STATUS "Found cblas at ${CBLAS_LIBRARIES}")
+ #ENDIF()
ENDIF()
#INCLUDE("cmake/ProtoBuf.cmake")
@@ -65,7 +67,7 @@ ENDIF()
FIND_PACKAGE(Glog)
IF(GLOG_FOUND)
- MESSAGE(STATUS "GLOG FOUND at ${GLOG_INCLUDE_DIR}")
+ #MESSAGE(STATUS "GLOG FOUND at ${GLOG_INCLUDE_DIR}")
ADD_DEFINITIONS("-DUSE_GLOG")
LIST(APPEND SINGA_LINKER_LIBS ${GLOG_LIBRARIES})
INCLUDE_DIRECTORIES(${GLOG_INCLUDE_DIR})
@@ -75,11 +77,14 @@ IF(USE_LMDB)
FIND_PACKAGE(LMDB REQUIRED)
INCLUDE_DIRECTORIES(SYSTEM ${LMDB_INCLUDE_DIR})
LIST(APPEND SINGA_LINKER_LIBS ${LMDB_LIBRARIES})
- MESSAGE(STATUS "FOUND lmdb at ${LMDB_INCLUDE_DIR}")
+ #MESSAGE(STATUS "FOUND lmdb at ${LMDB_INCLUDE_DIR}")
ENDIF()
IF(USE_CUDA)
INCLUDE("cmake/Cuda.cmake")
+ SET(CNMEM_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include")
+ SET(CNMEM_LIBRARY "${CMAKE_BINARY_DIR}/lib/libcnmem.so")
+ LIST(APPEND SINGA_LINKER_LIBS ${CNMEM_LIBRARY})
ELSE()
SET(USE_CUDNN FALSE)
ENDIF()
@@ -89,14 +94,14 @@ IF(USE_OPENCL)
IF(NOT OpenCL_FOUND)
MESSAGE(SEND_ERROR "OpenCL was requested, but not found.")
ELSE()
- MESSAGE(STATUS "Found OpenCL headers at ${OpenCL_INCLUDE_DIRS}")
+ #MESSAGE(STATUS "Found OpenCL headers at ${OpenCL_INCLUDE_DIRS}")
INCLUDE_DIRECTORIES(SYSTEM ${OpenCL_INCLUDE_DIR})
LIST(APPEND SINGA_LINKER_LIBS ${OpenCL_LIBRARIES})
FIND_PACKAGE(ViennaCL REQUIRED)
IF(NOT ViennaCL_FOUND)
MESSAGE(SEND_ERROR "ViennaCL is required if OpenCL is enabled.")
ELSE()
- MESSAGE(STATUS "Found ViennaCL headers at ${ViennaCL_INCLUDE_DIR}")
+ #MESSAGE(STATUS "Found ViennaCL headers at ${ViennaCL_INCLUDE_DIR}")
INCLUDE_DIRECTORIES(SYSTEM ${ViennaCL_INCLUDE_DIR})
LIST(APPEND SINGA_LINKER_LIBS ${ViennaCL_LIBRARIES})
ENDIF()