checkbadSource: enforce proper style in makefiles
Kokkos: return execution space instead of reference to simplify the codeA Kokkos execution space is a shared pointer. We don't need to reference it
Kokkos: add support of AMD MI300A* Use HostMirrorMemorySpace instead of HostSpace to fix compile errors on MI300A* Replace Kokkos::HostSpace with HostMirrorMemorySpace to fix compile errors on MI
Kokkos: add support of AMD MI300A* Use HostMirrorMemorySpace instead of HostSpace to fix compile errors on MI300A* Replace Kokkos::HostSpace with HostMirrorMemorySpace to fix compile errors on MI300A, since the latter is what Kokkos::DualView use for its host view* Fix a subtle bug in KokkosDualViewSync() w.r.t MI300A. Suppose we want to sync a petsc VecKokkos v on host. On MI300A, the host copy v_h and the device copy v_d share the memory. So in the old code, we used if (v_dual.need_sync_host()) to skip the device to host memory copy. But I should not skip the exec.fence(). As the device might still have kernels writing v_d, we still need to sync the device/stream to make v_d ready for use on CPU (via v_h).
show more ...
Update to Kokkos to 4.5.00
PetscSF: support MPI derived data types created with large countWhen user created MPI derived data types with large count routines, e.g., MPI_Type_contiguous_c(4, MPI_DOUBLE, &newtype), and passed
PetscSF: support MPI derived data types created with large countWhen user created MPI derived data types with large count routines, e.g., MPI_Type_contiguous_c(4, MPI_DOUBLE, &newtype), and passed newtype to PetscSF,is it legal to decode the datatype with MPI_Type_get_envelope()? The MPI Forum debated but has yet to resolve this issue.Our approach is to decode the datatype with MPI_Type_get_envelope_c() if available; otherwise with MPI_Type_get_envelope().But currently we don't really support real big count values, say a type created by MPI_Type_contiguous_c(2^33, MPI_DOUBLE, &newtype).We could support that, but just see no needs for now. We will error out if this kind of types are given to PetscSF.
PetscSF: add PetscSFGetDatatypeSize_Internal() for internal use
Remove some unneeded parentheses
checkbadSource: rules for PetscFunctionBegin and derivatives
LIBBASE is no longer used in make so remove it
Rename rules.doc and rules.utils because GitLab treats the former as a MS Word document.Thanks-to: Jed Brown
Kokkos: make dual view sync_host() asynchronous by adding an execution space argumentsync_host() without the argument is synchronous (like cudaMemcpy D2H). With the argument,it is asynchronous (l
Kokkos: make dual view sync_host() asynchronous by adding an execution space argumentsync_host() without the argument is synchronous (like cudaMemcpy D2H). With the argument,it is asynchronous (like cudaMemcpyAsync D2H).To make sure the host array contains valide data immediately after dualview.sync_host(),we need to do exec.fence();
Let SF Kokkos backend use an execution space made from PetscDefaultCuda/HipStream
non-test and tutorial makefiles only need rules.doc not the full rulesCommit-type: documentation
Only makefiles in the test and tutorial directories need lib/petsc/conf/testCommit-type: housekeeping
Remove now unneeded SOURCE* variables from makefilesCommit-type: configure, housekeeping
Remove empty preprocessor variables
Remove unneeded declarations of LOCDIR from all the makefilesCommit-type:documentation
Make PetscErrorCode a non-discardable enum
source code format changes due to .clang-format changes
makefile: fix typo - petsckdir.mk -> petscdir.mk
clang-format: convert PETSc sources to comply with clang-format
Add -include */petscdir.mk to makefile that lacked itfor i in `git ls-files | grep makefile | xargs grep -L petscdir.mk`; do echo $i ; str=`echo $i |sed -e 's?[-a-zA-Z0-9]*/?../?g' -e 's?makef
Add -include */petscdir.mk to makefile that lacked itfor i in `git ls-files | grep makefile | xargs grep -L petscdir.mk`; do echo $i ; str=`echo $i |sed -e 's?[-a-zA-Z0-9]*/?../?g' -e 's?makefile?petsckdir.mk?g'` ; cp $i tmp echo "-include $str" > $i cat tmp >> $idoneCommit-type: makefile, housekeeping/spend 15m
remove garbage from makefilesIncluding * unused FLAGS variables * All: lib that did not work * stray blank lines etcCommit-type: housekeeping/spend 1h
Remove some PetscCheckFalse()
The great renaming:- CHKERRQ() -> PetscCall()- CHKERRV() -> PetscCallVoid()- CHKERRMPI() -> PetscCallMPI()- CHKERRABORT() -> PetscCallAbort()- CHKERRCONTINUE() -> PetscCallContinue()- CHKERRXX
The great renaming:- CHKERRQ() -> PetscCall()- CHKERRV() -> PetscCallVoid()- CHKERRMPI() -> PetscCallMPI()- CHKERRABORT() -> PetscCallAbort()- CHKERRCONTINUE() -> PetscCallContinue()- CHKERRXX() -> PetscCallThrow()- CHKERRCXX() -> PetscCallCXX()- CHKERRCUDA() -> PetscCallCUDA()- CHKERRCUBLAS() -> PetscCallCUBLAS()- CHKERRCUSPARSE() -> PetscCallCUSPARSE()- CHKERRCUSOLVER() -> PetscCallCUSOLVER()- CHKERRCUFFT() -> PetscCallCUFFT()- CHKERRCURAND() -> PetscCallCURAND()- CHKERRHIP() -> PetscCallHIP()- CHKERRHIPBLAS() -> PetscCallHIPBLAS()- CHKERRHIPSOLVER() -> PetscCallHIPSOLVER()- CHKERRQ_CEED() -> PetscCallCEED()- CHKERR_FORTRAN_VOID_FUNCTION() -> PetscCallFortranVoidFunction()- CHKERRMKL() -> PetscCallMKL()- CHKERRMMG() -> PetscCallMMG()- CHKERRMMG_NONSTANDARD() -> PetscCallMMG_NONSTANDARD()- CHKERRCGNS() -> PetscCallCGNS()- CHKERRPTSCOTCH() -> PetscCallPTSCOTCH()- CHKERRSTR() -> PetscCallSTR()- CHKERRTC() -> PetscCallTC()
12