Enable PETSC_ATTRIBUTE_FORMAT()
Cleanup of introduction of PetscCall()* remove bogus error flags from XXXBegin()/End() macros such as PetscOptionsBegin()/End()* rename for consistency certain XXXBegin()/End() macros such as Mat
Cleanup of introduction of PetscCall()* remove bogus error flags from XXXBegin()/End() macros such as PetscOptionsBegin()/End()* rename for consistency certain XXXBegin()/End() macros such as MatPreallocateInitialize()/Finalize()* fix many lingering ierr = XXX that arose from multiline function calls* sync slepc/hpddm - to use snapshots with the same changesCommit-type: error-checking, style-fix/spend 8h
show more ...
Remove some PetscCheckFalse()
Mat: Mat_MPIAIJCUSPARSE does not need to have its own cuSparse handle or cuda streamAs Mat_SeqAIJCUSPARSE already has them. Otherwise, if we create a cuSparse handle in Mat_MPIAIJCUSPARSE,and set
Mat: Mat_MPIAIJCUSPARSE does not need to have its own cuSparse handle or cuda streamAs Mat_SeqAIJCUSPARSE already has them. Otherwise, if we create a cuSparse handle in Mat_MPIAIJCUSPARSE,and set it as diagonal A and offdiagonal B's handle, then in MatDestroy_SeqAIJCUSPARSE(), we may destroythe same handle twice: one for for A, the other for B.
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()
pluck ~1000 low hanging PetscCheckFalse() -> PetscCheck() fruit
chkerr and friends wrapped
MatSetPreallocationCOO: avoid MatHeaderMerge
Mat AIJCUSPARSE: fix MatSetValuesCOO non-basic GPU assemblyOtherwise we get error traces like:(gdb) p cusp->mat$6 = (Mat_SeqAIJCUSPARSEMultStruct *) 0x0(gdb) bt
Mat: remove the convinience that NULL coo_v[] means a zero array
Mat: support extended COO with mataijcusparse
rename PetscAssert() -> PetscCheck() and PetscAssertDebug() -> PetscAssert()
add PetscAssert() and PetscAssertFalse()
SETERRQ[1-9]+ begone
Mat CUSPARSE: tidy error-prone PETSC_INTERN redeclaration
MatSetPreallocationCOO: use PetscCount for length argumentThis is necessary to support assembly even when the vector size andnumber of nonzeros is well below 2B. For example, with a scalar problem
MatSetPreallocationCOO: use PetscCount for length argumentThis is necessary to support assembly even when the vector size andnumber of nonzeros is well below 2B. For example, with a scalar problemon Q_1 hexes, you have 8*8=64 entries per element and thus hit 2B around33M elements. This change allows such problems to be solved withoutpromoting to 64-bit indices everywhere (a storage and bandwidth cost).PetscCount is a new signed type equivalent to ptrdiff_t, meant for arrayindices and sizes that may overflow int32_t even when solving a problemwhose dimension fits in int32_t.
applied attribute format fixes to mat headers
thrust: upgrade to 1.16 prerelease for async on streamsHeaders in this version are less promiscuous so we need more includes.
fix parrel GPU assembly for Kokkos
add hook for CPU cusparse solves
fix 64 bit integer bug with GPU assembly
In MatMult_MPIAIJCUSPARSE(), if the matrix is bound to the CPU, bind the local vector used for matrix multiplication as well.
- Replace the current CUPM initialization infrastructure with PetscDevice.- Remove -petsc_use_default_null_stream and -[cuda|hip]_synchronize options- Remove PetscCUDASynchronize and PetscHIPSynchr
- Replace the current CUPM initialization infrastructure with PetscDevice.- Remove -petsc_use_default_null_stream and -[cuda|hip]_synchronize options- Remove PetscCUDASynchronize and PetscHIPSynchronize- Remove PetscCUDAInitialize(), PetscCUDAInitializeCheck(), PetscHIPInitialize(), andPetscHIPInitializeCheck()- Remove PetscCUBLASInitializeHandle(), PetscCUSOLVERDnInitializeHandle(),PetscHIPBLASInitializeHandle(), and PetscHIPSOLVERInitializeHandle().- Remove petsc_gputimer_begin and petsc_gputimer_begin- Add -device_enable, -device_select and -device_view options- Replace -[cuda|hip]_device with split options -device_enable_[cuda|hip] and -device_select_[cuda|hip]- Replace -[cuda|hip]_view with -device_view_[cuda|hip]- Add PetscDeviceInitType- Add PetscDeviceInitialize() and PetscDeviceInitialized()- Add PetscDeviceView()
MATHYPRE: register convertors from CUSPARSE
Merge branch 'jczhang/feature-add-comments-matproduct' into 'main'Mat/SF: add some comments to codeSee merge request petsc/petsc!4231
12345678