Skip to content

Commit

Permalink
Revert caffe-0.13 branch
Browse files Browse the repository at this point in the history
  • Loading branch information
lukeyeager committed Dec 17, 2015
1 parent a8cf019 commit 1beb9ac
Show file tree
Hide file tree
Showing 69 changed files with 723 additions and 3,128 deletions.
5 changes: 0 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@ cmake_minimum_required(VERSION 2.8.7)
# ---[ Caffe project
project(Caffe C CXX)

# ---[ Caffe version
set(CAFFE_TARGET_VERSION "0.13.2")
set(CAFFE_TARGET_SOVERSION "0.13")

# ---[ Using cmake scripts and modules
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules)

Expand All @@ -19,7 +15,6 @@ include(cmake/ConfigGen.cmake)
# ---[ Options
caffe_option(CPU_ONLY "Build Caffe wihtout CUDA support" OFF) # TODO: rename to USE_CUDA
caffe_option(USE_CUDNN "Build Caffe with cuDNN libary support" ON IF NOT CPU_ONLY)
caffe_option(USE_CNMEM "Build Caffe with CNMeM memory pool support" OFF)
caffe_option(BUILD_SHARED_LIBS "Build shared libraries" ON)
caffe_option(BUILD_python "Build Python wrapper" ON)
set(python_version "2" CACHE STRING "Specify which python version to use")
Expand Down
46 changes: 9 additions & 37 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,9 @@ SRC_DIRS := $(shell find * -type d -exec bash -c "find {} -maxdepth 1 \
\( -name '*.cpp' -o -name '*.proto' \) | grep -q ." \; -print)

# The target shared library name
LIBRARY_NAME := $(PROJECT)$(LIBRARY_NAME_SUFFIX)
LIB_BUILD_DIR := $(BUILD_DIR)/lib
STATIC_NAME := $(LIB_BUILD_DIR)/lib$(LIBRARY_NAME).a
DYNAMIC_VERSION_MAJOR := 0
DYNAMIC_VERSION_MINOR := 13
DYNAMIC_VERSION_REVISION := 2
DYNAMIC_NAME_SHORT := lib$(LIBRARY_NAME).so
DYNAMIC_SONAME_SHORT := $(DYNAMIC_NAME_SHORT).$(DYNAMIC_VERSION_MAJOR).$(DYNAMIC_VERSION_MINOR)
DYNAMIC_VERSIONED_NAME_SHORT := $(DYNAMIC_NAME_SHORT).$(DYNAMIC_VERSION_MAJOR).$(DYNAMIC_VERSION_MINOR).$(DYNAMIC_VERSION_REVISION)
DYNAMIC_NAME := $(LIB_BUILD_DIR)/$(DYNAMIC_VERSIONED_NAME_SHORT)
STATIC_NAME := $(LIB_BUILD_DIR)/lib$(PROJECT).a
DYNAMIC_NAME := $(LIB_BUILD_DIR)/lib$(PROJECT).so

##############################
# Get all source files
Expand Down Expand Up @@ -176,7 +169,6 @@ ifneq ($(CPU_ONLY), 1)
LIBRARY_DIRS += $(CUDA_LIB_DIR)
LIBRARIES := cudart cublas curand
endif

LIBRARIES += glog gflags protobuf leveldb snappy \
lmdb boost_system hdf5_hl hdf5 m \
opencv_core opencv_highgui opencv_imgproc
Expand Down Expand Up @@ -242,7 +234,6 @@ ifeq ($(LINUX), 1)
# boost::thread is reasonably called boost_thread (compare OS X)
# We will also explicitly add stdc++ to the link target.
LIBRARIES += boost_thread stdc++
VERSIONFLAGS += -Wl,-soname,$(DYNAMIC_SONAME_SHORT) -Wl,-rpath,$(ORIGIN)/../lib
endif

# OS X:
Expand All @@ -266,7 +257,6 @@ ifeq ($(OSX), 1)
# we need to explicitly ask for the rpath to be obeyed
DYNAMIC_FLAGS := -install_name @rpath/libcaffe.so
ORIGIN := @loader_path
VERSIONFLAGS += -Wl,-install_name,$(DYNAMIC_SONAME_SHORT) -Wl,-rpath,$(ORIGIN)/../../build/lib
else
ORIGIN := \$$ORIGIN
endif
Expand Down Expand Up @@ -300,12 +290,6 @@ ifeq ($(USE_CUDNN), 1)
COMMON_FLAGS += -DUSE_CUDNN
endif

# cuMEM integration
ifeq ($(USE_CNMEM), 1)
LIBRARIES += cnmem
COMMON_FLAGS += -DUSE_CNMEM
endif

