Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tacho structure symmetric LU solver for CPU and GPU #10406

Merged
merged 72 commits into from
Jun 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
f36b6b0
Tacho - set ETI system
kyungjoo-kim Mar 22, 2022
b2db0ec
Tacho - remove tasking for now.... too complex to refactor all together
kyungjoo-kim Mar 23, 2022
c6caab8
Tacho - insulate tacho from kokkos tasking
kyungjoo-kim Mar 24, 2022
bf22d8c
Tacho - remove task scheduler from example
kyungjoo-kim Mar 24, 2022
836a436
Tacho - cleaning
kyungjoo-kim Mar 24, 2022
bc32fd7
Tacho - remove tasking for now to reduce complexity
kyungjoo-kim Mar 24, 2022
4c6bf9c
Tacho - add hip layer in blas
kyungjoo-kim Mar 24, 2022
91b41b6
Tacho - paving AMD testing
kyungjoo-kim Mar 24, 2022
8c4f6db
Tacho - DLA components
kyungjoo-kim Mar 24, 2022
a0887e8
Tacho - enable test wihtout relocating device option
kyungjoo-kim Apr 4, 2022
8541914
Tacho - add l and u buffer for lu factorization
kyungjoo-kim Apr 4, 2022
e7d31d9
Tacho - remove gtest dependency from common tools
kyungjoo-kim Apr 5, 2022
f20e8a8
Tacho - remove gtest
kyungjoo-kim Apr 5, 2022
6f9857d
Tacho - add LU
kyungjoo-kim Apr 5, 2022
9832fc7
Tacho - fix a typo
kyungjoo-kim Apr 5, 2022
a550eda
Tacho - add LU
kyungjoo-kim Apr 5, 2022
a184db3
Tacho - openmp build failure work-around.
kyungjoo-kim Apr 5, 2022
e4f6753
Tacho - more unit tests
kyungjoo-kim Apr 5, 2022
7dc2895
Tacho - adding lu test
kyungjoo-kim Apr 5, 2022
589103a
Merge remote-tracking branch 'upstream/develop' into tacho-refactor
kyungjoo-kim May 5, 2022
816db27
Tacho - let's pass the PR
kyungjoo-kim May 6, 2022
75dbb4c
Merge remote-tracking branch 'upstream/develop' into tacho-refactor
kyungjoo-kim May 26, 2022
3fd2b85
Tacho - fix a bug in initializing pivot array
kyungjoo-kim May 31, 2022
ae9f678
Tacho - remove deprecate warning for active memory space
kyungjoo-kim Jun 1, 2022
ac41704
Tacho - add small matrix LU
kyungjoo-kim Jun 1, 2022
13c3368
Tacho - copy initialization to supernodes
kyungjoo-kim Jun 1, 2022
2a1e2a7
Tacho - centralize the update routine cholesky
kyungjoo-kim Jun 1, 2022
ad1b413
Tacho - still having a bug
kyungjoo-kim Jun 1, 2022
389c0c9
Tacho - lu serial version is working
kyungjoo-kim Jun 1, 2022
c105e54
Tacho - add a test problem
kyungjoo-kim Jun 1, 2022
3089ee7
Tacho - cmake include test2.mtx
kyungjoo-kim Jun 1, 2022
e484b9b
Tacho - fix transpose bug
kyungjoo-kim Jun 1, 2022
4a1728b
Tacho - temporal disabling unit tests
kyungjoo-kim Jun 1, 2022
2907e6d
Tacho - clark's example
kyungjoo-kim Jun 2, 2022
2615e02
Tacho - add set option for selecting method
kyungjoo-kim Jun 2, 2022
2b050b4
Tacho - better error message
kyungjoo-kim Jun 2, 2022
4111d0b
Tacho - let's use setSolutionMethod instead of matrix type setting
kyungjoo-kim Jun 2, 2022
413eec6
Tacho - add LU on device
kyungjoo-kim Jun 2, 2022
8d1c1e6
Tacho - team functor is working for factorization; update is not working
kyungjoo-kim Jun 2, 2022
53ff18c
Tacho - one more bug.....
kyungjoo-kim Jun 3, 2022
2a321eb
Tacho - lu pivoting bug fix
kyungjoo-kim Jun 3, 2022
3bc23ae
Tacho - LU solver is working on cuda.
kyungjoo-kim Jun 3, 2022
71d30a2
Merge remote-tracking branch 'upstream/develop' into tacho-refactor
kyungjoo-kim Jun 3, 2022
99ceb78
Tacho - apply clang format
kyungjoo-kim Jun 3, 2022
90d35d9
Tacho - cleanup
kyungjoo-kim Jun 6, 2022
cde07d8
Tacho - remove unused variable warning
kyungjoo-kim Jun 6, 2022
3fa851a
Tacho - add place holder for solver variant 1 and 2 for ldl and lu
kyungjoo-kim Jun 8, 2022
3ee6ffa
Tacho - factorize lu with variant = 1
kyungjoo-kim Jun 8, 2022
05dc4bf
Tacho - more explicit for abs
kyungjoo-kim Jun 9, 2022
629d803
Tacho - temporary path to push to trilinos
kyungjoo-kim Jun 9, 2022
79579c4
Tacho - work in progress for ldl variant 1 and 2 solver; pushed this …
kyungjoo-kim Jun 13, 2022
d34ea1a
Tacho - temporary patch for PR test
kyungjoo-kim Jun 13, 2022
e357f48
Tacho - ldl solve optimization; more comes later
kyungjoo-kim Jun 14, 2022
d27104b
Tacho - example solution method
kyungjoo-kim Jun 14, 2022
da4da79
Tacho - const member type
kyungjoo-kim Jun 14, 2022
9a77217
Tacho - ldl solve variant 1 lower improvement
kyungjoo-kim Jun 14, 2022
f3e76b4
Tacho - ldl solve improvement.
kyungjoo-kim Jun 14, 2022
a9fd48c
Tacho - rename
kyungjoo-kim Jun 14, 2022
6143a08
Tacho - more improvement on LDL solver
kyungjoo-kim Jun 14, 2022
8ae55c7
Tacho - improvement of ldl variant 2 solver
kyungjoo-kim Jun 14, 2022
02e9b1e
Tacho - ldl improvement on factorization
kyungjoo-kim Jun 14, 2022
03c7cc4
Tacho - ldl variant 2 is also working
kyungjoo-kim Jun 14, 2022
7115007
Tacho - cleanup
kyungjoo-kim Jun 15, 2022
845cb3b
Tacho - clena up
kyungjoo-kim Jun 15, 2022
9b2c971
Tacho - another cleanup
kyungjoo-kim Jun 15, 2022
523e2d8
Tacho - cleanup
kyungjoo-kim Jun 15, 2022
cd6dbaa
Tacho - adjust l buf space for variant 1 and 2 solve
kyungjoo-kim Jun 15, 2022
ffdee1a
Tacho - pivots are not always needed but it costs; make it optional
kyungjoo-kim Jun 15, 2022
c5d1d88
Tacho - lu solve improvement variant 1
kyungjoo-kim Jun 15, 2022
58b56a0
Tacho - add debug fence
kyungjoo-kim Jun 16, 2022
c57fe2e
Tacho - cleaning
kyungjoo-kim Jun 16, 2022
49b917b
Tacho - lu solve phase improvement
kyungjoo-kim Jun 16, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 13 additions & 13 deletions cmake/RepositoryDependenciesSetup.cmake
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
if (TPL_ENABLE_CUDA AND NOT Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE)
if ("${${PROJECT_NAME}_ENABLE_ShyLU_NodeTacho}" STREQUAL "")
message(
"-- " "NOTE: Setting ${PROJECT_NAME}_ENABLE_ShyLU_NodeTacho=OFF by default since TPL_ENABLE_CUDA='${TPL_ENABLE_CUDA}' AND Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE='${Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE}'!\n"
"-- NOTE: To allow the enable of ShyLU_NodeTacho, please set Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE=ON.")
set(${PROJECT_NAME}_ENABLE_ShyLU_NodeTacho OFF)
# NOTE: Above we set the non-cache var
# ${PROJECT_NAME}_ENABLE_ShyLU_NodeTacho so that each reconfigure will
# show this same note.
elseif (${PROJECT_NAME}_ENABLE_ShyLU_NodeTacho)
message(FATAL_ERROR "ERROR: ${PROJECT_NAME}_ENABLE_ShyLU_NodeTacho=ON but TPL_ENABLE_CUDA='${TPL_ENABLE_CUDA}' AND Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE='${Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE}' which is not allowed!")
endif()
endif()
# if (TPL_ENABLE_CUDA AND NOT Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE)
# if ("${${PROJECT_NAME}_ENABLE_ShyLU_NodeTacho}" STREQUAL "")
# message(
# "-- " "NOTE: Setting ${PROJECT_NAME}_ENABLE_ShyLU_NodeTacho=OFF by default since TPL_ENABLE_CUDA='${TPL_ENABLE_CUDA}' AND Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE='${Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE}'!\n"
# "-- NOTE: To allow the enable of ShyLU_NodeTacho, please set Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE=ON.")
# set(${PROJECT_NAME}_ENABLE_ShyLU_NodeTacho OFF)
# # NOTE: Above we set the non-cache var
# # ${PROJECT_NAME}_ENABLE_ShyLU_NodeTacho so that each reconfigure will
# # show this same note.
# elseif (${PROJECT_NAME}_ENABLE_ShyLU_NodeTacho)
# message(FATAL_ERROR "ERROR: ${PROJECT_NAME}_ENABLE_ShyLU_NodeTacho=ON but TPL_ENABLE_CUDA='${TPL_ENABLE_CUDA}' AND Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE='${Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE}' which is not allowed!")
# endif()
# endif()

