CUSPARSE_CSRMV_ALG1 is a cusparse feature - so check CUSPARSE_VERSION [instead of CUDA_VERSION]
remove garbage from makefilesIncluding * unused FLAGS variables * All: lib that did not work * stray blank lines etcCommit-type: housekeeping/spend 1h
Merge branch 'jczhang/feature-vec-coo' into 'main'Support vector COO assemblySee merge request petsc/petsc!5171
Merge branch 'psanan/docs-sphinx-man-pages' into 'main'Integrate Man Pages into Sphinx DocsCloses #1132 and #1015See merge request petsc/petsc!4989
Docs: bulk add backticks to .seealso man page fields```pythonimport osimport reimport fileinputdef _process_word(word): comma = "," if word.endswith(",") else "" return "`%s`%s" % (wor
Docs: bulk add backticks to .seealso man page fields```pythonimport osimport reimport fileinputdef _process_word(word): comma = "," if word.endswith(",") else "" return "`%s`%s" % (word.rstrip(","), comma)def _process_stripped_line(line): return " ".join(map(_process_word, line.split()))start_pattern = re.compile(r"^( *\.seealso:? )(.*$)")def process_file(filename_full): with fileinput.FileInput(filename_full, inplace=True) as f: in_block = False for line in f: line_stripped = line.strip() # end ".seealso blocks" on a blank line or C-style comment close line_modified = None if not line_stripped: in_block = False elif line_stripped.endswith("*/"): in_block = False else: match = re.match(start_pattern, line) # not stripped line if match: indent = " " * len(match.group(1)) in_block = True line_modified = match.group( 1) + _process_stripped_line( match.group(2).strip()) elif in_block: line_modified = indent + _process_stripped_line( line_stripped) if line_modified: print(line_modified) # prints to the file else: print(line, end="") # prints to the fileBASE_DIRS = ["src", "include"]EXT = [".c", ".cxx", ".cpp", ".cu", ".h", ".hpp", ".hxx"]EXCLUDE_DIRS = ["tests", "tutorials", "ftn-auto", "ftn-custom", "benchmarks"]def main(): """ Process everything """ for base in BASE_DIRS: for root, dirs, files in os.walk(base): for filename in files: if os.path.splitext(filename)[1] in EXT: filename_full = os.path.join(root, filename) print("FILE ---", filename_full) process_file(filename_full) for exclude_dir in EXCLUDE_DIRS: if exclude_dir in dirs: dirs.remove(exclude_dir)if __name__ == "__main__": main()```
show more ...
Remove the rest of the PetscCheckFalse() from the mat directoryCommit-type: housekeeping/spend 45m
MatAIJCUSPARSE: make kernel functions static
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
Remove some PetscCheckFalse()
Do not wrap PetscTryMethod() PetscUseMethod() in PetscCallIt produces shadow declarations and also serves no purpose since these macros do the appropriate error checking alreadyThere may be addit
Do not wrap PetscTryMethod() PetscUseMethod() in PetscCallIt produces shadow declarations and also serves no purpose since these macros do the appropriate error checking alreadyThere may be additions needed for running with a static error checkerCommit-type: error-checking/spend 15mReported-by:Lisandro Dalcin <dalcinl@gmail.com>
Mat: add MatSeqAIJGetCSRAndMemType()
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()
PetscInitialize() and PetscFinalize() wrapped:- ierr = PetscInitialize();if (ierr) return ierr;+ CHKERRQ(PetscInitialize());- ierr = PetscFinalize();- return ierr;+ CHKERRQ(PetscFinalize());+
PetscInitialize() and PetscFinalize() wrapped:- ierr = PetscInitialize();if (ierr) return ierr;+ CHKERRQ(PetscInitialize());- ierr = PetscFinalize();- return ierr;+ CHKERRQ(PetscFinalize());+ return 0;
pluck ~1000 low hanging PetscCheckFalse() -> PetscCheck() fruit
chkerr and friends wrapped
MatSetPreallocationCOO: avoid MatHeaderMerge
Fix CUDA version that defines a certain symbol
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: Zero mat entries in kernels (only valid for sequential mat) to save bandwidth
Mat: support extended COO with mataijcusparse
Merge branch 'jacobf/2022-01-05/c99' into 'main'Feature: C99 and C++11See merge request petsc/petsc!4700
rename PetscAssert() -> PetscCheck() and PetscAssertDebug() -> PetscAssert()
deprecate PETSC_STATIC_INLINE
12345678910>>...17