Loading CMakeLists.txt +41 −69 Original line number Diff line number Diff line Loading @@ -18,6 +18,17 @@ project( tnl ) set( tnlVersion "0.1" ) # declare all custom build options option(OFFLINE_BUILD "Offline build (i.e. without downloading libraries such as pybind11)" OFF) option(WITH_MIC "Build with MIC support" OFF) option(WITH_CUDA "Build with CUDA support" ON) set(WITH_CUDA_ARCH "auto" CACHE STRING "Build for these CUDA architectures") option(WITH_OPENMP "Build with OpenMP support" ON) option(WITH_TESTS "Build tests" ON) option(WITH_COVERAGE "Enable code coverage reports from unit tests" OFF) option(WITH_EXAMPLES "Compile the 'examples' directory" ON) option(WITH_TEMPLATES_INSTANTIATION "Enable explicit template instantiation" OFF) # install paths relative to the cmake's prefix set( TNL_TARGET_INCLUDE_DIRECTORY "include/TNL" ) set( TNL_TARGET_DATA_DIRECTORY "share/TNL" ) Loading Loading @@ -65,12 +76,12 @@ if( CXX_COMPILER_NAME MATCHES "icpc" ) ##### # Ckeck for MIC # if( WITH_MIC STREQUAL "yes" ) message( "Compile MIC support..." ) if( ${WITH_MIC} ) message( "Enabled MIC support." ) set( MIC_CXX_FLAGS "-DHAVE_MIC") # build all tests with MIC support set( CXX_TESTS_FLAGS ${CXX_TESTS_FLAGS} -DHAVE_MIC ) set( WITH_CUDA "no") set( WITH_CUDA OFF CACHE BOOL "Build with CUDA support" ) else() set( MIC_CXX_FLAGS "") endif() Loading @@ -89,7 +100,7 @@ endif() ##### # Check for CUDA # if( WITH_CUDA STREQUAL "yes" ) if( ${WITH_CUDA} ) find_package( CUDA ) if( CUDA_FOUND ) set( BUILD_CUDA TRUE) Loading Loading @@ -160,65 +171,15 @@ if( WITH_CUDA STREQUAL "yes" ) set( CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} ; ${CUDA_ARCH} -D_FORCE_INLINES ) # TODO: this is necessary only due to a bug in cmake set( CUDA_ADD_LIBRARY_OPTIONS -shared ) #### # Check for cuBLAS # if( NOT WITH_CUBLAS STREQUAL "no" ) find_path( CUBLAS_INCLUDE_DIR cublas_v2.h /usr/local/cuda/include ${CUDA_INCLUDE_DIR} DOC "CUBLAS headers." ) if( ${CUBLAS_INCLUDE_DIR} STREQUAL "CUBLAS_INCLUDE_DIR-NOTFOUND" ) message( "CUBLAS not found." ) set( HAVE_CUBLAS "//#define HAVE_CUBLAS 1" ) else() message( "CUBLAS found. -- ${CUBLAS_INCLUDE_DIR}" ) set( HAVE_CUBLAS "#define HAVE_CUBLAS 1" ) endif() endif( NOT WITH_CUBLAS STREQUAL "no" ) #### # Check for CUSP # find_path( CUSP_INCLUDE_DIR cusp/hyb_matrix.h DOC "CUSP headers." ) if( ${CUSP_INCLUDE_DIR} STREQUAL "CUSP_INCLUDE_DIR-NOTFOUND" ) message( "CUSP not found." ) set( HAVE_CUSP "//#define HAVE_CUSP 1" ) else() message( "CUSP found. -- ${CUSP_INCLUDE_DIR}" ) set( HAVE_CUSP "#define HAVE_CUSP 1" ) cuda_include_directories( ${CUSP_INCLUDE_DIR} ) endif() #### # Check for CUSPARSE # if( NOT WITH_CUSPARSE STREQUAL "no" ) find_path( CUSPARSE_INCLUDE_DIR cusparse.h /usr/local/cuda/include ${CUDA_INCLUDE_DIR} DOC "CUSPARSE headers." ) if( ${CUSPARSE_INCLUDE_DIR} STREQUAL "CUSPARSE_INCLUDE_DIR-NOTFOUND" ) message( "CUSPARSE not found." ) set( HAVE_CUSPARSE "//#define HAVE_CUSPARSE 1" ) else() message( "CUSPARSE found. -- ${CUSPARSE_INCLUDE_DIR}" ) set( HAVE_CUSPARSE "#define HAVE_CUSPARSE 1" ) cuda_include_directories( ${CUSPARSE_INCLUDE_DIR} ) set( CUSPARSE_LIBRARY "${CUDA_cusparse_LIBRARY}" ) endif() endif( NOT WITH_CUSPARSE STREQUAL "no" ) endif( CUDA_FOUND ) endif( WITH_CUDA STREQUAL "yes" ) #### # Check for OpenMP # if( OPENMP_FOUND AND WITH_OPENMP STREQUAL "yes" ) message( "Compiler supports OpenMP." ) if( OPENMP_FOUND AND ${WITH_OPENMP} ) message( "Enabled OpenMP support." ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAVE_OPENMP ${OpenMP_CXX_FLAGS}" ) endif() Loading Loading @@ -325,17 +286,17 @@ else() set( HAVE_SYS_IOCTL_H "#define HAVE_SYS_IOCTL_H 1" ) endif() if( WITH_TESTS STREQUAL "yes" ) if( ${WITH_TESTS} ) enable_testing() # build gtest libs include( BuildGtest ) if( WITH_COVERAGE STREQUAL "yes" AND CMAKE_BUILD_TYPE STREQUAL "Debug" ) if( ${WITH_COVERAGE} AND CMAKE_BUILD_TYPE STREQUAL "Debug" ) # enable code coverage reports include( UseCodeCoverage ) endif() endif( WITH_TESTS STREQUAL "yes" ) endif() #if( BUILD_MPI ) # FIND_PATH( PETSC_INCLUDE_DIR petsc.h Loading Loading @@ -365,7 +326,7 @@ endif( WITH_TESTS STREQUAL "yes" ) #### # Explicit template instantiation # #if( WITH_TEMPLATE_INSTANTIATION STREQUAL "yes" ) #if( ${WITH_TEMPLATE_INSTANTIATION} ) # AddCompilerFlag( "-DTEMPLATE_EXPLICIT_INSTANTIATION " ) # # if( INSTANTIATE_INT STREQUAL "yes" ) Loading Loading @@ -406,7 +367,7 @@ add_subdirectory( src ) add_subdirectory( share ) add_subdirectory( tests ) if( WITH_EXAMPLES STREQUAL "yes" ) if( ${WITH_EXAMPLES} ) add_subdirectory( examples ) endif() Loading Loading @@ -438,6 +399,17 @@ set(CPACK_SOURCE_STRIP_FILES "Release") #set(CPACK_PACKAGE_EXECUTABLES "MyExecutable" "My Executable") INCLUDE( CPack ) # Print custom build options message( "-- Build options:" ) message( " OFFLINE_BUILD=${OFFLINE_BUILD}" ) message( " WITH_MIC=${WITH_MIC}" ) message( " WITH_CUDA=${WITH_CUDA}" ) message( " WITH_CUDA_ARCH=${WITH_CUDA_ARCH}" ) message( " WITH_OPENMP=${WITH_OPENMP}" ) message( " WITH_TESTS=${WITH_TESTS}" ) message( " WITH_COVERAGE=${WITH_COVERAGE}" ) message( " WITH_EXAMPLES=${WITH_EXAMPLES}" ) message( " WITH_TEMPLATES_INSTANTIATION=${WITH_TEMPLATES_INSTANTIATION}" ) # Print compiler options message( "-- Compiler options:" ) message( " CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}" ) Loading Config.py.indeleted 100644 → 0 +0 −2 Original line number Diff line number Diff line tnl_install_prefix = "@CMAKE_INSTALL_PREFIX@" tnl_version = "@tnlVersion@" TODO +0 −15 Original line number Diff line number Diff line Loading @@ -9,7 +9,6 @@ TODO: TODO: - pridat execution policy https://github.com/harrism/hemi/blob/master/hemi/execution_policy.h - odstranit parametr lazy ze smart pointeru TODO: - implementovat tnlMixedGridBoundaryConditions, kde by se pro kazdou stranu gridu definoval jiny zvlastni typ Loading @@ -32,13 +31,6 @@ TODO: CUDA unified memory se s nimi pracovat postaru - bylo by dobre to obalit unique poinetry, aby se nemusela delat dealokace rucne TODO: Mesh * vsechny traits zkusit presunout do jednotneho MeshTraits, tj. temer MeshConfigTraits ale pojmenovat jako MeshTraits * omezit tnlDimesnionsTag - asi to ale nepujde - ale pozor na konstrukce jako BaseType::superentityIdsArray< SuperDimensionTag >( DimensionsTag ); ( v tnlMesh.h) * prejmenovat Tagy v topologies na Topology zrejme * zrusit tnlStorageTraits TODO: implementace maticovych resicu * Gaussova eliminace Loading @@ -53,12 +45,5 @@ TODO: Nahradit sablonovy parametr dimenze sitove entity za typ entity. Pak by se objemy nebo delky entyt apod. za tim ucelem nahradit setIndex v grdi entity za update(), aby to bylo obecnejsi TODO: implementovat tridu tnlFileName pro generovani jmen souboru TODO: metodu pro tnlString pro nahrazeni napr. podretezce XXXXX indexem 00001 tj. uXXXXX.bin -> u00001.bin to by melo byt robustnejsi, nez doposavadni pristup TODO: vyjimky TODO: prubezne ukladani vysledku behem vypoctu No newline at end of file build +3 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ CMAKE="cmake" CMAKE_ONLY="no" HELP="no" VERBOSE="" OFFLINE_BUILD="no" WITH_CLANG="no" WITH_CUDA="yes" Loading Loading @@ -40,6 +41,7 @@ do --cmake=* ) CMAKE="${option#*=}" ;; --cmake-only=* ) CMAKE_ONLY="${option#*=}" ;; --verbose ) VERBOSE="VERBOSE=1" ;; --offline-build ) OFFLINE_BUILD="yes" ;; --help ) HELP="yes" ;; --with-clang=* ) WITH_CLANG="${option#*=}" ;; --with-mic=* ) WITH_MIC="${option#*=}" ;; Loading Loading @@ -104,6 +106,7 @@ echo "Configuring ${BUILD} $TARGET ..." ${CMAKE} ${ROOT_DIR} \ -DCMAKE_BUILD_TYPE=${BUILD} \ -DCMAKE_INSTALL_PREFIX=${PREFIX} \ -DOFFLINE_BUILD=${OFFLINE_BUILD} \ -DWITH_MIC=${WITH_MIC} \ -DWITH_CUDA=${WITH_CUDA} \ -DWITH_CUDA_ARCH=${WITH_CUDA_ARCH} \ Loading cmake/Gtest.cmake.in +3 −0 Original line number Diff line number Diff line Loading @@ -19,4 +19,7 @@ ExternalProject_Add(googletest BUILD_COMMAND "" INSTALL_COMMAND "" TEST_COMMAND "" # Disable update of the external project in an offline build # reference: https://stackoverflow.com/a/40423683 UPDATE_DISCONNECTED ${OFFLINE_BUILD} ) Loading
CMakeLists.txt +41 −69 Original line number Diff line number Diff line Loading @@ -18,6 +18,17 @@ project( tnl ) set( tnlVersion "0.1" ) # declare all custom build options option(OFFLINE_BUILD "Offline build (i.e. without downloading libraries such as pybind11)" OFF) option(WITH_MIC "Build with MIC support" OFF) option(WITH_CUDA "Build with CUDA support" ON) set(WITH_CUDA_ARCH "auto" CACHE STRING "Build for these CUDA architectures") option(WITH_OPENMP "Build with OpenMP support" ON) option(WITH_TESTS "Build tests" ON) option(WITH_COVERAGE "Enable code coverage reports from unit tests" OFF) option(WITH_EXAMPLES "Compile the 'examples' directory" ON) option(WITH_TEMPLATES_INSTANTIATION "Enable explicit template instantiation" OFF) # install paths relative to the cmake's prefix set( TNL_TARGET_INCLUDE_DIRECTORY "include/TNL" ) set( TNL_TARGET_DATA_DIRECTORY "share/TNL" ) Loading Loading @@ -65,12 +76,12 @@ if( CXX_COMPILER_NAME MATCHES "icpc" ) ##### # Ckeck for MIC # if( WITH_MIC STREQUAL "yes" ) message( "Compile MIC support..." ) if( ${WITH_MIC} ) message( "Enabled MIC support." ) set( MIC_CXX_FLAGS "-DHAVE_MIC") # build all tests with MIC support set( CXX_TESTS_FLAGS ${CXX_TESTS_FLAGS} -DHAVE_MIC ) set( WITH_CUDA "no") set( WITH_CUDA OFF CACHE BOOL "Build with CUDA support" ) else() set( MIC_CXX_FLAGS "") endif() Loading @@ -89,7 +100,7 @@ endif() ##### # Check for CUDA # if( WITH_CUDA STREQUAL "yes" ) if( ${WITH_CUDA} ) find_package( CUDA ) if( CUDA_FOUND ) set( BUILD_CUDA TRUE) Loading Loading @@ -160,65 +171,15 @@ if( WITH_CUDA STREQUAL "yes" ) set( CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} ; ${CUDA_ARCH} -D_FORCE_INLINES ) # TODO: this is necessary only due to a bug in cmake set( CUDA_ADD_LIBRARY_OPTIONS -shared ) #### # Check for cuBLAS # if( NOT WITH_CUBLAS STREQUAL "no" ) find_path( CUBLAS_INCLUDE_DIR cublas_v2.h /usr/local/cuda/include ${CUDA_INCLUDE_DIR} DOC "CUBLAS headers." ) if( ${CUBLAS_INCLUDE_DIR} STREQUAL "CUBLAS_INCLUDE_DIR-NOTFOUND" ) message( "CUBLAS not found." ) set( HAVE_CUBLAS "//#define HAVE_CUBLAS 1" ) else() message( "CUBLAS found. -- ${CUBLAS_INCLUDE_DIR}" ) set( HAVE_CUBLAS "#define HAVE_CUBLAS 1" ) endif() endif( NOT WITH_CUBLAS STREQUAL "no" ) #### # Check for CUSP # find_path( CUSP_INCLUDE_DIR cusp/hyb_matrix.h DOC "CUSP headers." ) if( ${CUSP_INCLUDE_DIR} STREQUAL "CUSP_INCLUDE_DIR-NOTFOUND" ) message( "CUSP not found." ) set( HAVE_CUSP "//#define HAVE_CUSP 1" ) else() message( "CUSP found. -- ${CUSP_INCLUDE_DIR}" ) set( HAVE_CUSP "#define HAVE_CUSP 1" ) cuda_include_directories( ${CUSP_INCLUDE_DIR} ) endif() #### # Check for CUSPARSE # if( NOT WITH_CUSPARSE STREQUAL "no" ) find_path( CUSPARSE_INCLUDE_DIR cusparse.h /usr/local/cuda/include ${CUDA_INCLUDE_DIR} DOC "CUSPARSE headers." ) if( ${CUSPARSE_INCLUDE_DIR} STREQUAL "CUSPARSE_INCLUDE_DIR-NOTFOUND" ) message( "CUSPARSE not found." ) set( HAVE_CUSPARSE "//#define HAVE_CUSPARSE 1" ) else() message( "CUSPARSE found. -- ${CUSPARSE_INCLUDE_DIR}" ) set( HAVE_CUSPARSE "#define HAVE_CUSPARSE 1" ) cuda_include_directories( ${CUSPARSE_INCLUDE_DIR} ) set( CUSPARSE_LIBRARY "${CUDA_cusparse_LIBRARY}" ) endif() endif( NOT WITH_CUSPARSE STREQUAL "no" ) endif( CUDA_FOUND ) endif( WITH_CUDA STREQUAL "yes" ) #### # Check for OpenMP # if( OPENMP_FOUND AND WITH_OPENMP STREQUAL "yes" ) message( "Compiler supports OpenMP." ) if( OPENMP_FOUND AND ${WITH_OPENMP} ) message( "Enabled OpenMP support." ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAVE_OPENMP ${OpenMP_CXX_FLAGS}" ) endif() Loading Loading @@ -325,17 +286,17 @@ else() set( HAVE_SYS_IOCTL_H "#define HAVE_SYS_IOCTL_H 1" ) endif() if( WITH_TESTS STREQUAL "yes" ) if( ${WITH_TESTS} ) enable_testing() # build gtest libs include( BuildGtest ) if( WITH_COVERAGE STREQUAL "yes" AND CMAKE_BUILD_TYPE STREQUAL "Debug" ) if( ${WITH_COVERAGE} AND CMAKE_BUILD_TYPE STREQUAL "Debug" ) # enable code coverage reports include( UseCodeCoverage ) endif() endif( WITH_TESTS STREQUAL "yes" ) endif() #if( BUILD_MPI ) # FIND_PATH( PETSC_INCLUDE_DIR petsc.h Loading Loading @@ -365,7 +326,7 @@ endif( WITH_TESTS STREQUAL "yes" ) #### # Explicit template instantiation # #if( WITH_TEMPLATE_INSTANTIATION STREQUAL "yes" ) #if( ${WITH_TEMPLATE_INSTANTIATION} ) # AddCompilerFlag( "-DTEMPLATE_EXPLICIT_INSTANTIATION " ) # # if( INSTANTIATE_INT STREQUAL "yes" ) Loading Loading @@ -406,7 +367,7 @@ add_subdirectory( src ) add_subdirectory( share ) add_subdirectory( tests ) if( WITH_EXAMPLES STREQUAL "yes" ) if( ${WITH_EXAMPLES} ) add_subdirectory( examples ) endif() Loading Loading @@ -438,6 +399,17 @@ set(CPACK_SOURCE_STRIP_FILES "Release") #set(CPACK_PACKAGE_EXECUTABLES "MyExecutable" "My Executable") INCLUDE( CPack ) # Print custom build options message( "-- Build options:" ) message( " OFFLINE_BUILD=${OFFLINE_BUILD}" ) message( " WITH_MIC=${WITH_MIC}" ) message( " WITH_CUDA=${WITH_CUDA}" ) message( " WITH_CUDA_ARCH=${WITH_CUDA_ARCH}" ) message( " WITH_OPENMP=${WITH_OPENMP}" ) message( " WITH_TESTS=${WITH_TESTS}" ) message( " WITH_COVERAGE=${WITH_COVERAGE}" ) message( " WITH_EXAMPLES=${WITH_EXAMPLES}" ) message( " WITH_TEMPLATES_INSTANTIATION=${WITH_TEMPLATES_INSTANTIATION}" ) # Print compiler options message( "-- Compiler options:" ) message( " CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}" ) Loading
Config.py.indeleted 100644 → 0 +0 −2 Original line number Diff line number Diff line tnl_install_prefix = "@CMAKE_INSTALL_PREFIX@" tnl_version = "@tnlVersion@"
TODO +0 −15 Original line number Diff line number Diff line Loading @@ -9,7 +9,6 @@ TODO: TODO: - pridat execution policy https://github.com/harrism/hemi/blob/master/hemi/execution_policy.h - odstranit parametr lazy ze smart pointeru TODO: - implementovat tnlMixedGridBoundaryConditions, kde by se pro kazdou stranu gridu definoval jiny zvlastni typ Loading @@ -32,13 +31,6 @@ TODO: CUDA unified memory se s nimi pracovat postaru - bylo by dobre to obalit unique poinetry, aby se nemusela delat dealokace rucne TODO: Mesh * vsechny traits zkusit presunout do jednotneho MeshTraits, tj. temer MeshConfigTraits ale pojmenovat jako MeshTraits * omezit tnlDimesnionsTag - asi to ale nepujde - ale pozor na konstrukce jako BaseType::superentityIdsArray< SuperDimensionTag >( DimensionsTag ); ( v tnlMesh.h) * prejmenovat Tagy v topologies na Topology zrejme * zrusit tnlStorageTraits TODO: implementace maticovych resicu * Gaussova eliminace Loading @@ -53,12 +45,5 @@ TODO: Nahradit sablonovy parametr dimenze sitove entity za typ entity. Pak by se objemy nebo delky entyt apod. za tim ucelem nahradit setIndex v grdi entity za update(), aby to bylo obecnejsi TODO: implementovat tridu tnlFileName pro generovani jmen souboru TODO: metodu pro tnlString pro nahrazeni napr. podretezce XXXXX indexem 00001 tj. uXXXXX.bin -> u00001.bin to by melo byt robustnejsi, nez doposavadni pristup TODO: vyjimky TODO: prubezne ukladani vysledku behem vypoctu No newline at end of file
build +3 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ CMAKE="cmake" CMAKE_ONLY="no" HELP="no" VERBOSE="" OFFLINE_BUILD="no" WITH_CLANG="no" WITH_CUDA="yes" Loading Loading @@ -40,6 +41,7 @@ do --cmake=* ) CMAKE="${option#*=}" ;; --cmake-only=* ) CMAKE_ONLY="${option#*=}" ;; --verbose ) VERBOSE="VERBOSE=1" ;; --offline-build ) OFFLINE_BUILD="yes" ;; --help ) HELP="yes" ;; --with-clang=* ) WITH_CLANG="${option#*=}" ;; --with-mic=* ) WITH_MIC="${option#*=}" ;; Loading Loading @@ -104,6 +106,7 @@ echo "Configuring ${BUILD} $TARGET ..." ${CMAKE} ${ROOT_DIR} \ -DCMAKE_BUILD_TYPE=${BUILD} \ -DCMAKE_INSTALL_PREFIX=${PREFIX} \ -DOFFLINE_BUILD=${OFFLINE_BUILD} \ -DWITH_MIC=${WITH_MIC} \ -DWITH_CUDA=${WITH_CUDA} \ -DWITH_CUDA_ARCH=${WITH_CUDA_ARCH} \ Loading
cmake/Gtest.cmake.in +3 −0 Original line number Diff line number Diff line Loading @@ -19,4 +19,7 @@ ExternalProject_Add(googletest BUILD_COMMAND "" INSTALL_COMMAND "" TEST_COMMAND "" # Disable update of the external project in an offline build # reference: https://stackoverflow.com/a/40423683 UPDATE_DISCONNECTED ${OFFLINE_BUILD} )