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:37 UTC
[1/6] incubator-singa git commit: SINGA-255 Compile mandatory
depedent libaries together with SINGA code
Repository: incubator-singa
Updated Branches:
refs/heads/master fac3af949 -> 1117a16eb
SINGA-255 Compile mandatory depedent libaries together with SINGA code
Add protobuf.
Add OpenBLAS.
delete submodules
SINGA-255 Compile mandatory depedent libaries together with SINGA code
Add externalproject for singa.
SINGA-255 Compile mandatory depedent libaries together with SINGA code
Add USE_SHARED_LIBS option and some cmake codes.
Project: http://git-wip-us.apache.org/repos/asf/incubator-singa/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-singa/commit/932a0cd4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-singa/tree/932a0cd4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-singa/diff/932a0cd4
Branch: refs/heads/master
Commit: 932a0cd4959d7b897003d360cdbb3240ca83aeab
Parents: 61faa84
Author: xiezl <xi...@comp.nus.edu.sg>
Authored: Thu Oct 20 22:06:05 2016 +0800
Committer: xiezl <xi...@comp.nus.edu.sg>
Committed: Mon Oct 24 14:01:21 2016 +0800
----------------------------------------------------------------------
.gitmodules | 6 +++
CMakeLists.txt | 73 +++++++++++++++++++++++++-------
cmake/Dependencies.cmake | 80 +++++++++++++++++++++++++-----------
examples/cifar10/CMakeLists.txt | 12 +++---
src/CMakeLists.txt | 1 +
test/CMakeLists.txt | 2 +-
6 files changed, 127 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/932a0cd4/.gitmodules
----------------------------------------------------------------------
diff --git a/.gitmodules b/.gitmodules
index cd0a9d2..fc8ce49 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,9 @@
[submodule "lib/cnmem"]
path = lib/cnmem
url = https://github.com/NVIDIA/cnmem.git
+[submodule "lib/protobuf"]
+ path = lib/protobuf
+ url = https://github.com/google/protobuf.git
+[submodule "lib/OpenBLAS"]
+ path = lib/OpenBLAS
+ url = https://github.com/xianyi/OpenBLAS.git
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/932a0cd4/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2e9f27a..464f8d5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,7 +16,7 @@
# limitations under the License.
#
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(singa)
SET(PACKAGE_VERSION "1.0.0")
@@ -27,17 +27,18 @@ LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Thirdparty)
# Flags
IF(UNIX OR APPLE)
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -g -O2 -fPIC -Wall")
+ SET(CMAKE_CXX_FLAGS
+ "${CMAKE_CXX_FLAGS} -std=c++11 -g -O2 -fPIC -Wall -pthread")
ENDIF()
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}")
- ENDIF()
+ 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}")
+ ENDIF()
ENDIF()
IF(CMAKE_BUILD_TYPE=Debug)
- SET(NVCC_FLAG "${NVCC_FLAG} -g -G ")
+ SET(NVCC_FLAG "${NVCC_FLAG} -g -G ")
ENDIF()
#message(STATUS "${CMAKE_CXX_FLAGS}")
SET(SINGA_INCLUDE_DIR
@@ -54,6 +55,8 @@ OPTION(USE_JAVA "Generate java wrappers" OFF)
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" ON)
+OPTION(USE_SHARED_LIBS "Use shared library" OFF)
INCLUDE("cmake/Dependencies.cmake")
#INCLUDE("cmake/Utils.cmake")
@@ -78,7 +81,47 @@ ENDIF()
# TODO(wangwei) detect the ev lib
IF (ENABLE_DIST)
- LIST(APPEND SINGA_LINKER_LIBS ev)
+ LIST(APPEND SINGA_LINKER_LIBS ev)
+ENDIF()
+
+IF (USE_MODULES)
+ include(ExternalProject)
+ #ADD_SUBDIRECTORY(lib/protobuf/cmake)
+ #ADD_SUBDIRECTORY(lib/OpenBLAS)
+ 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=OFF" "-DCMAKE_C_FLAGS=-fPIC"
+ "-DCMAKE_CXX_FLAGS=-fPIC"
+ BUILD_COMMAND "${CMAKE_COMMAND}" --build "."
+ )
+ ENDIF()
+ ExternalProject_Add(openblas
+ GIT_REPOSITORY "https://github.com/xianyi/OpenBLAS.git"
+ GIT_TAG "develop"
+ SOURCE_DIR "openblas/"
+ BUILD_IN_SOURCE 1
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND "make" "ONLY_CBLAS=1"
+ INSTALL_COMMAND "make" "PREFIX=${CMAKE_BINARY_DIR}/" "install"
+ )
ENDIF()
INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}/include")
@@ -87,17 +130,17 @@ ADD_SUBDIRECTORY(test)
ADD_SUBDIRECTORY(examples)
IF (USE_PYTHON)
- ADD_SUBDIRECTORY(python)
+ ADD_SUBDIRECTORY(python)
ENDIF()
IF (USE_JAVA)
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing ")
- ADD_SUBDIRECTORY(java)
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing ")
+ ADD_SUBDIRECTORY(java)
ENDIF()
INSTALL(DIRECTORY include/singa DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
INSTALL(FILES ${CMAKE_BINARY_DIR}/include/singa/singa_config.h DESTINATION
- ${CMAKE_INSTALL_PREFIX}/include/singa)
+ ${CMAKE_INSTALL_PREFIX}/include/singa)
INSTALL (DIRECTORY ${CMAKE_BINARY_DIR}/lib DESTINATION
- ${CMAKE_INSTALL_PREFIX}
- PATTERN "*libgtest.a" EXCLUDE )
+ ${CMAKE_INSTALL_PREFIX}
+ PATTERN "*libgtest.a" EXCLUDE )
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/932a0cd4/cmake/Dependencies.cmake
----------------------------------------------------------------------
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index 6ad15c0..572a43b 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -18,12 +18,49 @@
SET(SINGA_LINKER_LIBS "")
-#INCLUDE("cmake/ProtoBuf.cmake")
+IF(USE_MODULES)
+ IF(USE_SHARED_LIBS)
+ 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_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)
+ 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()
+ELSE()
+ FIND_PACKAGE( Protobuf REQUIRED )
+ MESSAGE(STATUS "proto libs " ${PROTOBUF_LIBRARIES})
+ LIST(APPEND SINGA_LINKER_LIBS ${PROTOBUF_LIBRARIES})
+ 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()
+ENDIF()
-FIND_PACKAGE( Protobuf REQUIRED )
-INCLUDE_DIRECTORIES(SYSTEM ${PROTOBUF_INCLUDE_DIR})
-MESSAGE(STATUS "proto libs " ${PROTOBUF_LIBRARIES})
-LIST(APPEND SINGA_LINKER_LIBS ${PROTOBUF_LIBRARIES})
+#INCLUDE("cmake/ProtoBuf.cmake")
#INCLUDE("cmake/Protobuf.cmake")
FIND_PACKAGE(Glog)
@@ -31,7 +68,7 @@ IF(GLOG_FOUND)
MESSAGE(STATUS "GLOG FOUND at ${GLOG_INCLUDE_DIR}")
ADD_DEFINITIONS("-DUSE_GLOG")
LIST(APPEND SINGA_LINKER_LIBS ${GLOG_LIBRARIES})
- INCLUDE_DIRECTORIES(${GLOG_INCLUDE_DIR})
+ INCLUDE_DIRECTORIES(${GLOG_INCLUDE_DIR})
ENDIF()
IF(USE_LMDB)
@@ -47,30 +84,23 @@ ELSE()
SET(USE_CUDNN FALSE)
ENDIF()
-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()
-
IF(USE_OPENCL)
FIND_PACKAGE(OpenCL REQUIRED)
IF(NOT OpenCL_FOUND)
MESSAGE(SEND_ERROR "OpenCL was requested, but not found.")
ELSE()
- 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}")
- INCLUDE_DIRECTORIES(SYSTEM ${ViennaCL_INCLUDE_DIR})
- LIST(APPEND SINGA_LINKER_LIBS ${ViennaCL_LIBRARIES})
- ENDIF()
- ENDIF()
+ 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}")
+ INCLUDE_DIRECTORIES(SYSTEM ${ViennaCL_INCLUDE_DIR})
+ LIST(APPEND SINGA_LINKER_LIBS ${ViennaCL_LIBRARIES})
+ ENDIF()
+ ENDIF()
ENDIF()
#FIND_PACKAGE(Glog REQUIRED)
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/932a0cd4/examples/cifar10/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/examples/cifar10/CMakeLists.txt b/examples/cifar10/CMakeLists.txt
index 5708c29..8026467 100644
--- a/examples/cifar10/CMakeLists.txt
+++ b/examples/cifar10/CMakeLists.txt
@@ -22,18 +22,18 @@ INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/include)
ADD_EXECUTABLE(alexnet alexnet.cc)
ADD_DEPENDENCIES(alexnet singa)
-TARGET_LINK_LIBRARIES(alexnet singa ${SINGA_LIBKER_LIBS})
+TARGET_LINK_LIBRARIES(alexnet singa)
IF(USE_CUDNN)
ADD_EXECUTABLE(alexnet-parallel alexnet-parallel.cc)
ADD_DEPENDENCIES(alexnet-parallel singa)
-TARGET_LINK_LIBRARIES(alexnet-parallel singa protobuf ${SINGA_LIBKER_LIBS})
-SET_TARGET_PROPERTIES(alexnet-parallel PROPERTIES LINK_FLAGS "${LINK_FLAGS} -pthread")
+TARGET_LINK_LIBRARIES(alexnet-parallel singa)
+#SET_TARGET_PROPERTIES(alexnet-parallel PROPERTIES LINK_FLAGS "${LINK_FLAGS} -pthread")
ADD_EXECUTABLE(vgg-parallel vgg-parallel.cc)
ADD_DEPENDENCIES(vgg-parallel singa)
-TARGET_LINK_LIBRARIES(vgg-parallel singa protobuf ${SINGA_LIBKER_LIBS})
-SET_TARGET_PROPERTIES(vgg-parallel PROPERTIES LINK_FLAGS "${LINK_FLAGS} -pthread")
+TARGET_LINK_LIBRARIES(vgg-parallel singa)
+#SET_TARGET_PROPERTIES(vgg-parallel PROPERTIES LINK_FLAGS "${LINK_FLAGS} -pthread")
-ENDIF(USE_CUDNN)
\ No newline at end of file
+ENDIF(USE_CUDNN)
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/932a0cd4/src/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8ef4732..709894b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -95,6 +95,7 @@ ADD_DEPENDENCIES(singa_objects copy_protobuf)
IF(UNIX OR APPLE)
ADD_LIBRARY(singa SHARED $<TARGET_OBJECTS:singa_objects> ${cuda_objs})
TARGET_LINK_LIBRARIES(singa ${SINGA_LINKER_LIBS})
+ SET_TARGET_PROPERTIES(singa PROPERTIES LINK_FLAGS "")
ENDIF()
#pass configure infor to swig
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/932a0cd4/test/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index e1487d2..79e481c 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -33,7 +33,7 @@ LIST(REMOVE_ITEM singa_test_source "singa/test_ep.cc")
ADD_EXECUTABLE(test_singa "gtest/gtest_main.cc" ${singa_test_source})
ADD_DEPENDENCIES(test_singa singa)
#MESSAGE(STATUS "link libs" ${singa_linker_libs})
-TARGET_LINK_LIBRARIES(test_singa gtest singa ${SINGA_LINKER_LIBS})
+TARGET_LINK_LIBRARIES(test_singa gtest singa )
IF(UNIX AND (NOT APPLE))
LIST(APPEND LINK_FLAGS "-pthread")
ENDIF()
[2/6] incubator-singa git commit: SINGA-255 Compile mandatory
depedent libaries together with SINGA code
Posted by wa...@apache.org.
SINGA-255 Compile mandatory depedent libaries together with SINGA code
Change .gitmodules and default options.
SINGA-255 Compile mandatory depedent libaries together with SINGA code
Move cnmem to exportproject instead of git submodules.
Project: http://git-wip-us.apache.org/repos/asf/incubator-singa/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-singa/commit/a98446f3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-singa/tree/a98446f3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-singa/diff/a98446f3
Branch: refs/heads/master
Commit: a98446f30467069648e1e52b4633e99677a85246
Parents: 932a0cd
Author: xiezl <xi...@comp.nus.edu.sg>
Authored: Sun Oct 23 01:36:55 2016 +0800
Committer: xiezl <xi...@comp.nus.edu.sg>
Committed: Tue Oct 25 14:52:22 2016 +0800
----------------------------------------------------------------------
.gitmodules | 9 ---------
CMakeLists.txt | 33 ++++++++++++++++++++++++++-------
lib/cnmem | 1 -
3 files changed, 26 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/a98446f3/.gitmodules
----------------------------------------------------------------------
diff --git a/.gitmodules b/.gitmodules
index fc8ce49..e69de29 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,9 +0,0 @@
-[submodule "lib/cnmem"]
- path = lib/cnmem
- url = https://github.com/NVIDIA/cnmem.git
-[submodule "lib/protobuf"]
- path = lib/protobuf
- url = https://github.com/google/protobuf.git
-[submodule "lib/OpenBLAS"]
- path = lib/OpenBLAS
- url = https://github.com/xianyi/OpenBLAS.git
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/a98446f3/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 464f8d5..f67c7af 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -50,13 +50,13 @@ OPTION(USE_CUDA "Use Cuda libs" OFF)
OPTION(USE_CUDNN "Use Cudnn libs" ON)
OPTION(USE_OPENCV "Use opencv" OFF)
OPTION(USE_LMDB "Use LMDB libs" OFF)
-OPTION(USE_PYTHON "Generate py wrappers" ON)
+OPTION(USE_PYTHON "Generate py wrappers" OFF)
OPTION(USE_JAVA "Generate java wrappers" OFF)
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" ON)
-OPTION(USE_SHARED_LIBS "Use shared library" OFF)
+OPTION(USE_MODULES "Use submodules to compile" OFF)
+OPTION(BUILD_SHARED_LIBS "Use shared library" OFF)
INCLUDE("cmake/Dependencies.cmake")
#INCLUDE("cmake/Utils.cmake")
@@ -74,9 +74,18 @@ SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
IF (USE_CUDA)
- ADD_SUBDIRECTORY(lib/cnmem)
- LIST(APPEND SINGA_LINKER_LIBS cnmem)
- SET(global_cuda_objs "")
+ include(ExternalProject)
+ 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}"
+ )
+ #ADD_SUBDIRECTORY(lib/cnmem)
+ #LIST(APPEND SINGA_LINKER_LIBS cnmem)
+ #SET(global_cuda_objs "")
ENDIF()
# TODO(wangwei) detect the ev lib
@@ -88,7 +97,7 @@ IF (USE_MODULES)
include(ExternalProject)
#ADD_SUBDIRECTORY(lib/protobuf/cmake)
#ADD_SUBDIRECTORY(lib/OpenBLAS)
- IF(USE_SHARED_LIBS)
+ IF(BUILD_SHARED_LIBS)
ExternalProject_Add(protobuf
GIT_REPOSITORY "https://github.com/google/protobuf.git"
GIT_TAG "2.7.0"
@@ -122,6 +131,16 @@ IF (USE_MODULES)
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/a98446f3/lib/cnmem
----------------------------------------------------------------------
diff --git a/lib/cnmem b/lib/cnmem
deleted file mode 160000
index 28a182d..0000000
--- a/lib/cnmem
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 28a182d49529da49f4ac4e3941cec3edf16b3540
[5/6] incubator-singa git commit: SINGA-255 Compile mandatory
depedent libaries together with SINGA code
Posted by wa...@apache.org.
SINGA-255 Compile mandatory depedent libaries together with SINGA code
Add To-do to pass the test.
SINGA-255 Compile mandatory depedent libaries together with SINGA code
Fix comments and change cnmem repo address.
SINGA-255 Compile mandatory depedent libaries together with SINGA code
Find protobuf lib paths automatically.
SINGA-255 Compile mandatory depedent libaries together with SINGA code
Add protobuf 2.6.1.
Remove protobuf-2.7.
Make cudnn ON by default.
Project: http://git-wip-us.apache.org/repos/asf/incubator-singa/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-singa/commit/4826d40a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-singa/tree/4826d40a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-singa/diff/4826d40a
Branch: refs/heads/master
Commit: 4826d40a1a6b67dd322fec5d3f6a5af1a17dc73d
Parents: f2c0b84
Author: xiezl <xi...@comp.nus.edu.sg>
Authored: Mon Oct 24 13:58:06 2016 +0800
Committer: xiezl <xi...@comp.nus.edu.sg>
Committed: Tue Oct 25 14:54:00 2016 +0800
----------------------------------------------------------------------
CMakeLists.txt | 41 +++++++++++++++++++++-------------------
cmake/Dependencies.cmake | 44 +++++++++++++++++++++----------------------
2 files changed, 44 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/4826d40a/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 58244c7..a07b694 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -49,14 +49,17 @@ OPTION(USE_CUDA "Use Cuda libs" OFF)
OPTION(USE_CUDNN "Use Cudnn libs" ON)
OPTION(USE_OPENCV "Use opencv" OFF)
OPTION(USE_LMDB "Use LMDB libs" OFF)
-OPTION(USE_PYTHON "Generate py wrappers" OFF)
+OPTION(USE_PYTHON "Generate py wrappers" ON)
OPTION(USE_JAVA "Generate java wrappers" OFF)
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(ENABLE_DIST "Enable distributed training" OFF)
+OPTION(DISABLE_WARNINGS "Disable warnings under windows" ON)
+OPTION(USE_MODULES "Compile dependent libs as submodules together with singa" OFF)
#OPTION(USE_SHARED_LIBS "Use shared library" OFF)
+# TODO: remove all USE_CBLAS in codes
+SET(USE_CBLAS ON)
+
INCLUDE("cmake/Dependencies.cmake")
#INCLUDE("cmake/Utils.cmake")
ADD_DEFINITIONS(-DUSE_CMAKE)
@@ -75,8 +78,8 @@ SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
IF (USE_CUDA)
include(ExternalProject)
ExternalProject_Add(cnmem
- GIT_REPOSITORY "https://github.com/NVIDIA/cnmem.git"
- GIT_TAG "28a182d"
+ GIT_REPOSITORY "https://github.com/nusdbsystem/cnmem.git"
+ GIT_TAG "master"
SOURCE_DIR "cnmem/"
CONFIGURE_COMMAND "${CMAKE_COMMAND}"
"-H${CMAKE_BINARY_DIR}/cnmem" "-B."
@@ -107,19 +110,19 @@ IF (USE_MODULES)
# BUILD_COMMAND "${CMAKE_COMMAND}" --build "."
# )
#ELSE()
- ExternalProject_Add(protobuf
- GIT_REPOSITORY "https://github.com/google/protobuf.git"
- #GIT_TAG "2.7.0"
- GIT_TAG "f56542f"
- 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=OFF" "-DCMAKE_C_FLAGS=-fPIC"
- "-DCMAKE_CXX_FLAGS=-fPIC"
- BUILD_COMMAND "${CMAKE_COMMAND}" --build "."
- )
- #ENDIF()
+ #ENDIF()
+ ExternalProject_Add(protobuf
+ DOWNLOAD_COMMAND "wget"
+ "http://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz"
+ "-O" "protobuf-2.6.1.tar.gz"
+ UPDATE_COMMAND "tar" "zxvf"
+ "${CMAKE_BINARY_DIR}/protobuf-prefix/src/protobuf-2.6.1.tar.gz" "-C" ".."
+ SOURCE_DIR "protobuf-2.6.1/"
+ BUILD_IN_SOURCE 1
+ CONFIGURE_COMMAND "./configure" "--disable-shared"
+ "--prefix=${CMAKE_BINARY_DIR}/" "CXXFLAGS=-fPIC"
+ INSTALL_COMMAND "make" "install"
+ )
ExternalProject_Add(openblas
GIT_REPOSITORY "https://github.com/xianyi/OpenBLAS.git"
#GIT_TAG "develop"
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/4826d40a/cmake/Dependencies.cmake
----------------------------------------------------------------------
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index ed49eaf..d5bfbd9 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -34,32 +34,32 @@ IF(USE_MODULES)
# 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_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_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()
+ #ELSE()
+ include(FindProtobuf)
+ SET(PROTOBUF_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include")
+ SET(PROTOBUF_LIBRARY "${CMAKE_BINARY_DIR}/lib/libprotobuf.a")
+ SET(PROTOBUF_PROTOC_LIBRARY "${CMAKE_BINARY_DIR}/lib/libprotobuf.a")
+ 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.a")
+ INCLUDE_DIRECTORIES(SYSTEM ${CBLAS_INCLUDE_DIR})
+ LIST(APPEND SINGA_LINKER_LIBS ${CBLAS_LIBRARIES})
+ #ENDIF()
+ #ENDIF()
ELSE()
FIND_PACKAGE( Protobuf REQUIRED )
#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()
+ 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()
ENDIF()
#INCLUDE("cmake/ProtoBuf.cmake")
@@ -83,7 +83,7 @@ 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")
+ SET(CNMEM_LIBRARY "${CMAKE_BINARY_DIR}/lib/libcnmem.a")
LIST(APPEND SINGA_LINKER_LIBS ${CNMEM_LIBRARY})
ELSE()
SET(USE_CUDNN FALSE)
[3/6] incubator-singa git commit: SINGA-267 Add spatial mode in batch
normalization layer
Posted by wa...@apache.org.
SINGA-267 Add spatial mode in batch normalization layer
Revise batchnorm test cases for spatial mode.
Project: http://git-wip-us.apache.org/repos/asf/incubator-singa/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-singa/commit/f2c0b843
Tree: http://git-wip-us.apache.org/repos/asf/incubator-singa/tree/f2c0b843
Diff: http://git-wip-us.apache.org/repos/asf/incubator-singa/diff/f2c0b843
Branch: refs/heads/master
Commit: f2c0b843b4018622e0f0caa472d7d2dc259ce1f8
Parents: 47e38c8
Author: WANG Ji <ij...@gmail.com>
Authored: Sun Oct 23 20:54:38 2016 +0800
Committer: xiezl <xi...@comp.nus.edu.sg>
Committed: Tue Oct 25 14:52:34 2016 +0800
----------------------------------------------------------------------
src/model/layer/batchnorm.cc | 2 +-
test/singa/test_batchnorm.cc | 44 ++++++++++++++++++---------------------
2 files changed, 21 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/f2c0b843/src/model/layer/batchnorm.cc
----------------------------------------------------------------------
diff --git a/src/model/layer/batchnorm.cc b/src/model/layer/batchnorm.cc
index afe9a36..e07dfd9 100644
--- a/src/model/layer/batchnorm.cc
+++ b/src/model/layer/batchnorm.cc
@@ -117,7 +117,7 @@ const Tensor BatchNorm::Forward(int flag, const Tensor& input) {
bnBias_.Reshape(Shape{channels_, 1});
std::vector<Tensor> mean_stack, var_stack, scale_stack, bias_stack;
- for (int i = 0; i < height_ * width_; ++i) {
+ for (unsigned i = 0; i < height_ * width_; ++i) {
mean_stack.push_back(runningMean_);
var_stack.push_back(runningVariance_);
scale_stack.push_back(bnScale_);
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/f2c0b843/test/singa/test_batchnorm.cc
----------------------------------------------------------------------
diff --git a/test/singa/test_batchnorm.cc b/test/singa/test_batchnorm.cc
index c8efbf9..fadba42 100644
--- a/test/singa/test_batchnorm.cc
+++ b/test/singa/test_batchnorm.cc
@@ -43,19 +43,19 @@ TEST(BatchNorm, Setup) {
TEST(BatchNorm, Forward) {
BatchNorm batchnorm;
const float x[] = {1, 2, 3, 4};
- Tensor in(Shape{2, 1, 2, 1});
- in.CopyDataFromHostPtr(x, 2 * 1 * 2 * 1);
+ Tensor in(Shape{2, 2});
+ in.CopyDataFromHostPtr(x, 2 * 2);
const float alpha_[] = {1, 1};
- Tensor alpha(Shape{1, 2});
- alpha.CopyDataFromHostPtr(alpha_, 1 * 2);
+ Tensor alpha(Shape{2});
+ alpha.CopyDataFromHostPtr(alpha_, 2);
const float beta_[] = {2, 2};
- Tensor beta(Shape{1, 2});
- beta.CopyDataFromHostPtr(beta_, 1 * 2);
+ Tensor beta(Shape{2});
+ beta.CopyDataFromHostPtr(beta_, 2);
singa::LayerConf conf;
singa::BatchNormConf *batchnorm_conf = conf.mutable_batchnorm_conf();
batchnorm_conf->set_factor(1);
- batchnorm.Setup(Shape{1, 2, 1}, conf);
+ batchnorm.Setup(Shape{2}, conf);
batchnorm.set_bnScale(alpha);
batchnorm.set_bnBias(beta);
batchnorm.set_runningMean(beta);
@@ -63,11 +63,9 @@ TEST(BatchNorm, Forward) {
Tensor out = batchnorm.Forward(kTrain, in);
const float *outptr = out.data<float>();
const auto &shape = out.shape();
- EXPECT_EQ(4u, shape.size());
+ EXPECT_EQ(2u, shape.size());
EXPECT_EQ(2u, shape[0]);
- EXPECT_EQ(1u, shape[1]);
- EXPECT_EQ(2u, shape[2]);
- EXPECT_EQ(1u, shape[3]);
+ EXPECT_EQ(2u, shape[1]);
EXPECT_NEAR(1.0f, outptr[0], 1e-4f);
EXPECT_NEAR(1.0f, outptr[1], 1e-4f);
EXPECT_NEAR(3.0f, outptr[2], 1e-4f);
@@ -77,22 +75,22 @@ TEST(BatchNorm, Forward) {
TEST(BatchNorm, Backward) {
BatchNorm batchnorm;
const float x[] = {1, 2, 3, 4};
- Tensor in(Shape{2, 1, 2, 1});
- in.CopyDataFromHostPtr(x, 2 * 1 * 2 * 1);
+ Tensor in(Shape{2, 2});
+ in.CopyDataFromHostPtr(x, 2 * 2);
const float dy[] = {4, 3, 2, 1};
- Tensor dy_in(Shape{2, 1, 2, 1});
- dy_in.CopyDataFromHostPtr(dy, 2 * 1 * 2 * 1);
+ Tensor dy_in(Shape{2, 2});
+ dy_in.CopyDataFromHostPtr(dy, 2 * 2);
const float alpha_[] = {1, 1};
- Tensor alpha(Shape{1, 2});
- alpha.CopyDataFromHostPtr(alpha_, 1 * 2);
+ Tensor alpha(Shape{2});
+ alpha.CopyDataFromHostPtr(alpha_, 2);
const float beta_[] = {0, 0};
- Tensor beta(Shape{1, 2});
- beta.CopyDataFromHostPtr(beta_, 1 * 2);
+ Tensor beta(Shape{2});
+ beta.CopyDataFromHostPtr(beta_, 2);
singa::LayerConf conf;
singa::BatchNormConf *batchnorm_conf = conf.mutable_batchnorm_conf();
batchnorm_conf->set_factor(1);
- batchnorm.Setup(Shape{1, 2, 1}, conf);
+ batchnorm.Setup(Shape{2}, conf);
batchnorm.set_bnScale(alpha);
batchnorm.set_bnBias(beta);
batchnorm.set_runningMean(beta);
@@ -101,11 +99,9 @@ TEST(BatchNorm, Backward) {
auto ret = batchnorm.Backward(kTrain, dy_in);
Tensor dx = ret.first;
const auto & shape = dx.shape();
- EXPECT_EQ(4u, shape.size());
+ EXPECT_EQ(2u, shape.size());
EXPECT_EQ(2u, shape[0]);
- EXPECT_EQ(1u, shape[1]);
- EXPECT_EQ(2u, shape[2]);
- EXPECT_EQ(1u, shape[3]);
+ EXPECT_EQ(2u, shape[1]);
const float *dxptr = ret.first.data<float>();
EXPECT_NEAR(.0f, dxptr[0], 1e-4f);
EXPECT_NEAR(.0f, dxptr[1], 1e-4f);
[6/6] incubator-singa git commit: Merge PR #272 for compiling
depedent libs together with SINGA
Posted by wa...@apache.org.
Merge PR #272 for compiling depedent libs together with SINGA
Project: http://git-wip-us.apache.org/repos/asf/incubator-singa/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-singa/commit/1117a16e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-singa/tree/1117a16e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-singa/diff/1117a16e
Branch: refs/heads/master
Commit: 1117a16eb1cdf672d66cbead740c5bfa4b933d55
Parents: fac3af9 4826d40
Author: Wei Wang <wa...@comp.nus.edu.sg>
Authored: Tue Oct 25 16:42:08 2016 +0800
Committer: Wei Wang <wa...@comp.nus.edu.sg>
Committed: Tue Oct 25 16:42:08 2016 +0800
----------------------------------------------------------------------
.gitmodules | 3 --
CMakeLists.txt | 98 ++++++++++++++++++++++++++++--------
cmake/Dependencies.cmake | 89 ++++++++++++++++++++++----------
examples/cifar10/CMakeLists.txt | 12 ++---
lib/cnmem | 1 -
src/CMakeLists.txt | 1 +
test/CMakeLists.txt | 2 +-
7 files changed, 146 insertions(+), 60 deletions(-)
----------------------------------------------------------------------
[4/6] incubator-singa git commit: SINGA-255 Compile mandatory
depedent libaries together with SINGA code
Posted by wa...@apache.org.
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()