#########################################################################
# STKBalance does not work with GO=INT or GO=UNSIGNED
Expand Down
40 changes: 15 additions & 25 deletions packages/shylu/shylu_node/tacho/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,39 +5,29 @@ IF (Kokkos_ENABLE_CUDA)
IF (DEFINED CUDA_VERSION AND (CUDA_VERSION VERSION_LESS "8.0"))
MESSAGE(FATAL_ERROR "Tacho requires CUDA 8 if CUDA is enabled")
ENDIF()
# If RDC is off, emits a warning message
IF (NOT Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE)
MESSAGE(WARNING "Tacho requires CUDA relocatable device code to be enabled if CUDA is enabled. Set: Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE=ON ")
ENDIF()
ENDIF()

IF (Kokkos_ENABLE_THREADS)
IF (NOT Kokkos_ENABLE_OPENMP)
MESSAGE(FATAL_ERROR "Tacho can not be build with Pthreads as the Kokkos Host Backend.")
ENDIF()
ENDIF()

# Set cmake variable to control examples and tests
IF (Kokkos_ENABLE_CUDA)
IF (DEFINED CUDA_VERSION AND (CUDA_VERSION VERSION_LESS "8.0"))
SET(TACHO_HAVE_KOKKOS_TASK OFF)
ELSE()
IF (Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE)
SET(TACHO_HAVE_KOKKOS_TASK ON)
ELSE()
SET(TACHO_HAVE_KOKKOS_TASK OFF)
ENDIF()
ENDIF()
ELSE()
SET(TACHO_HAVE_KOKKOS_TASK ON)
ADD_SUBDIRECTORY(src)