# CPU-only configuration
ifeq ($(CPU_ONLY), 1)
OBJS := $(PROTO_OBJS) $(CXX_OBJS)
Expand All @@ -316,14 +300,6 @@ ifeq ($(CPU_ONLY), 1)
COMMON_FLAGS += -DCPU_ONLY
endif

# Benchmarks
ifeq ($(BENCHMARK_DATA), 1)
COMMON_FLAGS += -DBENCHMARK_DATA
endif
ifeq ($(BENCHMARK_SOLVER), 1)
COMMON_FLAGS += -DBENCHMARK_SOLVER
endif

# Python layer support
ifeq ($(WITH_PYTHON_LAYER), 1)
COMMON_FLAGS += -DWITH_PYTHON_LAYER
Expand Down Expand Up @@ -466,7 +442,7 @@ py: $(PY$(PROJECT)_SO) $(PROTO_GEN_PY)
$(PY$(PROJECT)_SO): $(PY$(PROJECT)_SRC) $(PY$(PROJECT)_HXX) | $(DYNAMIC_NAME)
@ echo CXX/LD -o $@ $<
$(Q)$(CXX) -shared -o $@ $(PY$(PROJECT)_SRC) \
-o $@ $(LINKFLAGS) -l$(LIBRARY_NAME) $(PYTHON_LDFLAGS) \
-o $@ $(LINKFLAGS) -l$(PROJECT) $(PYTHON_LDFLAGS) \
-Wl,-rpath,$(ORIGIN)/../../build/lib

mat$(PROJECT): mat
Expand Down Expand Up @@ -524,9 +500,7 @@ $(ALL_BUILD_DIRS): | $(BUILD_DIR_LINK)

$(DYNAMIC_NAME): $(OBJS) | $(LIB_BUILD_DIR)
@ echo LD -o $@
$(Q)$(CXX) -shared -o $@ $(OBJS) $(VERSIONFLAGS) $(LINKFLAGS) $(LDFLAGS) $(DYNAMIC_FLAGS)
@ cd $(BUILD_DIR)/lib; rm -f $(DYNAMIC_SONAME_SHORT); ln -s $(DYNAMIC_VERSIONED_NAME_SHORT) $(DYNAMIC_SONAME_SHORT)
@ cd $(BUILD_DIR)/lib; rm -f $(DYNAMIC_NAME_SHORT); ln -s $(DYNAMIC_SONAME_SHORT) $(DYNAMIC_NAME_SHORT)
$(Q)$(CXX) -shared -o $@ $(OBJS) $(LINKFLAGS) $(LDFLAGS) $(DYNAMIC_FLAGS)

$(STATIC_NAME): $(OBJS) | $(LIB_BUILD_DIR)
@ echo AR -o $@
Expand Down Expand Up @@ -557,19 +531,19 @@ $(TEST_ALL_BIN): $(TEST_MAIN_SRC) $(TEST_OBJS) $(GTEST_OBJ) \
| $(DYNAMIC_NAME) $(TEST_BIN_DIR)
@ echo CXX/LD -o $@ $<
$(Q)$(CXX) $(TEST_MAIN_SRC) $(TEST_OBJS) $(GTEST_OBJ) \
-o $@ $(LINKFLAGS) $(LDFLAGS) -l$(LIBRARY_NAME) -Wl,-rpath,$(ORIGIN)/../lib
-o $@ $(LINKFLAGS) $(LDFLAGS) -l$(PROJECT) -Wl,-rpath,$(ORIGIN)/../lib

$(TEST_CU_BINS): $(TEST_BIN_DIR)/%.testbin: $(TEST_CU_BUILD_DIR)/%.o \
$(GTEST_OBJ) | $(DYNAMIC_NAME) $(TEST_BIN_DIR)
@ echo LD $<
$(Q)$(CXX) $(TEST_MAIN_SRC) $< $(GTEST_OBJ) \
-o $@ $(LINKFLAGS) $(LDFLAGS) -l$(LIBRARY_NAME) -Wl,-rpath,$(ORIGIN)/../lib
-o $@ $(LINKFLAGS) $(LDFLAGS) -l$(PROJECT) -Wl,-rpath,$(ORIGIN)/../lib

$(TEST_CXX_BINS): $(TEST_BIN_DIR)/%.testbin: $(TEST_CXX_BUILD_DIR)/%.o \
$(GTEST_OBJ) | $(DYNAMIC_NAME) $(TEST_BIN_DIR)
@ echo LD $<
$(Q)$(CXX) $(TEST_MAIN_SRC) $< $(GTEST_OBJ) \
-o $@ $(LINKFLAGS) $(LDFLAGS) -l$(LIBRARY_NAME) -Wl,-rpath,$(ORIGIN)/../lib
-o $@ $(LINKFLAGS) $(LDFLAGS) -l$(PROJECT) -Wl,-rpath,$(ORIGIN)/../lib

