From a73d878e3f444316a2bb92b851f790d93992c46d Mon Sep 17 00:00:00 2001 From: Edoardo Pasca Date: Sat, 4 Aug 2018 23:07:29 +0100 Subject: beginning of CMake compiled Matlab binding --- Wrappers/Matlab/CMakeLists.txt | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 Wrappers/Matlab/CMakeLists.txt (limited to 'Wrappers/Matlab') diff --git a/Wrappers/Matlab/CMakeLists.txt b/Wrappers/Matlab/CMakeLists.txt new file mode 100755 index 0000000..349baf6 --- /dev/null +++ b/Wrappers/Matlab/CMakeLists.txt @@ -0,0 +1,29 @@ +project(regulariserMatlab) + +message('<<<<<<<<<<>>>>>>>>>>>>') + +message('Compiling ROF-TV...') +#mex ROF_TV.c ROF_TV_core.c utils.c COMPFLAGS="\$COMPFLAGS -fopenmp -Wall -std=c99" +#movefile('ROF_TV.mex*',Pathmove); + + +find_package(Matlab COMPONENTS MAIN_PROGRAM MX_LIBRARY ENG_LIBRARY ) +message ("Matlab mex library " ${Matlab_LIBRARIES}) + + + +#C:\Users\ofn77899\Documents\Projects\CCPi\GitHub\CCPi-FISTA_Reconstruction\Core\regularisers_CPU +matlab_add_mex( + NAME MatlabWrapper + SRC + #${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_CPU/ROF_TV.c + ${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_CPU/TNV.c + LINK_TO cilreg ${Matlab_LIBRARIES} + ) + +target_include_directories(MatlabWrapper + PUBLIC ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU + ${CMAKE_SOURCE_DIR}/Core/regularisers_GPU + ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU + ${CMAKE_SOURCE_DIR}/Core/ + ${MATLAB_INCLUDE_DIR}) \ No newline at end of file -- cgit v1.2.3 From e6cb12cc6603cff6e8837f7a922a740fb2ee3b02 Mon Sep 17 00:00:00 2001 From: Edoardo Pasca Date: Sun, 5 Aug 2018 13:25:46 +0100 Subject: add all CPU Matlab wrappers --- Wrappers/Matlab/CMakeLists.txt | 112 ++++++++++++++++++++++++++++++++++++----- recipes/regularisers/bld.bat | 2 +- 2 files changed, 100 insertions(+), 14 deletions(-) (limited to 'Wrappers/Matlab') diff --git a/Wrappers/Matlab/CMakeLists.txt b/Wrappers/Matlab/CMakeLists.txt index 349baf6..012bf96 100755 --- a/Wrappers/Matlab/CMakeLists.txt +++ b/Wrappers/Matlab/CMakeLists.txt @@ -1,29 +1,115 @@ project(regulariserMatlab) -message('<<<<<<<<<<>>>>>>>>>>>>') -message('Compiling ROF-TV...') -#mex ROF_TV.c ROF_TV_core.c utils.c COMPFLAGS="\$COMPFLAGS -fopenmp -Wall -std=c99" -#movefile('ROF_TV.mex*',Pathmove); +find_package(Matlab REQUIRED COMPONENTS MAIN_PROGRAM MX_LIBRARY ENG_LIBRARY ) -find_package(Matlab COMPONENTS MAIN_PROGRAM MX_LIBRARY ENG_LIBRARY ) -message ("Matlab mex library " ${Matlab_LIBRARIES}) +#C:\Users\ofn77899\Documents\Projects\CCPi\GitHub\CCPi-FISTA_Reconstruction\Core\regularisers_CPU +# matlab_add_mex( + # NAME CPU_ROF + # SRC + # ${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_CPU/ROF_TV.c + # LINK_TO cilreg ${Matlab_LIBRARIES} + # ) + +# target_include_directories(CPU_ROF + # PUBLIC ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU + # ${CMAKE_SOURCE_DIR}/Core/regularisers_GPU + # ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU + # ${CMAKE_SOURCE_DIR}/Core/ + # ${MATLAB_INCLUDE_DIR}) + + # matlab_add_mex( + # NAME CPU_TNV + # SRC + # ${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_CPU/TNV.c + # LINK_TO cilreg ${Matlab_LIBRARIES} + # ) + +# target_include_directories(CPU_TNV + # PUBLIC ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU + # ${CMAKE_SOURCE_DIR}/Core/regularisers_GPU + # ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU + # ${CMAKE_SOURCE_DIR}/Core/ + # ${MATLAB_INCLUDE_DIR}) + +#set (CPU_MEX_FILES "regularisers_CPU/TNV.c;regularisers_CPU/ROF_TV.c") +#set (MEX_TARGETS "CPU_TNV;CPU_ROF") +#list(APPEND MEX_TARGETS "CPU_TNV") +#list(APPEND MEX_TARGETS "CPU_ROF") +set (CPU_TARGETS "CPU_TNV;CPU_ROF") +file(GLOB CPU_MEX_FILES + "${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_CPU/*.c" + "${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/inpainters_CPU/*.c" +) +list(LENGTH CPU_MEX_FILES num) -#C:\Users\ofn77899\Documents\Projects\CCPi\GitHub\CCPi-FISTA_Reconstruction\Core\regularisers_CPU -matlab_add_mex( - NAME MatlabWrapper + +MATH(EXPR num "${num}-1") +#set(num "-1") + +foreach(tgt RANGE ${num}) + message("number " ${tgt}) + #list(GET CPU_TARGETS ${tgt} current_target) + list(GET CPU_MEX_FILES ${tgt} current_file) + get_filename_component(current_target ${current_file} NAME) + message("matlab_add_mex " ${current_target}) + matlab_add_mex( + NAME ${current_target} SRC - #${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_CPU/ROF_TV.c - ${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_CPU/TNV.c + ${current_file} LINK_TO cilreg ${Matlab_LIBRARIES} ) -target_include_directories(MatlabWrapper +target_include_directories(${current_target} PUBLIC ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU ${CMAKE_SOURCE_DIR}/Core/regularisers_GPU ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU ${CMAKE_SOURCE_DIR}/Core/ - ${MATLAB_INCLUDE_DIR}) \ No newline at end of file + ${MATLAB_INCLUDE_DIR}) + + list(APPEND CPU_MEX_TARGETS ${current_target}) +endforeach() + +add_custom_target(MatlabWrapper DEPENDS ${CPU_MEX_TARGETS}) + +find_package(CUDA) +if (CUDA_FOUND) + file(GLOB GPU_MEX_FILES + "${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_GPU/*.c" + ) + + list(LENGTH GPU_MEX_FILES num) + + + MATH(EXPR num "${num}-1") +#set(num "-1") + + foreach(tgt RANGE ${num}) + message("number " ${tgt}) + #list(GET CPU_TARGETS ${tgt} current_target) + list(GET GPU_MEX_FILES ${tgt} current_file) + get_filename_component(current_target ${current_file} NAME) + message("matlab_add_mex " ${current_target}) + matlab_add_mex( + NAME ${current_target} + SRC + ${current_file} + LINK_TO cilreg ${Matlab_LIBRARIES} + ) + + target_include_directories(${current_target} + PUBLIC ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU + ${CMAKE_SOURCE_DIR}/Core/regularisers_GPU + ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU + ${CMAKE_SOURCE_DIR}/Core/ + ${MATLAB_INCLUDE_DIR}) + + list(APPEND CPU_MEX_TARGETS ${current_target}) + endforeach() + + add_custom_target(MatlabWrapperGPU DEPENDS ${GPU_MEX_TARGETS}) + +endif() diff --git a/recipes/regularisers/bld.bat b/recipes/regularisers/bld.bat index 6f2f7e7..43a5286 100644 --- a/recipes/regularisers/bld.bat +++ b/recipes/regularisers/bld.bat @@ -10,7 +10,7 @@ cd "%SRC_DIR%\build" echo "we should be in %SRC_DIR%\build" -cmake -G "NMake Makefiles" -DLIBRARY_LIB="%CONDA_PREFIX%\lib" -DLIBRARY_INC="%CONDA_PREFIX%" -DCMAKE_INSTALL_PREFIX="%PREFIX%\Library" "%SRC_DIR%\build" +cmake -G "NMake Makefiles" "%RECIPE_DIR%\..\..\" -DLIBRARY_LIB="%CONDA_PREFIX%\lib" -DLIBRARY_INC="%CONDA_PREFIX%" -DCMAKE_INSTALL_PREFIX="%PREFIX%\Library" -DCONDA_BUILD=ON -DBUILD_WRAPPERS=OFF ::-DBOOST_LIBRARYDIR="%CONDA_PREFIX%\Library\lib" -DBOOST_INCLUDEDIR="%CONDA_PREFIX%\Library\include" -DBOOST_ROOT="%CONDA_PREFIX%\Library\lib" -- cgit v1.2.3 From a490e0a75e810591f87c73e41965fad9187f6cd1 Mon Sep 17 00:00:00 2001 From: Edoardo Pasca Date: Sun, 5 Aug 2018 15:56:52 +0100 Subject: added BUILD_PYTHON_WRAPPERS BUILD_MATLAB_WRAPPERS BUILD_CUDA options --- CMakeLists.txt | 9 +++-- Core/CMakeLists.txt | 68 ++++++++++++++++++------------------ Wrappers/CMakeLists.txt | 14 +++----- Wrappers/Matlab/CMakeLists.txt | 68 +++++++++++++++++++----------------- Wrappers/Python/CMakeLists.txt | 52 +++++++++++++-------------- Wrappers/Python/conda-recipe/bld.bat | 2 +- 6 files changed, 107 insertions(+), 106 deletions(-) (limited to 'Wrappers/Matlab') diff --git a/CMakeLists.txt b/CMakeLists.txt index df596e7..d9a0f5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,10 @@ set (CIL_VERSION '${CIL_VERSION_MAJOR}.${CIL_VERSION_MINOR}.${CIL_VERSION_PATCH} # set the Python variables for the Conda environment #include(${CMAKE_SOURCE_DIR}/CMake/FindAnacondaEnvironment.cmake) +option (BUILD_MATLAB_WRAPPERS "Build Matlab Wrappers" OFF) +option (BUILD_PYTHON_WRAPPERS "Build Python Wrappers" OFF) +option (CONDA_BUILD "Conda Build" OFF) +option (BUILD_CUDA "Build the CUDA modules" ON) + add_subdirectory(Core) -if (BUILD_WRAPPERS) - add_subdirectory(Wrappers) -endif() \ No newline at end of file +add_subdirectory(Wrappers) diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt index 2665277..5df55f1 100644 --- a/Core/CMakeLists.txt +++ b/Core/CMakeLists.txt @@ -11,8 +11,7 @@ project(RGL_core) # conda orchestrated build message("CIL_VERSION ${CIL_VERSION}") #include (GenerateExportHeader) -option (BUILD_WRAPPERS "Build Wrappers" ON) -option (CONDA_BUILD "Conda Build" OFF) + find_package(OpenMP) if (OPENMP_FOUND) @@ -96,35 +95,36 @@ message ("I'd install into ${CMAKE_INSTALL_PREFIX} lib bin") endif() # GPU Regularisers - -find_package(CUDA) -if (CUDA_FOUND) - set(CUDA_NVCC_FLAGS "-Xcompiler -fPIC -shared -D_FORCE_INLINES") - message("CUDA FLAGS ${CUDA_NVCC_FLAGS}") - CUDA_ADD_LIBRARY(cilregcuda SHARED - ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/TV_ROF_GPU_core.cu - ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/TV_FGP_GPU_core.cu - ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/TV_SB_GPU_core.cu - ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/LLT_ROF_GPU_core.cu - ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/TGV_GPU_core.cu - ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/dTV_FGP_GPU_core.cu - ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/NonlDiff_GPU_core.cu - ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/Diffus_4thO_GPU_core.cu - ) - if (UNIX) - message ("I'd install into ${CMAKE_INSTALL_PREFIX}/lib") - install(TARGETS cilregcuda - LIBRARY DESTINATION lib - CONFIGURATIONS ${CMAKE_BUILD_TYPE} - ) - elseif(WIN32) - message ("I'd install into ${CMAKE_INSTALL_PREFIX} lib bin") - install(TARGETS cilregcuda - RUNTIME DESTINATION bin - ARCHIVE DESTINATION lib - CONFIGURATIONS ${CMAKE_BUILD_TYPE} - ) - endif() -else() - message("CUDA NOT FOUND") -endif() +if (BUILD_CUDA) + find_package(CUDA) + if (CUDA_FOUND) + set(CUDA_NVCC_FLAGS "-Xcompiler -fPIC -shared -D_FORCE_INLINES") + message("CUDA FLAGS ${CUDA_NVCC_FLAGS}") + CUDA_ADD_LIBRARY(cilregcuda SHARED + ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/TV_ROF_GPU_core.cu + ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/TV_FGP_GPU_core.cu + ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/TV_SB_GPU_core.cu + ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/LLT_ROF_GPU_core.cu + ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/TGV_GPU_core.cu + ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/dTV_FGP_GPU_core.cu + ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/NonlDiff_GPU_core.cu + ${CMAKE_CURRENT_SOURCE_DIR}/regularisers_GPU/Diffus_4thO_GPU_core.cu + ) + if (UNIX) + message ("I'd install into ${CMAKE_INSTALL_PREFIX}/lib") + install(TARGETS cilregcuda + LIBRARY DESTINATION lib + CONFIGURATIONS ${CMAKE_BUILD_TYPE} + ) + elseif(WIN32) + message ("I'd install into ${CMAKE_INSTALL_PREFIX} lib bin") + install(TARGETS cilregcuda + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + CONFIGURATIONS ${CMAKE_BUILD_TYPE} + ) + endif() + else() + message("CUDA NOT FOUND") + endif() +endif() \ No newline at end of file diff --git a/Wrappers/CMakeLists.txt b/Wrappers/CMakeLists.txt index 9ae1be1..8d02df6 100644 --- a/Wrappers/CMakeLists.txt +++ b/Wrappers/CMakeLists.txt @@ -11,13 +11,9 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - -find_package(Matlab) -if (MATLAB_FOUND) - message(Matlab) - add_subdirectory(Matlab) -else() - message("Matlab not found") +if (BUILD_MATLAB_WRAPPERS) + add_subdirectory(Matlab) endif() - -add_subdirectory(Python) \ No newline at end of file +if (BUILD_PYTHON_WRAPPERS) + add_subdirectory(Python) +endif() \ No newline at end of file diff --git a/Wrappers/Matlab/CMakeLists.txt b/Wrappers/Matlab/CMakeLists.txt index 012bf96..e9cc6a8 100755 --- a/Wrappers/Matlab/CMakeLists.txt +++ b/Wrappers/Matlab/CMakeLists.txt @@ -75,41 +75,43 @@ endforeach() add_custom_target(MatlabWrapper DEPENDS ${CPU_MEX_TARGETS}) -find_package(CUDA) -if (CUDA_FOUND) - file(GLOB GPU_MEX_FILES - "${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_GPU/*.c" - ) +if (BUILD_CUDA) + find_package(CUDA) + if (CUDA_FOUND) + file(GLOB GPU_MEX_FILES + "${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_GPU/*.c" + ) - list(LENGTH GPU_MEX_FILES num) + list(LENGTH GPU_MEX_FILES num) - MATH(EXPR num "${num}-1") -#set(num "-1") + MATH(EXPR num "${num}-1") + #set(num "-1") - foreach(tgt RANGE ${num}) - message("number " ${tgt}) - #list(GET CPU_TARGETS ${tgt} current_target) - list(GET GPU_MEX_FILES ${tgt} current_file) - get_filename_component(current_target ${current_file} NAME) - message("matlab_add_mex " ${current_target}) - matlab_add_mex( - NAME ${current_target} - SRC - ${current_file} - LINK_TO cilreg ${Matlab_LIBRARIES} - ) - - target_include_directories(${current_target} - PUBLIC ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU - ${CMAKE_SOURCE_DIR}/Core/regularisers_GPU - ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU - ${CMAKE_SOURCE_DIR}/Core/ - ${MATLAB_INCLUDE_DIR}) - - list(APPEND CPU_MEX_TARGETS ${current_target}) - endforeach() - - add_custom_target(MatlabWrapperGPU DEPENDS ${GPU_MEX_TARGETS}) + foreach(tgt RANGE ${num}) + message("number " ${tgt}) + #list(GET CPU_TARGETS ${tgt} current_target) + list(GET GPU_MEX_FILES ${tgt} current_file) + get_filename_component(current_target ${current_file} NAME) + message("matlab_add_mex " ${current_target}) + matlab_add_mex( + NAME ${current_target} + SRC + ${current_file} + LINK_TO cilreg ${Matlab_LIBRARIES} + ) + + target_include_directories(${current_target} + PUBLIC ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU + ${CMAKE_SOURCE_DIR}/Core/regularisers_GPU + ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU + ${CMAKE_SOURCE_DIR}/Core/ + ${MATLAB_INCLUDE_DIR}) + + list(APPEND CPU_MEX_TARGETS ${current_target}) + endforeach() + + add_custom_target(MatlabWrapperGPU DEPENDS ${GPU_MEX_TARGETS}) -endif() + endif() +endif() \ No newline at end of file diff --git a/Wrappers/Python/CMakeLists.txt b/Wrappers/Python/CMakeLists.txt index 464c916..52f3f39 100644 --- a/Wrappers/Python/CMakeLists.txt +++ b/Wrappers/Python/CMakeLists.txt @@ -41,33 +41,33 @@ elseif(UNIX) endif() # GPU regularisers - -find_package(CUDA) -if (CUDA_FOUND) - message("CUDA FOUND") - set (SETUP_GPU_WRAPPERS "extra_libraries += ['cilregcuda']\n\ -setup( \n\ - name='ccpi', \n\ - description='CCPi Core Imaging Library - Image regularisers GPU',\n\ - version=cil_version,\n\ - cmdclass = {'build_ext': build_ext},\n\ - ext_modules = [Extension('ccpi.filters.gpu_regularisers',\n\ - sources=[ \n\ - os.path.join('.' , 'src', 'gpu_regularisers.pyx' ),\n\ - ],\n\ - include_dirs=extra_include_dirs, \n\ - library_dirs=extra_library_dirs, \n\ - extra_compile_args=extra_compile_args, \n\ - libraries=extra_libraries ), \n\ - ],\n\ - zip_safe = False, \n\ - packages = {'ccpi','ccpi.filters'},\n\ -)") -else() - message("CUDA NOT FOUND") - set(SETUP_GPU_WRAPPERS "#CUDA NOT FOUND") +if (BUILD_CUDA) + find_package(CUDA) + if (CUDA_FOUND) + message("CUDA FOUND") + set (SETUP_GPU_WRAPPERS "extra_libraries += ['cilregcuda']\n\ + setup( \n\ + name='ccpi', \n\ + description='CCPi Core Imaging Library - Image regularisers GPU',\n\ + version=cil_version,\n\ + cmdclass = {'build_ext': build_ext},\n\ + ext_modules = [Extension('ccpi.filters.gpu_regularisers',\n\ + sources=[ \n\ + os.path.join('.' , 'src', 'gpu_regularisers.pyx' ),\n\ + ],\n\ + include_dirs=extra_include_dirs, \n\ + library_dirs=extra_library_dirs, \n\ + extra_compile_args=extra_compile_args, \n\ + libraries=extra_libraries ), \n\ + ],\n\ + zip_safe = False, \n\ + packages = {'ccpi','ccpi.filters'},\n\ + )") + else() + message("CUDA NOT FOUND") + set(SETUP_GPU_WRAPPERS "#CUDA NOT FOUND") + endif() endif() - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/setup-regularisers.py.in" "${CMAKE_CURRENT_BINARY_DIR}/setup-regularisers.py") diff --git a/Wrappers/Python/conda-recipe/bld.bat b/Wrappers/Python/conda-recipe/bld.bat index e58808b..6c84355 100644 --- a/Wrappers/Python/conda-recipe/bld.bat +++ b/Wrappers/Python/conda-recipe/bld.bat @@ -10,7 +10,7 @@ ROBOCOPY /E "%RECIPE_DIR%\..\..\..\Core" "%SRC_DIR%\Core" cd %SRC_DIR% :: issue cmake to create setup.py -cmake -G "NMake Makefiles" %RECIPE_DIR%\..\..\..\ -DBUILD_WRAPPERS=ON -DCONDA_BUILD=ON -DCMAKE_BUILD_TYPE="Release" -DLIBRARY_LIB="%CONDA_PREFIX%\lib" -DLIBRARY_INC="%CONDA_PREFIX%" -DCMAKE_INSTALL_PREFIX="%PREFIX%\Library" +cmake -G "NMake Makefiles" %RECIPE_DIR%\..\..\..\ -DBUILD_PYTHON_WRAPPERS=ON -DCONDA_BUILD=ON -DBUILD_CUDA=OFF -DCMAKE_BUILD_TYPE="Release" -DLIBRARY_LIB="%CONDA_PREFIX%\lib" -DLIBRARY_INC="%CONDA_PREFIX%" -DCMAKE_INSTALL_PREFIX="%PREFIX%\Library" ::%PYTHON% setup-regularisers.py build_ext ::if errorlevel 1 exit 1 -- cgit v1.2.3 From 4fa0c5bcd9e362cbdf2211edc85f30ec1dafee3b Mon Sep 17 00:00:00 2001 From: Edoardo Pasca Date: Mon, 6 Aug 2018 21:38:06 +0100 Subject: add destination for wrapper --- Wrappers/Matlab/CMakeLists.txt | 24 ++++++++++++++++++------ Wrappers/Python/CMakeLists.txt | 13 +++++++++++-- 2 files changed, 29 insertions(+), 8 deletions(-) (limited to 'Wrappers/Matlab') diff --git a/Wrappers/Matlab/CMakeLists.txt b/Wrappers/Matlab/CMakeLists.txt index e9cc6a8..9cbade9 100755 --- a/Wrappers/Matlab/CMakeLists.txt +++ b/Wrappers/Matlab/CMakeLists.txt @@ -2,6 +2,13 @@ project(regulariserMatlab) find_package(Matlab REQUIRED COMPONENTS MAIN_PROGRAM MX_LIBRARY ENG_LIBRARY ) +set(MATLAB_DEST_DIR "" CACHE PATH "Directory of the Matlab wrappers") +if (MATLAB_DEST_DIR) +set(MATLAB_DEST "${MATLAB_DEST_DIR}") +else() +set(MATLAB_DEST "${CMAKE_INSTALL_PREFIX}/matlab") +endif() +message(STATUS "Matlab wrappers will be installed in " ${MATLAB_DEST}) #C:\Users\ofn77899\Documents\Projects\CCPi\GitHub\CCPi-FISTA_Reconstruction\Core\regularisers_CPU @@ -38,7 +45,6 @@ find_package(Matlab REQUIRED COMPONENTS MAIN_PROGRAM MX_LIBRARY ENG_LIBRARY ) #list(APPEND MEX_TARGETS "CPU_TNV") #list(APPEND MEX_TARGETS "CPU_ROF") -set (CPU_TARGETS "CPU_TNV;CPU_ROF") file(GLOB CPU_MEX_FILES "${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_CPU/*.c" "${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/inpainters_CPU/*.c" @@ -53,13 +59,17 @@ MATH(EXPR num "${num}-1") foreach(tgt RANGE ${num}) message("number " ${tgt}) #list(GET CPU_TARGETS ${tgt} current_target) - list(GET CPU_MEX_FILES ${tgt} current_file) - get_filename_component(current_target ${current_file} NAME) - message("matlab_add_mex " ${current_target}) + list(GET CPU_MEX_FILES ${tgt} current_file_name) + get_filename_component(current_file ${current_file_name} NAME) + string(REGEX MATCH "(.+).c" match ${current_file}) + if (NOT ${match} EQUAL "" ) + set (current_target ${CMAKE_MATCH_1}) + endif() + message("matlab_add_mex target " ${current_file} " and " ${current_target}) matlab_add_mex( NAME ${current_target} SRC - ${current_file} + ${current_file_name} LINK_TO cilreg ${Matlab_LIBRARIES} ) @@ -71,6 +81,7 @@ target_include_directories(${current_target} ${MATLAB_INCLUDE_DIR}) list(APPEND CPU_MEX_TARGETS ${current_target}) + INSTALL(TARGETS ${current_target} DESTINATION "${MATLAB_DEST}") endforeach() add_custom_target(MatlabWrapper DEPENDS ${CPU_MEX_TARGETS}) @@ -108,7 +119,8 @@ if (BUILD_CUDA) ${CMAKE_SOURCE_DIR}/Core/ ${MATLAB_INCLUDE_DIR}) - list(APPEND CPU_MEX_TARGETS ${current_target}) + list(APPEND GPU_MEX_TARGETS ${current_target}) + INSTALL(TARGETS ${current_target} DESTINATION "${MATLAB_DEST}") endforeach() add_custom_target(MatlabWrapperGPU DEPENDS ${GPU_MEX_TARGETS}) diff --git a/Wrappers/Python/CMakeLists.txt b/Wrappers/Python/CMakeLists.txt index 52f3f39..2ab8f86 100644 --- a/Wrappers/Python/CMakeLists.txt +++ b/Wrappers/Python/CMakeLists.txt @@ -16,7 +16,16 @@ find_package(PythonInterp REQUIRED) if (PYTHONINTERP_FOUND) message ("Current Python " ${PYTHON_VERSION_STRING} " found " ${PYTHON_EXECUTABLE}) endif() - +if (CONDA_BUILD) +else() +set(PYTHON_DEST_DIR "" CACHE PATH "Directory of the Matlab wrappers") + if (PYTHON_DEST_DIR) + set(PYTHON_DEST "${PYTHON_DEST_DIR}") + else() + set(PYTHON_DEST "${CMAKE_INSTALL_PREFIX}/python") + endif() + message(STATUS "Python wrappers will be installed in " ${PYTHON_DEST}) +endif() ## Build the regularisers package as a library message("Creating Regularisers as shared library") @@ -46,7 +55,7 @@ if (BUILD_CUDA) if (CUDA_FOUND) message("CUDA FOUND") set (SETUP_GPU_WRAPPERS "extra_libraries += ['cilregcuda']\n\ - setup( \n\ +setup( \n\ name='ccpi', \n\ description='CCPi Core Imaging Library - Image regularisers GPU',\n\ version=cil_version,\n\ -- cgit v1.2.3 From ff5cb4f35609b0b02698978fb8210dc7d09f0190 Mon Sep 17 00:00:00 2001 From: algol Date: Fri, 10 Aug 2018 15:03:34 +0100 Subject: bugfix initialisation of array --- Wrappers/Matlab/CMakeLists.txt | 25 +++++++++++++++++---- .../Matlab/mex_compile/regularisers_CPU/ROF_TV.c | 26 ++++++++++++++++------ 2 files changed, 40 insertions(+), 11 deletions(-) (limited to 'Wrappers/Matlab') diff --git a/Wrappers/Matlab/CMakeLists.txt b/Wrappers/Matlab/CMakeLists.txt index 9cbade9..cd46051 100755 --- a/Wrappers/Matlab/CMakeLists.txt +++ b/Wrappers/Matlab/CMakeLists.txt @@ -47,17 +47,22 @@ message(STATUS "Matlab wrappers will be installed in " ${MATLAB_DEST}) file(GLOB CPU_MEX_FILES "${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_CPU/*.c" - "${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/inpainters_CPU/*.c" + #"${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_GPU/*.c" ) +#message("CPU_MEX_FILES " ${CPU_MEX_FILES}) + list(LENGTH CPU_MEX_FILES num) MATH(EXPR num "${num}-1") #set(num "-1") +message("found ${num} files") -foreach(tgt RANGE ${num}) +foreach(tgt RANGE 0 ${num}) message("number " ${tgt}) + list(LENGTH CPU_MEX_FILES num2) + message("the list is ${num2}") #list(GET CPU_TARGETS ${tgt} current_target) list(GET CPU_MEX_FILES ${tgt} current_file_name) get_filename_component(current_file ${current_file_name} NAME) @@ -70,6 +75,18 @@ foreach(tgt RANGE ${num}) NAME ${current_target} SRC ${current_file_name} + ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/FGP_TV_core.c + ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/SB_TV_core.c + ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/TGV_core.c + ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/Diffusion_core.c + ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/Diffus4th_order_core.c + ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/LLT_ROF_core.c + ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/ROF_TV_core.c + ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/FGP_dTV_core.c + ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/TNV_core.c + ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/utils.c + ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU/Diffusion_Inpaint_core.c + ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU/NonlocalMarching_Inpaint_core.c LINK_TO cilreg ${Matlab_LIBRARIES} ) @@ -79,7 +96,7 @@ target_include_directories(${current_target} ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU ${CMAKE_SOURCE_DIR}/Core/ ${MATLAB_INCLUDE_DIR}) - + set_property(TARGET ${current_target} PROPERTY C_STANDARD 99) list(APPEND CPU_MEX_TARGETS ${current_target}) INSTALL(TARGETS ${current_target} DESTINATION "${MATLAB_DEST}") endforeach() @@ -126,4 +143,4 @@ if (BUILD_CUDA) add_custom_target(MatlabWrapperGPU DEPENDS ${GPU_MEX_TARGETS}) endif() -endif() \ No newline at end of file +endif() diff --git a/Wrappers/Matlab/mex_compile/regularisers_CPU/ROF_TV.c b/Wrappers/Matlab/mex_compile/regularisers_CPU/ROF_TV.c index 6b9e1ea..ca484ba 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_CPU/ROF_TV.c +++ b/Wrappers/Matlab/mex_compile/regularisers_CPU/ROF_TV.c @@ -1,3 +1,4 @@ + /* * This work is part of the Core Imaging Library developed by * Visual Analytics and Imaging System Group of the Science Technology @@ -43,11 +44,12 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iter_numb, dimX, dimY, dimZ; - const int *dim_array; - float *Input, *Output=NULL, lambda, tau; + int number_of_dims, iter_numb, j; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array_i; + float *Input, *Output=NULL, lambda, tau; - dim_array = mxGetDimensions(prhs[0]); + dim_array_i = mxGetDimensions(prhs[0]); number_of_dims = mxGetNumberOfDimensions(prhs[0]); /*Handling Matlab input data*/ @@ -59,15 +61,25 @@ void mexFunction( if (mxGetClassID(prhs[0]) != mxSINGLE_CLASS) {mexErrMsgTxt("The input image must be in a single precision"); } if(nrhs != 4) mexErrMsgTxt("Four inputs reqired: Image(2D,3D), regularization parameter, iterations number, marching step constant"); /*Handling Matlab output data*/ - dimX = dim_array[0]; dimY = dim_array[1]; dimZ = dim_array[2]; + dimX = dim_array_i[0]; dimY = dim_array_i[1]; dimZ = dim_array_i[2]; + /* output arrays*/ if (number_of_dims == 2) { + //const mwSize dim_array[2] = {dimX, dimY}; dimZ = 1; /*2D case*/ /* output image/volume */ - Output = (float*)mxGetPr(plhs[0] = mxCreateNumericArray(2, dim_array, mxSINGLE_CLASS, mxREAL)); + Output = (float*)mxGetPr(plhs[0] = mxCreateNumericArray(2, dim_array_i, mxSINGLE_CLASS, mxREAL)); + //mexErrMsgTxt("Call me 72"); } - if (number_of_dims == 3) Output = (float*)mxGetPr(plhs[0] = mxCreateNumericArray(3, dim_array, mxSINGLE_CLASS, mxREAL)); + if (number_of_dims == 3) { + //const mwSize dim_array[3] = {dimX, dimY, dimZ}; + Output = (float*)mxGetPr(plhs[0] = mxCreateNumericArray(3, dim_array_i, mxSINGLE_CLASS, mxREAL)); + } + +// for(j=0; j<(int)(dimX*dimY*dimZ); j++) { +// if (j%10 == 0) mexErrMsgTxt("WHAT???"); +// Output[j] = 2;} TV_ROF_CPU_main(Input, Output, lambda, iter_numb, tau, dimX, dimY, dimZ); } \ No newline at end of file -- cgit v1.2.3 From 5483927af925b3892f2f48ef4eb12c07e3ce862a Mon Sep 17 00:00:00 2001 From: algol Date: Fri, 10 Aug 2018 16:24:48 +0100 Subject: MWsize CPU fix --- .../Matlab/mex_compile/regularisers_CPU/Diffusion_4thO.c | 5 +++-- Wrappers/Matlab/mex_compile/regularisers_CPU/FGP_TV.c | 5 +++-- Wrappers/Matlab/mex_compile/regularisers_CPU/FGP_dTV.c | 7 ++++--- Wrappers/Matlab/mex_compile/regularisers_CPU/LLT_ROF.c | 5 +++-- Wrappers/Matlab/mex_compile/regularisers_CPU/NonlDiff.c | 6 ++++-- .../Matlab/mex_compile/regularisers_CPU/NonlDiff_Inp.c | 10 ++++++---- .../regularisers_CPU/NonlocalMarching_Inpaint.c | 8 +++++--- Wrappers/Matlab/mex_compile/regularisers_CPU/ROF_TV.c | 14 +++----------- Wrappers/Matlab/mex_compile/regularisers_CPU/SB_TV.c | 6 ++++-- Wrappers/Matlab/mex_compile/regularisers_CPU/TGV.c | 6 ++++-- Wrappers/Matlab/mex_compile/regularisers_CPU/TNV.c | 5 +++-- Wrappers/Matlab/mex_compile/regularisers_CPU/TV_energy.c | 6 ++++-- 12 files changed, 46 insertions(+), 37 deletions(-) (limited to 'Wrappers/Matlab') diff --git a/Wrappers/Matlab/mex_compile/regularisers_CPU/Diffusion_4thO.c b/Wrappers/Matlab/mex_compile/regularisers_CPU/Diffusion_4thO.c index 81c0600..66ea9be 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_CPU/Diffusion_4thO.c +++ b/Wrappers/Matlab/mex_compile/regularisers_CPU/Diffusion_4thO.c @@ -42,8 +42,9 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iter_numb, dimX, dimY, dimZ; - const int *dim_array; + int number_of_dims, iter_numb; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array; float *Input, *Output=NULL, lambda, tau, sigma; dim_array = mxGetDimensions(prhs[0]); diff --git a/Wrappers/Matlab/mex_compile/regularisers_CPU/FGP_TV.c b/Wrappers/Matlab/mex_compile/regularisers_CPU/FGP_TV.c index aae1cb7..642362f 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_CPU/FGP_TV.c +++ b/Wrappers/Matlab/mex_compile/regularisers_CPU/FGP_TV.c @@ -44,8 +44,9 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iter, dimX, dimY, dimZ, methTV, printswitch, nonneg; - const int *dim_array; + int number_of_dims, iter, methTV, printswitch, nonneg; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array; float *Input, *Output=NULL, lambda, epsil; number_of_dims = mxGetNumberOfDimensions(prhs[0]); diff --git a/Wrappers/Matlab/mex_compile/regularisers_CPU/FGP_dTV.c b/Wrappers/Matlab/mex_compile/regularisers_CPU/FGP_dTV.c index bb868c7..1a0c070 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_CPU/FGP_dTV.c +++ b/Wrappers/Matlab/mex_compile/regularisers_CPU/FGP_dTV.c @@ -49,9 +49,10 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iter, dimX, dimY, dimZ, methTV, printswitch, nonneg; - const int *dim_array; - const int *dim_array2; + int number_of_dims, iter, methTV, printswitch, nonneg; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array; + const mwSize *dim_array2; float *Input, *InputRef, *Output=NULL, lambda, epsil, eta; number_of_dims = mxGetNumberOfDimensions(prhs[0]); diff --git a/Wrappers/Matlab/mex_compile/regularisers_CPU/LLT_ROF.c b/Wrappers/Matlab/mex_compile/regularisers_CPU/LLT_ROF.c index 81b717d..ab45446 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_CPU/LLT_ROF.c +++ b/Wrappers/Matlab/mex_compile/regularisers_CPU/LLT_ROF.c @@ -46,8 +46,9 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iterationsNumb, dimX, dimY, dimZ; - const int *dim_array; + int number_of_dims, iterationsNumb; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array; float *Input, *Output=NULL, lambdaROF, lambdaLLT, tau; dim_array = mxGetDimensions(prhs[0]); diff --git a/Wrappers/Matlab/mex_compile/regularisers_CPU/NonlDiff.c b/Wrappers/Matlab/mex_compile/regularisers_CPU/NonlDiff.c index e05f5d4..ec35b8b 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_CPU/NonlDiff.c +++ b/Wrappers/Matlab/mex_compile/regularisers_CPU/NonlDiff.c @@ -43,8 +43,10 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iter_numb, dimX, dimY, dimZ, penaltytype; - const int *dim_array; + int number_of_dims, iter_numb, penaltytype; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array; + float *Input, *Output=NULL, lambda, tau, sigma; dim_array = mxGetDimensions(prhs[0]); diff --git a/Wrappers/Matlab/mex_compile/regularisers_CPU/NonlDiff_Inp.c b/Wrappers/Matlab/mex_compile/regularisers_CPU/NonlDiff_Inp.c index eaab4a7..9833392 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_CPU/NonlDiff_Inp.c +++ b/Wrappers/Matlab/mex_compile/regularisers_CPU/NonlDiff_Inp.c @@ -45,9 +45,11 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iter_numb, dimX, dimY, dimZ, penaltytype, i, inpaint_elements; - const int *dim_array; - const int *dim_array2; + int number_of_dims, iter_numb, penaltytype, i, inpaint_elements; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array; + const mwSize *dim_array2; + float *Input, *Output=NULL, lambda, tau, sigma; unsigned char *Mask; @@ -95,7 +97,7 @@ void mexFunction( } inpaint_elements = 0; - for (i=0; i Date: Sat, 11 Aug 2018 13:21:06 +0100 Subject: MWsize GPU fix --- .../Matlab/mex_compile/regularisers_GPU/Diffusion_4thO_GPU.cpp | 5 +++-- Wrappers/Matlab/mex_compile/regularisers_GPU/FGP_TV_GPU.cpp | 6 ++++-- Wrappers/Matlab/mex_compile/regularisers_GPU/FGP_dTV_GPU.cpp | 8 +++++--- Wrappers/Matlab/mex_compile/regularisers_GPU/LLT_ROF_GPU.cpp | 6 ++++-- Wrappers/Matlab/mex_compile/regularisers_GPU/NonlDiff_GPU.cpp | 6 ++++-- Wrappers/Matlab/mex_compile/regularisers_GPU/ROF_TV_GPU.cpp | 6 ++++-- Wrappers/Matlab/mex_compile/regularisers_GPU/SB_TV_GPU.cpp | 6 ++++-- Wrappers/Matlab/mex_compile/regularisers_GPU/TGV_GPU.cpp | 5 +++-- docs/installation.txt | 8 ++++++++ 9 files changed, 39 insertions(+), 17 deletions(-) create mode 100644 docs/installation.txt (limited to 'Wrappers/Matlab') diff --git a/Wrappers/Matlab/mex_compile/regularisers_GPU/Diffusion_4thO_GPU.cpp b/Wrappers/Matlab/mex_compile/regularisers_GPU/Diffusion_4thO_GPU.cpp index 0edc067..0cc042b 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_GPU/Diffusion_4thO_GPU.cpp +++ b/Wrappers/Matlab/mex_compile/regularisers_GPU/Diffusion_4thO_GPU.cpp @@ -42,8 +42,9 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iter_numb, dimX, dimY, dimZ; - const int *dim_array; + int number_of_dims, iter_numb; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array; float *Input, *Output=NULL, lambda, tau, sigma; dim_array = mxGetDimensions(prhs[0]); diff --git a/Wrappers/Matlab/mex_compile/regularisers_GPU/FGP_TV_GPU.cpp b/Wrappers/Matlab/mex_compile/regularisers_GPU/FGP_TV_GPU.cpp index 9ed9ae0..c174e75 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_GPU/FGP_TV_GPU.cpp +++ b/Wrappers/Matlab/mex_compile/regularisers_GPU/FGP_TV_GPU.cpp @@ -43,8 +43,10 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iter, dimX, dimY, dimZ, methTV, printswitch, nonneg; - const int *dim_array; + int number_of_dims, iter, methTV, printswitch, nonneg; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array; + float *Input, *Output=NULL, lambda, epsil; number_of_dims = mxGetNumberOfDimensions(prhs[0]); diff --git a/Wrappers/Matlab/mex_compile/regularisers_GPU/FGP_dTV_GPU.cpp b/Wrappers/Matlab/mex_compile/regularisers_GPU/FGP_dTV_GPU.cpp index 5b80616..3f5a4b3 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_GPU/FGP_dTV_GPU.cpp +++ b/Wrappers/Matlab/mex_compile/regularisers_GPU/FGP_dTV_GPU.cpp @@ -47,9 +47,11 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iter, dimX, dimY, dimZ, methTV, printswitch, nonneg; - const int *dim_array; - const int *dim_array2; + int number_of_dims, iter, methTV, printswitch, nonneg; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array; + const mwSize *dim_array2; + float *Input, *InputRef, *Output=NULL, lambda, epsil, eta; number_of_dims = mxGetNumberOfDimensions(prhs[0]); diff --git a/Wrappers/Matlab/mex_compile/regularisers_GPU/LLT_ROF_GPU.cpp b/Wrappers/Matlab/mex_compile/regularisers_GPU/LLT_ROF_GPU.cpp index 37563b0..e8da4ce 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_GPU/LLT_ROF_GPU.cpp +++ b/Wrappers/Matlab/mex_compile/regularisers_GPU/LLT_ROF_GPU.cpp @@ -46,8 +46,10 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iterationsNumb, dimX, dimY, dimZ; - const int *dim_array; + int number_of_dims, iterationsNumb; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array; + float *Input, *Output=NULL, lambdaROF, lambdaLLT, tau; dim_array = mxGetDimensions(prhs[0]); diff --git a/Wrappers/Matlab/mex_compile/regularisers_GPU/NonlDiff_GPU.cpp b/Wrappers/Matlab/mex_compile/regularisers_GPU/NonlDiff_GPU.cpp index bfba9ea..1cd0cdc 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_GPU/NonlDiff_GPU.cpp +++ b/Wrappers/Matlab/mex_compile/regularisers_GPU/NonlDiff_GPU.cpp @@ -46,8 +46,10 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iter_numb, dimX, dimY, dimZ, penaltytype; - const int *dim_array; + int number_of_dims, iter_numb, penaltytype; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array; + float *Input, *Output=NULL, lambda, tau, sigma; dim_array = mxGetDimensions(prhs[0]); diff --git a/Wrappers/Matlab/mex_compile/regularisers_GPU/ROF_TV_GPU.cpp b/Wrappers/Matlab/mex_compile/regularisers_GPU/ROF_TV_GPU.cpp index f60ba7b..bd01d55 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_GPU/ROF_TV_GPU.cpp +++ b/Wrappers/Matlab/mex_compile/regularisers_GPU/ROF_TV_GPU.cpp @@ -42,8 +42,10 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iter_numb, dimX, dimY, dimZ; - const int *dim_array; + int number_of_dims, iter_numb; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array; + float *Input, *Output=NULL, lambda, tau; dim_array = mxGetDimensions(prhs[0]); diff --git a/Wrappers/Matlab/mex_compile/regularisers_GPU/SB_TV_GPU.cpp b/Wrappers/Matlab/mex_compile/regularisers_GPU/SB_TV_GPU.cpp index 60847d9..9d1328f 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_GPU/SB_TV_GPU.cpp +++ b/Wrappers/Matlab/mex_compile/regularisers_GPU/SB_TV_GPU.cpp @@ -42,8 +42,10 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iter, dimX, dimY, dimZ, methTV, printswitch; - const int *dim_array; + int number_of_dims, iter, methTV, printswitch; + mwSize dimX, dimY, dimZ; + const mwSize *dim_array; + float *Input, *Output=NULL, lambda, epsil; number_of_dims = mxGetNumberOfDimensions(prhs[0]); diff --git a/Wrappers/Matlab/mex_compile/regularisers_GPU/TGV_GPU.cpp b/Wrappers/Matlab/mex_compile/regularisers_GPU/TGV_GPU.cpp index 5a0df5b..edb551d 100644 --- a/Wrappers/Matlab/mex_compile/regularisers_GPU/TGV_GPU.cpp +++ b/Wrappers/Matlab/mex_compile/regularisers_GPU/TGV_GPU.cpp @@ -43,8 +43,9 @@ void mexFunction( int nrhs, const mxArray *prhs[]) { - int number_of_dims, iter, dimX, dimY; - const int *dim_array; + int number_of_dims, iter; + mwSize dimX, dimY; + const mwSize *dim_array; float *Input, *Output=NULL, lambda, alpha0, alpha1, L2; number_of_dims = mxGetNumberOfDimensions(prhs[0]); diff --git a/docs/installation.txt b/docs/installation.txt new file mode 100644 index 0000000..a536111 --- /dev/null +++ b/docs/installation.txt @@ -0,0 +1,8 @@ +One can install CCPi-RGL toolkit using cmake: + + + cmake ../CCPi-Regularisation-Toolkit/ -DBUILD_MATLAB_WRAPPERS=ON -DBUILD_PYTHON_WRAPPERS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install -DMatlab_ROOT_DIR= -DBUILD_CUDA=OFF + +make + +make install \ No newline at end of file -- cgit v1.2.3 From 135015685959c6168930951fcb50d46bc9aeddd7 Mon Sep 17 00:00:00 2001 From: algol Date: Mon, 13 Aug 2018 16:39:25 +0100 Subject: fixed matlab wrappers compilation GPU --- Wrappers/Matlab/CMakeLists.txt | 45 ++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 19 deletions(-) (limited to 'Wrappers/Matlab') diff --git a/Wrappers/Matlab/CMakeLists.txt b/Wrappers/Matlab/CMakeLists.txt index cd46051..837993d 100755 --- a/Wrappers/Matlab/CMakeLists.txt +++ b/Wrappers/Matlab/CMakeLists.txt @@ -75,18 +75,18 @@ foreach(tgt RANGE 0 ${num}) NAME ${current_target} SRC ${current_file_name} - ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/FGP_TV_core.c - ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/SB_TV_core.c - ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/TGV_core.c - ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/Diffusion_core.c - ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/Diffus4th_order_core.c - ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/LLT_ROF_core.c - ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/ROF_TV_core.c - ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/FGP_dTV_core.c - ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/TNV_core.c - ${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/utils.c - ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU/Diffusion_Inpaint_core.c - ${CMAKE_SOURCE_DIR}/Core/inpainters_CPU/NonlocalMarching_Inpaint_core.c + #${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/FGP_TV_core.c + #${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/SB_TV_core.c + #${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/TGV_core.c + #${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/Diffusion_core.c + #${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/Diffus4th_order_core.c + #${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/LLT_ROF_core.c + #${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/ROF_TV_core.c + #${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/FGP_dTV_core.c + #${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/TNV_core.c + #${CMAKE_SOURCE_DIR}/Core/regularisers_CPU/utils.c + #${CMAKE_SOURCE_DIR}/Core/inpainters_CPU/Diffusion_Inpaint_core.c + #${CMAKE_SOURCE_DIR}/Core/inpainters_CPU/NonlocalMarching_Inpaint_core.c LINK_TO cilreg ${Matlab_LIBRARIES} ) @@ -107,26 +107,33 @@ if (BUILD_CUDA) find_package(CUDA) if (CUDA_FOUND) file(GLOB GPU_MEX_FILES - "${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_GPU/*.c" + "${CMAKE_SOURCE_DIR}/Wrappers/Matlab/mex_compile/regularisers_GPU/*.cpp" ) list(LENGTH GPU_MEX_FILES num) - +message("number of GPU files " ${num}) MATH(EXPR num "${num}-1") #set(num "-1") foreach(tgt RANGE ${num}) message("number " ${tgt}) - #list(GET CPU_TARGETS ${tgt} current_target) - list(GET GPU_MEX_FILES ${tgt} current_file) - get_filename_component(current_target ${current_file} NAME) + list(LENGTH GPU_MEX_FILES num2) + message("the list is ${num2}") + #list(GET CPU_TARGETS ${tgt} current_target) + list(GET GPU_MEX_FILES ${tgt} current_file_name) + get_filename_component(current_file ${current_file_name} NAME) + string(REGEX MATCH "(.+).c" match ${current_file}) + if (NOT ${match} EQUAL "" ) + set (current_target ${CMAKE_MATCH_1}) + endif() + message("matlab_add_mex target " ${current_file} " and " ${current_target}) message("matlab_add_mex " ${current_target}) matlab_add_mex( NAME ${current_target} SRC - ${current_file} - LINK_TO cilreg ${Matlab_LIBRARIES} + ${current_file_name} + LINK_TO cilregcuda ${Matlab_LIBRARIES} ) target_include_directories(${current_target} -- cgit v1.2.3 From 50739856921f8aeb980f790724b5117308bf9b0e Mon Sep 17 00:00:00 2001 From: Edoardo Pasca Date: Wed, 15 Aug 2018 09:10:52 +0100 Subject: install into MATLAB_DEST dir if WIN32 --- CMakeLists.txt | 17 +++++++++++++++++ Core/CMakeLists.txt | 11 +++++++++++ Wrappers/Matlab/CMakeLists.txt | 10 ++-------- Wrappers/Python/CMakeLists.txt | 11 +---------- 4 files changed, 31 insertions(+), 18 deletions(-) (limited to 'Wrappers/Matlab') diff --git a/CMakeLists.txt b/CMakeLists.txt index a783664..06e9c78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,5 +35,22 @@ option (BUILD_PYTHON_WRAPPER "Build Python Wrappers" ON) option (CONDA_BUILD "Conda Build" OFF) option (BUILD_CUDA "Build the CUDA modules" ON) +set(MATLAB_DEST_DIR "" CACHE PATH "Directory of the Matlab wrappers") +if (MATLAB_DEST_DIR) +set(MATLAB_DEST "${MATLAB_DEST_DIR}") +else() +set(MATLAB_DEST "${CMAKE_INSTALL_PREFIX}/matlab") +endif() +message(STATUS "Matlab wrappers will be installed in " ${MATLAB_DEST}) + +set(PYTHON_DEST_DIR "" CACHE PATH "Directory of the Matlab wrappers") +if (PYTHON_DEST_DIR) + set(PYTHON_DEST "${PYTHON_DEST_DIR}") +else() + set(PYTHON_DEST "${CMAKE_INSTALL_PREFIX}/python") +endif() +message(STATUS "Python wrappers will be installed in " ${PYTHON_DEST}) + + add_subdirectory(Core) add_subdirectory(Wrappers) diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt index 9ee6c7a..ca6879a 100644 --- a/Core/CMakeLists.txt +++ b/Core/CMakeLists.txt @@ -101,6 +101,8 @@ message ("I'd install into ${CMAKE_INSTALL_PREFIX} lib bin") ) endif() + + # GPU Regularisers if (BUILD_CUDA) find_package(CUDA) @@ -135,3 +137,12 @@ if (BUILD_CUDA) message("CUDA NOT FOUND") endif() endif() + +if (${BUILD_MATLAB_WRAPPER}) + if (WIN32) + install(TARGETS cilreg DESTINATION ${MATLAB_DEST}) + if (CUDA_FOUND) + install(TARGETS cilregcuda DESTINATION ${MATLAB_DEST}) + endif() + endif() +endif() \ No newline at end of file diff --git a/Wrappers/Matlab/CMakeLists.txt b/Wrappers/Matlab/CMakeLists.txt index 837993d..0c26148 100755 --- a/Wrappers/Matlab/CMakeLists.txt +++ b/Wrappers/Matlab/CMakeLists.txt @@ -2,13 +2,7 @@ project(regulariserMatlab) find_package(Matlab REQUIRED COMPONENTS MAIN_PROGRAM MX_LIBRARY ENG_LIBRARY ) -set(MATLAB_DEST_DIR "" CACHE PATH "Directory of the Matlab wrappers") -if (MATLAB_DEST_DIR) -set(MATLAB_DEST "${MATLAB_DEST_DIR}") -else() -set(MATLAB_DEST "${CMAKE_INSTALL_PREFIX}/matlab") -endif() -message(STATUS "Matlab wrappers will be installed in " ${MATLAB_DEST}) + #C:\Users\ofn77899\Documents\Projects\CCPi\GitHub\CCPi-FISTA_Reconstruction\Core\regularisers_CPU @@ -148,6 +142,6 @@ message("number of GPU files " ${num}) endforeach() add_custom_target(MatlabWrapperGPU DEPENDS ${GPU_MEX_TARGETS}) - + endif() endif() diff --git a/Wrappers/Python/CMakeLists.txt b/Wrappers/Python/CMakeLists.txt index 68768bc..d86d0ea 100644 --- a/Wrappers/Python/CMakeLists.txt +++ b/Wrappers/Python/CMakeLists.txt @@ -16,16 +16,7 @@ find_package(PythonInterp REQUIRED) if (PYTHONINTERP_FOUND) message ("Current Python " ${PYTHON_VERSION_STRING} " found " ${PYTHON_EXECUTABLE}) endif() -if (CONDA_BUILD) -else() -set(PYTHON_DEST_DIR "" CACHE PATH "Directory of the Matlab wrappers") - if (PYTHON_DEST_DIR) - set(PYTHON_DEST "${PYTHON_DEST_DIR}") - else() - set(PYTHON_DEST "${CMAKE_INSTALL_PREFIX}/python") - endif() - message(STATUS "Python wrappers will be installed in " ${PYTHON_DEST}) -endif() + ## Build the regularisers package as a library message("Creating Regularisers as shared library") -- cgit v1.2.3