diff options
author | koray kavukcuoglu <koray@kavukcuoglu.org> | 2011-10-02 16:46:12 +0400 |
---|---|---|
committer | koray kavukcuoglu <koray@kavukcuoglu.org> | 2011-10-02 16:46:12 +0400 |
commit | b97099b3253362dc2c14994e4783a731e2eb1afb (patch) | |
tree | a9f77376cd068919b007d2ae954750e29bb9d5ff | |
parent | 72595c7a99e757d7ef34abd5546b62a1f7a8511d (diff) |
converted build system to cmake compatible. CUDA + CMAKE is not handled properly I think.
-rw-r--r-- | CMakeLists.txt | 128 | ||||
-rw-r--r-- | nnx-1.0-1.rockspec | 117 | ||||
-rw-r--r-- | test/CMakeLists.txt | 7 |
3 files changed, 133 insertions, 119 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..52e3acd --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,128 @@ +cmake_minimum_required(VERSION 2.8) + +set (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) + +IF(${CMAKE_PROJECT_NAME} STREQUAL "Torch") + SET(TORCH_LIBRARIES TH luaT) + SET(TORCH_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + SET(TORCH_TH TH) + SET(TORCH_luaT luaT) + + SET(INSTALL_PREFIX /${Torch_INSTALL_LUA_PATH_SUBDIR}/nnx) + SET(CINSTALL_PREFIX /${Torch_INSTALL_LUA_CPATH_SUBDIR}) + INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR}) + SET(LIBS ${TORCH_LIBRARIES} ${LUA_LIBRARIES}) +ELSE(${CMAKE_PROJECT_NAME} STREQUAL "Torch") + # infer path for Torch7 + string (REGEX REPLACE "(.*)lib/luarocks/rocks.*" "\\1" TORCH_PREFIX "${CMAKE_INSTALL_PREFIX}" ) + message (STATUS "Found Torch7, installed in: " ${TORCH_PREFIX}) + + find_package (Torch REQUIRED) + SET(INSTALL_PREFIX /lua/nnx) + SET(CINSTALL_PREFIX /lib) +ENDIF(${CMAKE_PROJECT_NAME} STREQUAL "Torch") + +find_package (OpenMP REQUIRED) + +if (OPENMP_FOUND) + message (STATUS "OpenMP Found with compiler flag : ${OpenMP_C_FLAGS}") + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") +endif (OPENMP_FOUND) + +set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + +include_directories (${TORCH_INCLUDE_DIR} ${PROJECT_SOURCE_DIR}) + +SET(WITH_CUDA OFF CACHE BOOL "Compile qlua and associated packages") + +IF(EXISTS "${TORCH_BIN_DIR}/../include/THC/THC.h") + FIND_PACKAGE(CUDA 4.0) +ENDIF(EXISTS "${TORCH_BIN_DIR}/../include/THC/THC.h") + +IF (CUDA_FOUND) + # bug on Apple + IF(APPLE) + LINK_DIRECTORIES("/usr/local/cuda/lib/") + ENDIF(APPLE) + + find_library (TORCH_THC THC ${TORCH_BIN_DIR}/../lib NO_DEFAULT_PATH) + + set (TORCH_LIBRARIES ${TORCH_TH} ${TORCH_THC} ${TORCH_luaT} ${TORCH_lua}) + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWITH_CUDA") + + cuda_add_library (lbfgs SHARED lbfgs.c) + target_link_libraries (lbfgs ${TORCH_LIBRARIES}) + CUDA_ADD_CUBLAS_TO_TARGET(lbfgs) + install_targets (${CINSTALL_PREFIX} lbfgs) + +ELSE (CUDA_FOUND) + + MESSAGE(STATUS "Disabling CUDA (CUDA 4.0 required, and not found)") + MESSAGE(STATUS "If CUDA 4.0 is installed, then specify CUDA_TOOLKIT_ROOT_DIR") + + set (TORCH_LIBRARIES ${TORCH_TH} ${TORCH_luaT} ${TORCH_lua}) + + add_library (lbfgs SHARED lbfgs.c) + target_link_libraries (lbfgs ${TORCH_LIBRARIES}) + install_targets (${CINSTALL_PREFIX} lbfgs) + +ENDIF (CUDA_FOUND) + +include_directories (${TORCH_INCLUDE_DIR} ${PROJECT_SOURCE_DIR}) +add_library (nnx SHARED init.c) +link_directories (${TORCH_LIBRARY_DIR}) +target_link_libraries (nnx ${TORCH_LIBRARIES}) + +install_files(${INSTALL_PREFIX} init.lua) +install_files(${INSTALL_PREFIX} Abs.lua) +install_files(${INSTALL_PREFIX} ConfusionMatrix.lua) +install_files(${INSTALL_PREFIX} DistNLLCriterion.lua) +install_files(${INSTALL_PREFIX} KLDivCriterion.lua) +install_files(${INSTALL_PREFIX} DistMarginCriterion.lua) +install_files(${INSTALL_PREFIX} Logger.lua) +install_files(${INSTALL_PREFIX} Probe.lua) +install_files(${INSTALL_PREFIX} HardShrink.lua) +install_files(${INSTALL_PREFIX} Narrow.lua) +install_files(${INSTALL_PREFIX} Type.lua) +install_files(${INSTALL_PREFIX} Power.lua) +install_files(${INSTALL_PREFIX} Square.lua) +install_files(${INSTALL_PREFIX} Sqrt.lua) +install_files(${INSTALL_PREFIX} Threshold.lua) +install_files(${INSTALL_PREFIX} OmpModule.lua) +install_files(${INSTALL_PREFIX} SpatialClassifier.lua) +install_files(${INSTALL_PREFIX} SpatialMaxPooling.lua) +install_files(${INSTALL_PREFIX} SpatialLinear.lua) +install_files(${INSTALL_PREFIX} SpatialPadding.lua) +install_files(${INSTALL_PREFIX} SpatialNormalization.lua) +install_files(${INSTALL_PREFIX} SpatialUpSampling.lua) +install_files(${INSTALL_PREFIX} SpatialReSampling.lua) +install_files(${INSTALL_PREFIX} SpatialConvolutionSparse.lua) +install_files(${INSTALL_PREFIX} SuperCriterion.lua) +install_files(${INSTALL_PREFIX} SpatialCriterion.lua) +install_files(${INSTALL_PREFIX} Trainer.lua) +install_files(${INSTALL_PREFIX} OnlineTrainer.lua) +install_files(${INSTALL_PREFIX} DataSet.lua) +install_files(${INSTALL_PREFIX} DataList.lua) +install_files(${INSTALL_PREFIX} DataSetLabelMe.lua) +install_files(${INSTALL_PREFIX} CMulTable.lua) +install_files(${INSTALL_PREFIX} CAddTable.lua) +install_files(${INSTALL_PREFIX} CDivTable.lua) +install_files(${INSTALL_PREFIX} CSubTable.lua) +install_files(${INSTALL_PREFIX} Replicate.lua) +install_files(${INSTALL_PREFIX} SpatialFovea.lua) +install_files(${INSTALL_PREFIX} SpatialMSECriterion.lua) +install_files(${INSTALL_PREFIX} SpatialClassNLLCriterion.lua) +install_files(${INSTALL_PREFIX} SparseCriterion.lua) +install_files(${INSTALL_PREFIX} SpatialSparseCriterion.lua) +install_files(${INSTALL_PREFIX} SpatialGraph.lua) +install_files(${INSTALL_PREFIX} SpatialColorTransform.lua) +install_files(${INSTALL_PREFIX} SpatialRecursiveFovea.lua) +install_files(${INSTALL_PREFIX} Optimization.lua) +install_files(${INSTALL_PREFIX} LBFGSOptimization.lua) +install_files(${INSTALL_PREFIX} CGOptimization.lua) +install_files(${INSTALL_PREFIX} SGDOptimization.lua) +install_files(${INSTALL_PREFIX} GeneticSGDOptimization.lua) +install_files(${INSTALL_PREFIX} BatchOptimization.lua) +install_files(${INSTALL_PREFIX} BatchTrainer.lua) +add_subdirectory (test) +install_targets(${CINSTALL_PREFIX} nnx) diff --git a/nnx-1.0-1.rockspec b/nnx-1.0-1.rockspec index b58ea4e..aafe234 100644 --- a/nnx-1.0-1.rockspec +++ b/nnx-1.0-1.rockspec @@ -29,123 +29,6 @@ dependencies = { build = { type = "cmake", - cmake = [[ - cmake_minimum_required(VERSION 2.8) - - set (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) - - # infer path for Torch7 - string (REGEX REPLACE "(.*)lib/luarocks/rocks.*" "\\1" TORCH_PREFIX "${CMAKE_INSTALL_PREFIX}" ) - message (STATUS "Found Torch7, installed in: " ${TORCH_PREFIX}) - - find_package (Torch REQUIRED) - - find_package (OpenMP REQUIRED) - - if (OPENMP_FOUND) - message (STATUS "OpenMP Found with compiler flag : ${OpenMP_C_FLAGS}") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") - endif (OPENMP_FOUND) - - set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) - - include_directories (${TORCH_INCLUDE_DIR} ${PROJECT_SOURCE_DIR}) - - SET(WITH_CUDA OFF CACHE BOOL "Compile qlua and associated packages") - - IF(EXISTS "${TORCH_BIN_DIR}/../include/THC/THC.h") - FIND_PACKAGE(CUDA 4.0) - ENDIF(EXISTS "${TORCH_BIN_DIR}/../include/THC/THC.h") - - IF (CUDA_FOUND) - # bug on Apple - IF(APPLE) - LINK_DIRECTORIES("/usr/local/cuda/lib/") - ENDIF(APPLE) - - find_library (TORCH_THC THC ${TORCH_BIN_DIR}/../lib NO_DEFAULT_PATH) - - set (TORCH_LIBRARIES ${TORCH_TH} ${TORCH_THC} ${TORCH_luaT} ${TORCH_lua}) - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWITH_CUDA") - - cuda_add_library (lbfgs SHARED lbfgs.c) - target_link_libraries (lbfgs ${TORCH_LIBRARIES}) - CUDA_ADD_CUBLAS_TO_TARGET(lbfgs) - install_targets (/lib lbfgs) - - ELSE (CUDA_FOUND) - - MESSAGE(STATUS "Disabling CUDA (CUDA 4.0 required, and not found)") - MESSAGE(STATUS "If CUDA 4.0 is installed, then specify CUDA_TOOLKIT_ROOT_DIR") - - set (TORCH_LIBRARIES ${TORCH_TH} ${TORCH_luaT} ${TORCH_lua}) - - add_library (lbfgs SHARED lbfgs.c) - target_link_libraries (lbfgs ${TORCH_LIBRARIES}) - install_targets (/lib lbfgs) - - ENDIF (CUDA_FOUND) - - include_directories (${TORCH_INCLUDE_DIR} ${PROJECT_SOURCE_DIR}) - add_library (nnx SHARED init.c) - link_directories (${TORCH_LIBRARY_DIR}) - target_link_libraries (nnx ${TORCH_LIBRARIES}) - - install_files(/lua/nnx init.lua) - install_files(/lua/nnx Abs.lua) - install_files(/lua/nnx ConfusionMatrix.lua) - install_files(/lua/nnx DistNLLCriterion.lua) - install_files(/lua/nnx KLDivCriterion.lua) - install_files(/lua/nnx DistMarginCriterion.lua) - install_files(/lua/nnx Logger.lua) - install_files(/lua/nnx Probe.lua) - install_files(/lua/nnx HardShrink.lua) - install_files(/lua/nnx Narrow.lua) - install_files(/lua/nnx Type.lua) - install_files(/lua/nnx Power.lua) - install_files(/lua/nnx Square.lua) - install_files(/lua/nnx Sqrt.lua) - install_files(/lua/nnx Threshold.lua) - install_files(/lua/nnx OmpModule.lua) - install_files(/lua/nnx SpatialClassifier.lua) - install_files(/lua/nnx SpatialMaxSampling.lua) - install_files(/lua/nnx SpatialLinear.lua) - install_files(/lua/nnx SpatialPadding.lua) - install_files(/lua/nnx SpatialNormalization.lua) - install_files(/lua/nnx SpatialUpSampling.lua) - install_files(/lua/nnx SpatialReSampling.lua) - install_files(/lua/nnx SpatialConvolutionSparse.lua) - install_files(/lua/nnx SuperCriterion.lua) - install_files(/lua/nnx SpatialCriterion.lua) - install_files(/lua/nnx Trainer.lua) - install_files(/lua/nnx OnlineTrainer.lua) - install_files(/lua/nnx DataSet.lua) - install_files(/lua/nnx DataList.lua) - install_files(/lua/nnx DataSetLabelMe.lua) - install_files(/lua/nnx CMulTable.lua) - install_files(/lua/nnx CAddTable.lua) - install_files(/lua/nnx CDivTable.lua) - install_files(/lua/nnx CSubTable.lua) - install_files(/lua/nnx Replicate.lua) - install_files(/lua/nnx SpatialFovea.lua) - install_files(/lua/nnx SpatialMSECriterion.lua) - install_files(/lua/nnx SpatialClassNLLCriterion.lua) - install_files(/lua/nnx SparseCriterion.lua) - install_files(/lua/nnx SpatialSparseCriterion.lua) - install_files(/lua/nnx SpatialGraph.lua) - install_files(/lua/nnx SpatialColorTransform.lua) - install_files(/lua/nnx SpatialRecursiveFovea.lua) - install_files(/lua/nnx Optimization.lua) - install_files(/lua/nnx LBFGSOptimization.lua) - install_files(/lua/nnx CGOptimization.lua) - install_files(/lua/nnx SGDOptimization.lua) - install_files(/lua/nnx GeneticSGDOptimization.lua) - install_files(/lua/nnx BatchOptimization.lua) - install_files(/lua/nnx BatchTrainer.lua) - add_subdirectory (test) - install_targets(/lib nnx) - ]], - variables = { CMAKE_INSTALL_PREFIX = "$(PREFIX)" } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 96586c3..d22c194 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,3 +1,6 @@ -install_files(/lua/nnx test-all.lua) -install_files(/lua/nnx test-omp.lua) +install_files(${INSTALL_PREFIX} test-all.lua) +install_files(${INSTALL_PREFIX} test-omp.lua) +install_files(${INSTALL_PREFIX} test_lbfgs.lua) +install_files(${INSTALL_PREFIX} test_cg.lua) +install_files(${INSTALL_PREFIX} rosenbrock.lua) |