Commit 8782dd42 authored by Tomáš Oberhuber's avatar Tomáš Oberhuber
Browse files

Modifying the matrix assembler for stationary problems.

Adding --fast-build optin for the build script to speed-up compilation.
parent 9b588df4
Loading
Loading
Loading
Loading
+42 −7
Original line number Diff line number Diff line
@@ -18,7 +18,8 @@ if( CMAKE_BUILD_TYPE STREQUAL "Debug")
    set( LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/Debug/lib )
    set( EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/Debug/bin )
    set( debugExt -dbg )
    AddCompilerFlag( "-g" )
    set( CXX_FLAGS "${CXXFLAGS} -g ")
    #AddCompilerFlag( "-g" )
else()
    set( PROJECT_BUILD_PATH ${PROJECT_SOURCE_DIR}/Release/src )
    set( PROJECT_TESTS_PATH ${PROJECT_SOURCE_DIR}/Release/tests )
@@ -28,10 +29,6 @@ else()
    AddCompilerFlag( "-O3 -march=native -DNDEBUG" )
endif()

if( WITH_TEMPLATE_EXPLICIT_INSTANTIATION STREQUAL "yes" )
   AddCompilerFlag( "-DTEMPLATE_EXPLICIT_INSTANTIATION " )
endif()   

#####
# Check for CUDA
#
@@ -44,10 +41,20 @@ if( WITH_CUDA STREQUAL "yes" )
        set(CUDA_SEPARABLE_COMPILATION ON)
        set(CUSPARSE_LIBRARY /usr/local/cuda/lib64/libcusparse.so) # TODO: fix this              
        set( CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} ; -DHAVE_CUDA )
        AddCompilerFlag( "-DHAVE_NOT_CXX11 -U_GLIBCXX_ATOMIC_BUILTINS -U_GLIBCXX_USE_INT128 " )          
        AddCompilerFlag( "-DHAVE_NOT_CXX11" ) # -U_GLIBCXX_ATOMIC_BUILTINS -U_GLIBCXX_USE_INT128 " )
        set( CUDA_ADD_EXECUTABLE_OPTIONS -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 )
        set( CUDA_ADD_LIBRARY_OPTIONS -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -shared )
        set( CUDA_LINKER_OPTIONS "-arch sm_20 -shared " )

        ####
        # Check for cuBLAS
        #
        if( WITH_CUBLAS STREQUAL "yes" ) 
            message( "Enabling CUBLAS." )
            set( HAVE_CUBLAS TRUE)
            set( HAVE_CUBLAS "#define HAVE_CUBLAS" )
        endif( WITH_CUBLAS STREQUAL "yes" )       

        ####
        # Check for CUSP
        #
@@ -94,7 +101,8 @@ endif( WITH_CUDA STREQUAL "yes" )
#
find_package( OpenMP ) 
if( OPENMP_FOUND )
   AddCompilerFlag( "-DHAVE_OPENMP -fopenmp" )
   #AddCompilerFlag( "-DHAVE_OPENMP -fopenmp" )
   set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAVE_OPENMP -fopenmp")
# TODO: finish this
endif()

@@ -215,6 +223,33 @@ endif( WITH_TESTS STREQUAL "yes" )
#   endif()
#endif()

####
# Explicit template instantiation
#
if( WITH_TEMPLATE_INSTANTIATION STREQUAL "yes" )
   AddCompilerFlag( "-DTEMPLATE_EXPLICIT_INSTANTIATION " )
endif()   

if( INSTANTIATE_INT STREQUAL "yes" )
   AddCompilerFlag( "-DINSTANTIATE_INT " )
endif()   

if( INSTANTIATE_LONG_INT STREQUAL "yes" )
   AddCompilerFlag( "-DINSTANTIATE_LONG_INT " )
endif()   

if( INSTANTIATE_FLOAT STREQUAL "yes" )
   AddCompilerFlag( "-DINSTANTIATE_FLOAT " )
endif()   

if( INSTANTIATE_DOUBLE STREQUAL "yes" )
   AddCompilerFlag( "-DINSTANTIATE_DOUBLE " )
endif()   

if( INSTANTIATE_LONG_DOUBLE STREQUAL "yes" )
   AddCompilerFlag( "-DINSTANTIATE_LONG_DOUBLE " )
endif()   

set( CXX_TEST_FLAGS "-fprofile-arcs -ftest-coverage" )
set( LD_TEST_FLAGS "-lgcov -coverage" )

+25 −1
Original line number Diff line number Diff line
@@ -4,7 +4,14 @@ TARGET=TNL
PREFIX=${HOME}/local
WITH_CUDA="yes"
WITH_TESTS="yes"

