Fix typos
aijkokkos: support factorization on host but solve on device
Changes to allow building gpu matrices on the device.Changed MatCreateMPIAIJWithSeqAIJ() so global sizes must be given to prevent reduction.Changed MatCreateMPIAIJWithSeqAIJ() so B can be passed
Changes to allow building gpu matrices on the device.Changed MatCreateMPIAIJWithSeqAIJ() so global sizes must be given to prevent reduction.Changed MatCreateMPIAIJWithSeqAIJ() so B can be passed in with local indices, hence no compactification occurs.Added MatCreateSeqAIJKokkosWithKokkosViews() which creates a Mat with no preallocation on the host.Added test that checks building kokkos matrices without any host preallocation
show more ...
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
CUDA: suppress warnings showing up with cuda-12.8.0
Merge branch 'jczhang/2025-01-30/feature-support-AMD-MI300A' into 'main'Add support of AMD MI300ACloses #1703See merge request petsc/petsc!8110
aijkokkos: setting block sizes for product of PtAP, etc to aijkokkos and cusparse
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).
Mat: leverage MatConvert_AIJ_HYPRE to convert aijkokkos matrices to mathypre ones
Unifies all context destructors to have a form of PetscCtxDestroyFn == PetscErrorCode (*)(void **)Changes the previous subset of destructor APIs that used PetscErrorCode (*)(void *) (mostly those t
Unifies all context destructors to have a form of PetscCtxDestroyFn == PetscErrorCode (*)(void **)Changes the previous subset of destructor APIs that used PetscErrorCode (*)(void *) (mostly those thatused PetscContainer- Now allows any context to be a PetscObject- Will provide a cleaner mapping to bindings in other languages- Simplifies the maintenance of PETSc source code; improves clarityNot backward compatible, compiler warnings will tell users what functions need to be updated
Use PetscObjectContainerCompose() when applicable
Remove unneeded parentheses
Add shared memory support for PCMPI using both shmget() and MPI_Win_allocate_shared()
Kokkos: try to always have an execution space argument
MatSolverTypeRegister: switch to PETSC_INTERN
Kokkos: add explicit execution space (stream or queue) to Kokkos/KK functions
CI: update to clang-format-18
Remove multiple parentheses and extra semicolongit grep -l -E "\(\([a-zA-Z0-9_]+\)\(\*[a-zA-Z0-9_]+\)[, )]" | xargs sed -r -i'' 's#\(\(([a-zA-Z0-9_]+)\)\(\*([a-zA-Z0-9_]+)\)([, )])#\(\(\1\)\*\2\3#g
Remove multiple parentheses and extra semicolongit grep -l -E "\(\([a-zA-Z0-9_]+\)\(\*[a-zA-Z0-9_]+\)[, )]" | xargs sed -r -i'' 's#\(\(([a-zA-Z0-9_]+)\)\(\*([a-zA-Z0-9_]+)\)([, )])#\(\(\1\)\*\2\3#g'git grep -l -E "Petsc(.)*\(\(\*[a-zA-Z0-9_]*\)," | xargs sed -r -i'' 's#Petsc([a-zA-Z0-9_]*)\(\(\*([a-zA-Z0-9_]*)\), #Petsc\1(*\2, #g'git grep -l -E "([\!\&\~\*\(]|\)\)|\([^,\*\(]+\**\))\(([a-zA-Z0-9_]+((\.|->)[a-zA-Z0-9_]+|\[[a-zA-Z0-9_ \%\+\*\-]+\])+)\)" | xargs sed -r -i'' 's#([\!\&\~\*\(]|\)\)|\([^,\*\(]+\**\))\(([a-zA-Z0-9_]+((\.|->)[a-zA-Z0-9_]+|\[[a-zA-Z0-9_ \%\+\*\-]+\])+)\)#\1\2#g'
checkbadSource: rules for PetscFunctionBegin and derivatives
Fix words appearing twice in a row for no good reason
LIBBASE is no longer used in make so remove it
Vec: add GEMV optimizations for VecMDot and friends for VecKokkos
Rename rules.doc and rules.utils because GitLab treats the former as a MS Word document.Thanks-to: Jed Brown
Mat: support Mat{Shift, DiagonalSet, DiagonalScale} for MATAIJKOKKOS
Convert all header guards to pragma once
1234567