# Target for extension-less symlinks to tool binaries with extension '*.bin'.
$(TOOL_BUILD_DIR)/%: $(TOOL_BUILD_DIR)/%.bin | $(TOOL_BUILD_DIR)
Expand All @@ -578,12 +552,12 @@ $(TOOL_BUILD_DIR)/%: $(TOOL_BUILD_DIR)/%.bin | $(TOOL_BUILD_DIR)

$(TOOL_BINS): %.bin : %.o | $(DYNAMIC_NAME)
@ echo CXX/LD -o $@
$(Q)$(CXX) $< -o $@ $(LINKFLAGS) -l$(LIBRARY_NAME) $(LDFLAGS) \
$(Q)$(CXX) $< -o $@ $(LINKFLAGS) -l$(PROJECT) $(LDFLAGS) \
-Wl,-rpath,$(ORIGIN)/../lib

$(EXAMPLE_BINS): %.bin : %.o | $(DYNAMIC_NAME)
@ echo CXX/LD -o $@
$(Q)$(CXX) $< -o $@ $(LINKFLAGS) -l$(LIBRARY_NAME) $(LDFLAGS) \
$(Q)$(CXX) $< -o $@ $(LINKFLAGS) -l$(PROJECT) $(LDFLAGS) \
-Wl,-rpath,$(ORIGIN)/../../lib

proto: $(PROTO_GEN_CC) $(PROTO_GEN_HEADER)
Expand Down Expand Up @@ -645,8 +619,6 @@ $(DISTRIBUTE_DIR): all py | $(DISTRIBUTE_SUBDIRS)
# add libraries
cp $(STATIC_NAME) $(DISTRIBUTE_DIR)/lib
cp $(DYNAMIC_NAME) $(DISTRIBUTE_DIR)/lib
cd $(DISTRIBUTE_DIR)/lib; rm -f $(DYNAMIC_SONAME_SHORT); ln -s $(DYNAMIC_VERSIONED_NAME_SHORT) $(DYNAMIC_SONAME_SHORT)
cd $(DISTRIBUTE_DIR)/lib; rm -f $(DYNAMIC_NAME_SHORT); ln -s $(DYNAMIC_SONAME_SHORT) $(DYNAMIC_NAME_SHORT)
# add python - it's not the standard way, indeed...
cp -r python $(DISTRIBUTE_DIR)/python

Expand Down
16 changes: 3 additions & 13 deletions Makefile.config.example
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
## Refer to http://caffe.berkeleyvision.org/installation.html
# Contributions simplifying and improving our build system are welcome!

# cuDNN acceleration switch (comment to build without cuDNN).
USE_CUDNN := 1
# CNMeM memory pool switch (github.com/NVIDIA/cnmem required)
# USE_CNMEM := 1
# cuDNN acceleration switch (uncomment to build with cuDNN).
# USE_CUDNN := 1

# CPU-only switch (uncomment to build without GPU support).
# CPU_ONLY := 1
Expand Down Expand Up @@ -47,8 +45,7 @@ BLAS := atlas
# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include \
/usr/local/lib/python2.7/dist-packages/numpy/core/include
/usr/lib/python2.7/dist-packages/numpy/core/include
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
# ANACONDA_HOME := $(HOME)/anaconda
Expand Down Expand Up @@ -82,10 +79,3 @@ TEST_GPUID := 0

# enable pretty build (comment to see full commands)
Q ?= @

# Adds timing info in logs
# BENCHMARK_DATA := 1
# BENCHMARK_SOLVER := 1

# shared object suffix name to differentiate branches
LIBRARY_NAME_SUFFIX := -nv
6 changes: 0 additions & 6 deletions cmake/ConfigGen.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,6 @@ function(caffe_generate_export_configs)
list(APPEND DEFINITIONS -DUSE_CUDNN)
endif()

if(NOT HAVE_CNMEM)
set(HAVE_CNMEM FALSE)
else()
list(APPEND DEFINITIONS -DUSE_CNMEM)
endif()

if(BLAS STREQUAL "MKL" OR BLAS STREQUAL "mkl")
list(APPEND Caffe_DEFINITIONS -DUSE_MKL)
endif()
Expand Down
35 changes: 0 additions & 35 deletions cmake/Cuda.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -188,32 +188,6 @@ function(detect_cuDNN)
endif()
endfunction()

################################################################################################
# Short command for cuDNN detection. Believe it soon will be a part of CUDA toolkit distribution.
# That's why not FindcuDNN.cmake file, but just the macro
# Usage:
# detect_cuDNN()
function(detect_CNMeM)
set(CNMEM_ROOT "" CACHE PATH "CNMeM root folder")

