Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,13 @@ if( PYTHONINTERP_FOUND )
"${Python_WORKING_DIRECTORY}"
)
endif()
if( UNIX )
# Copy over install file for python integration
file(COPY "${CMAKE_SOURCE_DIR}/package/install_gpufit_python.sh"
DESTINATION "${CMAKE_BINARY_DIR}"
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
endif()
endif()

# Tests
Expand Down
28 changes: 21 additions & 7 deletions Gpufit/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -202,15 +202,29 @@ if( CMAKE_SIZEOF_VOID_P EQUAL 8 AND CUDA_VERSION VERSION_GREATER "6.5")
add_custom_command( TARGET Gpufit POST_BUILD
COMMAND ${CMAKE_COMMAND} -E
copy_if_different ${CUBLAS_DLL} $<TARGET_FILE_DIR:Gpufit> )
target_link_libraries( Gpufit ${CUDA_CUBLAS_LIBRARIES} )
else()
set( CUDA_CUBLAS_LIBRARIES
${CUDA_TOOLKIT_ROOT_DIR}/lib64/libcublas_static.a
${CUDA_TOOLKIT_ROOT_DIR}/lib64/libculibos.a )
endif()

set( STATIC_CUBLAS ON CACHE BOOL "ON | OFF")
if ( STATIC_CUBLAS )
find_cuda_helper_libs(cublas_static)
find_cuda_helper_libs(cublasLt_static)
find_cuda_helper_libs(culibos)

set( CUDA_CUBLAS_LIBRARIES
${CUDA_cublas_static_LIBRARY}
${CUDA_cublasLt_static_LIBRARY}
${CUDA_cudart_static_LIBRARY}
${CUDA_culibos_LIBRARY}
dl
pthread
rt )
target_link_libraries( Gpufit ${CUDA_CUBLAS_LIBRARIES} )
else ()
# Dynamic Link can be done with a single function call
CUDA_ADD_CUBLAS_TO_TARGET( Gpufit )
endif ()
endif()
add_definitions( -DUSE_CUBLAS )

target_link_libraries( Gpufit ${CUDA_CUBLAS_LIBRARIES} )
endif()
elseif( CMAKE_SIZEOF_VOID_P EQUAL 4 )
message( STATUS "CUBLAS: 32-bit architecture detected; USE_CUBLAS flag ignored." )
Expand Down
8 changes: 8 additions & 0 deletions Gpufit/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,11 @@ add_boost_test( Gpufit Gauss_Fit_2D_Rotated )
add_boost_test( Gpufit Cauchy_Fit_2D_Elliptic )
add_boost_test( Gpufit Fletcher_Powell_Helix_Fit )
add_boost_test( Gpufit Brown_Dennis_Fit )

if( UNIX )
# Copy over run tests script
file(COPY "${CMAKE_SOURCE_DIR}/Gpufit/tests/test_all.sh"
DESTINATION "${CMAKE_BINARY_DIR}"
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
endif()
34 changes: 34 additions & 0 deletions Gpufit/tests/test_all.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/bin/bash

printf "Gauss 2D Rotated\n"
./Gpufit_Test_Gauss_Fit_2D_Rotated

printf "\nGauss 2D Elliptic\n"
./Gpufit_Test_Gauss_Fit_2D_Elliptic

printf "\nGauss 2D\n"
./Gpufit_Test_Gauss_Fit_2D

printf "\nGauss 1D\n"
./Gpufit_Test_Gauss_Fit_1D

printf "\nLinear 1D\n"
./Gpufit_Test_Linear_Fit_1D

printf "\nFletcher Powell Helix\n"
./Gpufit_Test_Fletcher_Powell_Helix_Fit

printf "\nError Handling\n"
./Gpufit_Test_Error_Handling

printf "\nCauchy Fit 2D Elliptic\n"
./Gpufit_Test_Cauchy_Fit_2D_Elliptic

printf "\nBrown Dennis\n"
./Gpufit_Test_Brown_Dennis_Fit

printf "\nTest Consistency\n"
./Cpufit_Gpufit_Test_Consistency



188 changes: 188 additions & 0 deletions package/create_package.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
#!/bin/bash
args=("$@")

# be wary of /i /s /q :: -n? (-s is subfolders?) (-q is no confirmation)

set +v
# create package for Gpufit, assumes everything is compiled

if [[ -z $1 ]];
then
echo specify build base path
exit 3
fi


if [[ -z $2 ]];
then
echo specify version
exit 3
fi


if [[ -z $3 ]];
then
echo specify source base path
exit 3
fi


# define paths

export BUILD_BASE=${args[0]}
export VERSION=${args[1]}
export SOURCE_BASE=${args[2]}

export OUTPUT_NAME=Gpufit_$VERSION
export ROOT_INSTALL=$BUILD_BASE/install
export PACKAGE_INSTALL=$BUILD_BASE/install/$OUTPUT_NAME
export OUTPUT_ZIP=$ROOT_INSTALL/${OUTPUT_NAME}_linux.zip
export OUTPUT_DEB=$ROOT_INSTALL/${OUTPUT_NAME}.deb

export PERFORMANCE_TEST_INSTALL=$PACKAGE_INSTALL/gpufit_performance_test
export PYTHON_INSTALL=$PACKAGE_INSTALL/PYTHON
export x64_MATLAB_INSTALL=$PACKAGE_INSTALL/matlab64
export x64_JAVA_INSTALL=$PACKAGE_INSTALL/java64
export SDK_INSTALL_ROOT=$PACKAGE_INSTALL/gpufit_sdk
export DEB_ROOT=$PACKAGE_INSTALL

export x64_BUILD=$BUILD_BASE
#export x64_BUILD_LIB=$BUILD_BASE/Gpufit


export x64_PYTHON_BUILD=$x64_BUILD/pyGpufit/dist

export x64_MATLAB_BUILD=$x64_BUILD/matlab

export x64_JAVA_BUILD=$x64_BUILD/java

export EXAMPLES_SOURCE=$SOURCE_BASE/examples
export PYTHON_SOURCE=$SOURCE_BASE/Gpufit/python
export MATLAB_SOURCE=$SOURCE_BASE/Gpufit/matlab
export SDK_README_SOURCE=$SOURCE_BASE/package/sdk_readme.txt

export MANUAL_SOURCE=$SOURCE_BASE/docs/_build/latex/Gpufit.pdf
export MANUAL_INSTALL=$PACKAGE_INSTALL/Gpufit_VERSION_Manual.pdf

# clean up (if necessary)

if [[ -e "$ROOT_INSTALL" ]];
then
rm -r "$ROOT_INSTALL"
fi
#if [[ -e "$OUTPUT_ZIP" ]];
#then
# rm "$OUTPUT_ZIP"
#fi
#if [[ -e "$OUTPUT_DEB" ]];
#then
# rm "$OUTPUT_DEB"
#fi

# create root folder

echo create root directory
mkdir $ROOT_INSTALL
mkdir $PACKAGE_INSTALL

# create .deb package
echo collect .deb files
mkdir $DEB_ROOT/DEBIAN
cp "$SOURCE_BASE/package/control" "$DEB_ROOT/DEBIAN"
sed -i "s/version_string/${VERSION}/" $DEB_ROOT/DEBIAN/control

mkdir $DEB_ROOT/usr
mkdir $DEB_ROOT/usr/local
mkdir $DEB_ROOT/usr/lib
cp "$x64_BUILD/Gpufit/libGpufit.so" "$DEB_ROOT/usr/lib"
cp "$x64_BUILD/Cpufit/libCpufit.so" "$DEB_ROOT/usr/lib"

mkdir $DEB_ROOT/usr/local/include
cp "$SOURCE_BASE/Gpufit/gpufit.h" "$DEB_ROOT/usr/local/include"

mkdir $DEB_ROOT/usr/local/bin
cp "$x64_BUILD/Gpufit_Cpufit_Performance_Comparison" "$DEB_ROOT/usr/local/bin"

echo creating .deb
(cd ${DEB_ROOT}/.. && dpkg-deb --build $OUTPUT_NAME)

echo delete temp files
rm -r $DEB_ROOT
mkdir $PACKAGE_INSTALL
mv ${OUTPUT_DEB} ${PACKAGE_INSTALL}

# copy main readme (is markdown, written as txt) and license.

cp "$SOURCE_BASE/README.md" "$PACKAGE_INSTALL/README.txt"
cp "$SOURCE_BASE/LICENSE.txt" "$PACKAGE_INSTALL"

# copy manual

#if [[ ! -e "$MANUAL_SOURCE" ]];
#then
# echo file $MANUAL_SOURCE required, does not exist
# exit 3
#fi
#
#cp "$MANUAL_SOURCE" "$MANUAL_INSTALL"

# copy performance test

echo collect performance test application
mkdir $PERFORMANCE_TEST_INSTALL
cp "$EXAMPLES_SOURCE/Gpufit_Cpufit_Performance_Comparison_readme.txt" "$PERFORMANCE_TEST_INSTALL/README.txt"

mkdir $PERFORMANCE_TEST_INSTALL/linux
cp "$x64_BUILD/Gpufit_Cpufit_Performance_Comparison" "$PERFORMANCE_TEST_INSTALL/linux"
cp "$x64_BUILD/Gpufit/libGpufit.so" "$PERFORMANCE_TEST_INSTALL/linux"
cp "$x64_BUILD/Cpufit/libCpufit.so" "$PERFORMANCE_TEST_INSTALL/linux"


# copy Python packages

echo collect python
mkdir $PYTHON_INSTALL
cp "$x64_PYTHON_BUILD/pyGpufit-$VERSION-py2.py3-none-any.whl" "$PYTHON_INSTALL/pyGpufit-$VERSION-py2.py3-none-any.whl"
cp "$PYTHON_SOURCE/README.txt" "$PYTHON_INSTALL"
cp "$PYTHON_SOURCE/examples" "$PYTHON_INSTALL/examples" -n -r


# copy Matlab 64 bit

echo collect matlab64
mkdir $x64_MATLAB_INSTALL
cp "$x64_MATLAB_BUILD" "$x64_MATLAB_INSTALL" -r
cp "$MATLAB_SOURCE/examples" "$x64_MATLAB_INSTALL/examples" -n -r


# copy Java 64 bit

echo collect java64
mkdir $x64_JAVA_INSTALL
cp "$x64_JAVA_BUILD" "$x64_JAVA_INSTALL" -r


# copy SDK_INSTALL_ROOT

echo collect SDK
mkdir $SDK_INSTALL_ROOT
cp "$SDK_README_SOURCE" "$SDK_INSTALL_ROOT/README.txt"

mkdir $SDK_INSTALL_ROOT/include
cp "$SOURCE_BASE/Gpufit/gpufit.h" "$SDK_INSTALL_ROOT/include"

mkdir $SDK_INSTALL_ROOT/linux
cp "$x64_BUILD/Gpufit/libGpufit.so" "$SDK_INSTALL_ROOT/linux"
#cp "$x64_BUILD_LIB/Gpufit.a" "$SDK_INSTALL_ROOT/linux"


# zip content of temp folder with 7-Zip if available
if 7z a -bso0 "${OUTPUT_ZIP}" "${PACKAGE_INSTALL}"
then
#it worked
echo Created ${OUTPUT_ZIP}
else
echo Packing ${OUTPUT_ZIP} failed
fi


3 changes: 3 additions & 0 deletions package/install_gpufit_python.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash

pip3 install pyGpufit/dist/pyGpufit-1.2.0-py2.py3-none-any.whl