Merge branch 'jczhang/2023-08-08/feature-hypre-device-matzerorows' into 'main'Support MatZeroRows on MatHYPRE on deviceSee merge request petsc/petsc!6790
Sys: add PetscGetCurrentCUDA/HIPStream()
The various PetscXXXRegisterFinalize() should execute finalizers in reverse order of registration
Profiling: Switch logging over to the new PetscLogHandler infrastructure- Move data structures only needed by the default logger now (Action, Object) to logdefault.c- Create petsclogdeprecated.
Profiling: Switch logging over to the new PetscLogHandler infrastructure- Move data structures only needed by the default logger now (Action, Object) to logdefault.c- Create petsclogdeprecated.h and petsc/private/logimpldeprecated.h for publicly visible symbols that are now deprecated. Yes, lots of symbols in petsc/private/logimpl.h were not only visible but had docstrings.- The macros PetscLogEventBegin(), PetscLogEventEnd(), PetscLogEventSync(), PetscLogObjectCreate(), and PetscLogObjectDestroy() now looks through the log handlers in PetscLogHandlers, sees if they have they appropriate callbacks (Exposed in PetscLogHandlerHot), and calls them. Up to 4 log handlers can run simultaneously.- All queries about the registered things now go through petsc_log_state.- Output functions dispatch to the appropriate PetscLogHandler- There is no need for xmllogevent.c, xmlviewer.c, eventlog.c, classlog.c, and stagelog.c anymore. Some orphaned functions (PetscLogSetThreshold(), PetscLogEventSetDof(), PetscLogEventSetError(), PetscASend(), PetscARecv(), PetscAReduce())- PetscFEOpenCLLogResidual() did some intrusive things related to the old logging infrastruture: the private header for the default log handler is now imported into feopencl.c so that it can do equivalent things with the new infrastructure.- PetscLogPauseCurrentEvent_Internal() is replaced with PetscLogEventsPause()Deprecated symbols include:- All functions related to PetscStageLog and the resizable array structs that it contained.- The legacy EventBegin()/EventEnd() callbacks.- PetscLogAllBegin(), which actually reported less information than PetscLogDefaultBegin() because it was not kept up-to-date with regards to GPU profiling.
show more ...
Rename PetscValidPointer -> PetscAssertPointer
extern template CUPM Interface and SolverInterface as well
Remove ifdef __cplusplus for cupmthrustutility.hpp
Wrap thrust timers in PetscFunctionBegin/End() so the stack trace is shown, include proper headers for THRUST_VERSION, and define PETSC_THRUST_HAS_ASYNC if we detect it
remove ifdef __cplusplus from C++-only headers
Make the double-pointer nature of PetscDeviceContextGetStreamHandle_Internal() explicit
Expose PetscDeviceContext stream
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 unneeded SOURCEH from makefilesNo longer used by docs or build
Do MatAXPY in a single kernel instead of multiple cublas calls
Do MatScale in a single kernel instead of multiple cublas calls
Add cupmsolverinterface.hpp
Move plus_equals functor to kernels.hpp
Improve compile time by reducing number of thrust headers transitively included, removing all of the unecessary Thrust util indirection
Use designated initializers in CUPMContext and copy ops struct directly instead of using mempcy
Remove empty preprocessor variables
Remove unneeded declarations of LOCDIR from all the makefilesCommit-type:documentation
Remove redundant uses of PETSC_NODISCARD from functions returning a PetscErrorCode
Make PetscErrorCode a non-discardable enum
1234