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 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 99 insertions(+), 13 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() -- 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 --- Wrappers/Matlab/CMakeLists.txt | 68 ++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 33 deletions(-) (limited to 'Wrappers/Matlab') 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 -- 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 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 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}) -- 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 +++-- 8 files changed, 31 insertions(+), 17 deletions(-) (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]); -- 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 --- Wrappers/Matlab/CMakeLists.txt | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'Wrappers/Matlab') 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() -- cgit v1.2.3