find_path(CNMEM_INCLUDE cnmem.h
PATHS ${CNMEM_ROOT} $ENV{CNMEM_ROOT} ${CUDA_TOOLKIT_INCLUDE}
DOC "Path to CNMeM include directory." )

get_filename_component(__libpath_hist ${CUDA_CUDART_LIBRARY} PATH)
find_library(CNMEM_LIBRARY NAMES libcnmem.so # libcudnn_static.a
PATHS ${CNMEM_ROOT} $ENV{CNMEM_ROOT} ${CNMEM_INCLUDE} ${__libpath_hist}
DOC "Path to CNMeM library.")

if(CNMEM_INCLUDE AND CNMEM_LIBRARY)
set(HAVE_CNMEM TRUE PARENT_SCOPE)
set(CNMEM_FOUND TRUE PARENT_SCOPE)

mark_as_advanced(CNMEM_INCLUDE CNMEM_LIBRARY CNMEM_ROOT)
message(STATUS "Found CNMeM (include: ${CNMEM_INCLUDE}, library: ${CNMEM_LIBRARY})")
endif()
endfunction()


################################################################################################
### Non macro section
Expand Down Expand Up @@ -242,15 +216,6 @@ if(USE_CUDNN)
endif()
endif()

if(USE_CNMEM)
detect_CNMeM()
if(HAVE_CNMEM)
add_definitions(-DUSE_CNMEM)
include_directories(SYSTEM ${CNMEM_INCLUDE})
list(APPEND Caffe_LINKER_LIBS ${CNMEM_LIBRARY})
endif()
endif()

# setting nvcc arch flags
caffe_select_nvcc_arch_flags(NVCC_FLAGS_EXTRA)
list(APPEND CUDA_NVCC_FLAGS ${NVCC_FLAGS_EXTRA})
Expand Down
7 changes: 1 addition & 6 deletions cmake/Summary.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ function(caffe_print_configuration_summary)
caffe_status("")
caffe_status("******************* Caffe Configuration Summary *******************")
caffe_status("General:")
caffe_status(" Version : ${CAFFE_TARGET_VERSION}")
caffe_status(" Version : ${Caffe_VERSION}")
caffe_status(" Git : ${Caffe_GIT_VERSION}")
caffe_status(" System : ${CMAKE_SYSTEM_NAME}")
caffe_status(" C++ compiler : ${CMAKE_CXX_COMPILER}")
Expand Down Expand Up @@ -136,11 +136,6 @@ function(caffe_print_configuration_summary)
else()
caffe_status(" cuDNN : Disabled")
endif()
if (USE_CNMEM)
caffe_status(" CNMeM : " HAVE_CNMEM THEN "Yes" ELSE "Not found")
else()
caffe_status(" CNMeM : Disabled")
endif()
caffe_status("")
endif()
if(HAVE_PYTHON)
Expand Down
5 changes: 1 addition & 4 deletions cmake/Targets.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,7 @@ function(caffe_default_properties target)
DEBUG_POSTFIX ${Caffe_DEBUG_POSTFIX}
ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin"
VERSION ${CAFFE_TARGET_VERSION}
SOVERSION ${CAFFE_TARGET_SOVERSION}
)
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
endfunction()

################################################################################################
Expand Down
7 changes: 2 additions & 5 deletions cmake/Templates/CaffeConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,8 @@
#
# Caffe_HAVE_CUDA - signals about CUDA support
# Caffe_HAVE_CUDNN - signals about cuDNN support
# Caffe_HAVE_CNMEM - signals about CNMeM support
#
#
#


# OpenCV dependency

if(NOT OpenCV_FOUND)
Expand Down Expand Up @@ -58,4 +56,3 @@ set(Caffe_DEFINITIONS "@Caffe_DEFINITIONS@")
set(Caffe_CPU_ONLY @CPU_ONLY@)
set(Caffe_HAVE_CUDA @HAVE_CUDA@)
set(Caffe_HAVE_CUDNN @HAVE_CUDNN@)
set(Caffe_HAVE_CNMEM @HAVE_CNMEM@)
4 changes: 0 additions & 4 deletions cmake/Templates/caffe_config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@
#cmakedefine HAVE_CUDNN
#cmakedefine USE_CUDNN

/* NVIDIA CNMeM */
#cmakedefine HAVE_CNMEM
#cmakedefine USE_CNMEM

/* NVIDA cuDNN */
#cmakedefine CPU_ONLY

Expand Down
1 change: 0 additions & 1 deletion include/caffe/caffe.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#include "caffe/layer.hpp"
#include "caffe/layer_factory.hpp"
#include "caffe/net.hpp"
#include "caffe/parallel.hpp"
#include "caffe/proto/caffe.pb.h"
#include "caffe/solver.hpp"
#include "caffe/util/benchmark.hpp"
Expand Down
Loading

0 comments on commit 1beb9ac

Please sign in to comment.