IF (NOT DEFINED Tacho_ENABLE_EXAMPLES)
SET(Tacho_ENABLE_EXAMPLES ${Trilinos_ENABLE_EXAMPLES})
ENDIF()
IF (NOT DEFINED Tacho_ENABLE_TESTS)
SET(Tacho_ENABLE_TESTS ${Trilinos_ENABLE_TESTS})
ENDIF()

ADD_SUBDIRECTORY(src)
IF (TACHO_HAVE_KOKKOS_TASK)
IF (Trilinos_ENABLE_Gtest)
TRIBITS_ADD_EXAMPLE_DIRECTORIES(example)
TRIBITS_ADD_TEST_DIRECTORIES(unit-test)
ELSE()
MESSAGE(STATUS "Tacho disables examples and tests as Trilinos disables Gtest")
ENDIF()
IF (Tacho_ENABLE_EXAMPLES)
TRIBITS_ADD_EXAMPLE_DIRECTORIES(example)
ENDIF()

IF (Tacho_ENABLE_TESTS)
TRIBITS_ADD_TEST_DIRECTORIES(unit-test)
ENDIF()

TRIBITS_SUBPACKAGE_POSTPROCESS()
4 changes: 2 additions & 2 deletions packages/shylu/shylu_node/tacho/cmake/Dependencies.cmake
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
SET(LIB_REQUIRED_DEP_PACKAGES Kokkos)
SET(LIB_OPTIONAL_DEP_PACKAGES)
SET(TEST_REQUIRED_DEP_PACKAGES Kokkos KokkosAlgorithms Gtest)
SET(TEST_REQUIRED_DEP_PACKAGES Kokkos KokkosAlgorithms)
SET(TEST_OPTIONAL_DEP_PACKAGES)
SET(LIB_REQUIRED_DEP_TPLS)
SET(LIB_OPTIONAL_DEP_TPLS METIS Scotch Cholmod HWLOC HYPRE MKL LAPACK BLAS Pthread QTHREAD VTune CUSOLVER CUSPARSE CUBLAS CUDA)
SET(LIB_OPTIONAL_DEP_TPLS METIS HWLOC HYPRE MKL LAPACK BLAS Pthread QTHREAD VTune CUSOLVER CUSPARSE CUBLAS CUDA)
SET(TEST_REQUIRED_DEP_TPLS BLAS LAPACK)
SET(TEST_OPTIONAL_DEP_TPLS METIS HWLOC Cholmod MKL LAPACK BLAS Pthread QTHREAD CUSOLVER CUSPARSE CUBLAS CUDA)
12 changes: 0 additions & 12 deletions packages/shylu/shylu_node/tacho/cmake/Tacho_config.h.in
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
#ifndef __TACHO_CONFIG_H__
#define __TACHO_CONFIG_H__

/* Define if kokkos tasking is enabled */
#cmakedefine TACHO_HAVE_KOKKOS_TASK

/* Define if want to build with size_type (int) enabled */
#cmakedefine TACHO_USE_INT_INT

Expand All @@ -22,21 +19,12 @@
/* Define if want to build with METIS enabled */
#cmakedefine TACHO_HAVE_METIS

/* Define if want to build with METIS enabled */
//#cmakedefine TACHO_HAVE_METIS_MT

/* Define if want to build with Scotch enabled */
//#cmakedefine TACHO_HAVE_SCOTCH

/* Define if want to build with CHOLMOD enabled */
#cmakedefine TACHO_HAVE_SUITESPARSE

/* Define if want to build with VTune enabled */
#cmakedefine TACHO_HAVE_VTUNE

///* Define if want to build with Teuchos enabled */
#cmakedefine TACHO_HAVE_TRILINOS_SS

#ifndef F77_BLAS_MANGLE
# define F77_BLAS_MANGLE@F77_BLAS_MANGLE@
#endif
Expand Down
Loading