WITH_CUBLAS="no"
WITH_TEMPLATE_INSTANTIATION="yes"
INSTANTIATE_LONG_INT="yes"
INSTANTIATE_INT="yes"
INSTANTIATE_LONG_DOUBLE="yes"
INSTANTIATE_DOUBLE="yes"
INSTANTIATE_FLOAT="yes"
CMAKE="cmake"
CMAKE_ONLY="no"
HELP="no"
@@ -19,7 +26,18 @@ do
        --build=*                      ) BUILD="${option#*=}" ;;
        --with-tests=*                 ) WITH_TESTS="${option#*=}" ;;
        --with-cuda=*                  ) WITH_CUDA="${option#*=}" ;;
        --with-cublas=*                ) WITH_CUBLAS="${option#*=}" ;;
        --with-templates-instantiation ) WITH_TEMPLATE_INSTANTIATION="${option#*=}" ;;
        --instantiate-long-int=*       ) INSTANTIATE_LONG_INT="${option#*=}" ;;
        --instantiate-int=*            ) INSTANTIATE_INT="${option#*=}" ;;
        --instantiate-long-double=*    ) INSTANTIATE_LONG_DOUBLE="${option#*=}" ;;
        --instantiate-double=*         ) INSTANTIATE_DOUBLE="${option#*=}" ;;
        --instantiate-float=*          ) INSTANTIATE_FLOAT="${option#*=}" ;;
        --fast-build                   ) INSTANTIATE_LONG_INT="no"
                                         INSTANTIATE_INT="yes"
                                         INSTANTIATE_LONG_DOUBLE="no"
                                         INSTANTIATE_DOUBLE="yes"
                                         INSTANTIATE_FLOAT="no" ;;
        --with-cmake=*                 ) CMAKE="${option#*=}" ;;
        --build-jobs=*                 ) BUILD_JOBS="${option#*=}" ;;
        --cmake-only=*                 ) CMAKE_ONLY="${option#*=}" ;;
@@ -55,9 +73,15 @@ ${CMAKE} ${ROOT_DIR} \
         -DCMAKE_BUILD_TYPE=${BUILD} \
         -DCMAKE_INSTALL_PREFIX=${PREFIX} \
         -DWITH_CUDA=${WITH_CUDA} \
         -DWITH_CUBLAS=${WITH_CUBLAS} \
         -DWITH_TESTS=${WITH_TESTS} \
         -DPETSC_DIR=${PETSC_DIR} \
         -DWITH_TEMPLATE_INSTANTIATION=${WITH_TEMPLATE_INSTANTIATION}
         -DWITH_TEMPLATE_INSTANTIATION=${WITH_TEMPLATE_INSTANTIATION} \
         -DINSTANTIATE_FLOAT=${INSTANTIATE_FLOAT} \
         -DINSTANTIATE_DOUBLE=${INSTANTIATE_DOUBLE} \
         -DINSTANTIATE_LONG_DOUBLE=${INSTANTIATE_LONG_DOUBLE} \
         -DINSTANTIATE_INT=${INSTANTIATE_INT} \
         -DINSTANTIATE_LONG_INT=${INSTANTIATE_LONG_INT}

if test ${CMAKE_ONLY} = "yes";
then
+6 −0
Original line number Diff line number Diff line
@@ -35,6 +35,9 @@ set( tnl_CUDA__SOURCES ${tnl_functions_CUDA__SOURCES}
if( BUILD_CUDA )
   CUDA_ADD_LIBRARY( tnl${debugExt}-${tnlVersion} SHARED ${tnl_CUDA__SOURCES}
                                                  OPTIONS ${CUDA_ADD_LIBRARY_OPTIONS} )
    if( HAVE_CUBLAS )
       CUDA_ADD_CUBLAS_TO_TARGET( tnl${debugExt}-${tnlVersion} )
    endif( HAVE_CUBLAS )
else( BUILD_CUDA )
   ADD_LIBRARY( tnl${debugExt}-${tnlVersion} SHARED 
                ${tnl_SOURCES} )
@@ -51,6 +54,9 @@ IF( BUILD_MPI )
   if( BUILD_CUDA )
      CUDA_ADD_LIBRARY( tnl-mpi${debugExt}-${tnlVersion} SHARED ${tnl_CUDA__SOURCES} 
                                                         OPTIONS ${CUDA_ADD_LIBRARY_OPTIONS} )
      if( HAVE_CUBLAS )
         CUDA_ADD_CUBLAS_TO_TARGET( tnl-mpi${debugExt}-${tnlVersion} )
      endif( HAVE_CUBLAS )
   else( BUILD_CUDA )
         ADD_LIBRARY( tnl-mpi${debugExt}-${tnlVersion} SHARED
                      ${tnl_SOURCES} )  
+101 −24

File changed.

Preview size limit exceeded, changes collapsed.

+101 −24

File changed.

Preview size limit exceeded, changes collapsed.

Loading