Commit bd636ec9 authored by Tomas Sobotik's avatar Tomas Sobotik
Browse files

Adding GPU support.

parent 9434c088
Loading
Loading
Loading
Loading
+14 −20
Original line number Diff line number Diff line
@@ -32,17 +32,10 @@ if( WITH_TEMPLATE_EXPLICIT_INSTANTIATION STREQUAL "yes" )
   AddCompilerFlag( "-DTEMPLATE_EXPLICIT_INSTANTIATION " )
endif()   

if( WITH_CUDA STREQUAL "yes" )
   AddCompilerFlag( "-DHAVE_NOT_CXX11 -U_GLIBCXX_ATOMIC_BUILTINS -U_GLIBCXX_USE_INT128" )
   set( CUDA_LINKER_OPTIONS "-arch sm_20 -shared" )
else()
   AddCompilerFlag( "-std=gnu++0x" )
endif()      

#####
# Check for CUDA
#
if( NOT WITH_CUDA STREQUAL "no" )
if( WITH_CUDA STREQUAL "yes" )
    find_package( CUDA )
    if( CUDA_FOUND )
        set( BUILD_CUDA TRUE)
@@ -50,14 +43,11 @@ if( NOT WITH_CUDA STREQUAL "no" )
        set(BUILD_SHARED_LIBS ON)
        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 )
            
       #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,compute_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,compute_35\" -shared )
        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 CUSP
        #
@@ -91,8 +81,12 @@ if( NOT WITH_CUDA STREQUAL "no" )
           endif()            
        endif( NOT WITH_CUSPARSE STREQUAL "no" )
   
    else( CUDA_FOUND )
      AddCompilerFlag( "-std=gnu++0x" )         
    endif( CUDA_FOUND )
endif( NOT WITH_CUDA STREQUAL "no" )    
else( WITH_CUDA STREQUAL "yes" )
   AddCompilerFlag( "-std=gnu++0x -ftree-vectorizer-verbose=1" )       
endif( WITH_CUDA STREQUAL "yes" )    

####
# Check for OpenMP
+14 −3
Original line number Diff line number Diff line
TODO: neumanovy okrajove podminky
TODO: v tnlMeshResolver se provadi preklad pro vsechny mozne sablonove parametry => prorezat

TODO: napsat FunctionDiscretizer pro jednotne rozhrani RightHandSide

TODO: doplnit mesh travelsals pro jine mesh entity nez cell
TODO: implementace maticovych resicu
      * Gaussova eliminace
      * SOR metoda
      * Jacobiho metoda
      * TFQMR metoda
      * IDR metody 

TODO: Nahradit sablonovy parametr dimenze sitove entity za typ entity. V pripade hran gridu, by ty v sobe mohly mit i orientaci.
      Asi by to bylo vyhodne i pro site se smisenym typem entit. 

TODO: implementovat tridu tnlFileName pro generovani jmen souboru

@@ -7,7 +20,5 @@ TODO: metodu pro tnlString pro nahrazeni napr. podretezce XXXXX indexem 00001 tj

TODO: vyjimky 

TODO: implementovat maticovy format COO - mimo jine by se dal vyuzit k rychlejsimu parsovani mtx souboru

TODO: prubezne ukladani vysledku behem vypoctu 
                 
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -2,5 +2,5 @@ add_subdirectory( make-project )
add_subdirectory( simple-solver )
add_subdirectory( heat-equation )
add_subdirectory( navier-stokes )
add_subdirectory( hamilton-jacobi )
#add_subdirectory( hamilton-jacobi )
add_subdirectory( hamilton-jacobi-parallel )
+6 −0
Original line number Diff line number Diff line
add_subdirectory( make-project )
add_subdirectory( simple-solver )
add_subdirectory( heat-equation )
add_subdirectory( navier-stokes )
add_subdirectory( hamilton-jacobi )
add_subdirectory( hamilton-jacobi-parallel )
+15 −10
Original line number Diff line number Diff line
set( tnl_hamilton_jacobi_parallel_SOURCES
     MainBuildConfig.h
     tnlParallelEikonalSolver_impl.h
     tnlParallelEikonalSolver.h
     main.cpp
     parallelEikonalConfig.h )
#     MainBuildConfig.h
#     tnlParallelEikonalSolver_impl.h
#     tnlParallelEikonalSolver.h
#     parallelEikonalConfig.h 
     main.cpp)


IF(  BUILD_CUDA ) 
	CUDA_ADD_EXECUTABLE(hamilton-jacobi-parallel${debugExt} main.cu)
ELSE(  BUILD_CUDA )                
	ADD_EXECUTABLE(hamilton-jacobi-parallel${debugExt} main.cpp)
ENDIF( BUILD_CUDA )
target_link_libraries (hamilton-jacobi-parallel${debugExt} tnl${debugExt}-${tnlVersion} )


INSTALL( TARGETS hamilton-jacobi-parallel${debugExt}
         RUNTIME DESTINATION bin
         PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE )
        
INSTALL( FILES ${tnl_hamilton_jacobi_parallel_SOURCES}
               Makefile
         DESTINATION share/tnl-${tnlVersion}/examples/hamilton-jacobi-parallel )
#INSTALL( FILES ${tnl_hamilton_jacobi_parallel_SOURCES}
#         DESTINATION share/tnl-${tnlVersion}/examples/hamilton-jacobi-parallel )
Loading