Skip to content

Conversation

@rfalgout
Copy link
Contributor

@rfalgout rfalgout commented Jul 25, 2025

This (draft) PR helped us track differences between the hypre-3.0 branch and master, and provided a mechanism for discussion as we continued to develop hypre-3.0. It is now the final PR for the new release.

See issue #1370

Some general guidance since this is such a big update with a target release deadline:

  • Use separate PRs to make changes to the hypre-3.0 branch
  • Make fast review turnarounds a priority (suggest alternate reviewers if you don't have time)
  • Communicate - let people know what you are working on and consider potential merge conflicts
  • Not all items on our big to-do list are required for this release - prioritize

See https://hypre.readthedocs.io/en/hypre-3.0/ for readthedocs user manual

See https://github.com/hypre-space/hypre/blob/hypre-3.0/src/docs/wiki-dev/Mixed-Precision.md for developer wiki

oseikuffuor1 and others added 30 commits February 18, 2025 18:37
…during ghost zone resizing (#1195)

This PR does the following:

* Allows for different base grids and non-unitary strides in vector routines
* Implements logic in the vector class and matvec to help minimize copies during ghost zone resizing
* Modifies PFMG to use the new matvec optimization features
implemented by Ulrike Y, and some minor code cleanup.
* PFMG working with device exec policy and UVM
* Fix CMake build
* Add missing sync stream calls
* PFMG working with device exec policy and UVM
* Remove UVM dependency from PFMG's interpolation code
* Update struct's communication package with device support (on-going)
* Create dedicate file for PFMG coarsening and remove UVM dependency
* Rename hypre_PFMGZeroDiagonal to hypre_StructMatrixZeroDiagonal
* Rename hypre_InitializeCommunication to hypre_StructCommunicationInitialize
* Rename hypre_FinalizeCommunication to hypre_StructCommunicationFinalize
* Add hypre_StructMatrixSetMemoryLocation routine
* Fix CMake build
* Add missing sync stream calls
* Fix tux regressions
* WIP: GPU porting for struct for sstruct
* Addressing review
* Fix maybe-uninitialized warnings
* Remove redundant comments
…tine and adds optimizations to PFMG (#1249)

* Adjusts communication for symmetric storage
* Automatically determines if the product matrix in matmult is symmetric
* Computes only the stored symmetric coefficients in matmult (the "lower triangle" so to speak)
* Modifies the PFMG setup to reduce memory copies in the matmult calls
* Cleans up the kernel optimization code in matmult. Using a mask (not a bit mask) simplifies things.
* Makes a better decision about when a mask is needed in matmult.
* Computes a better data space for the matrices involved in the matrix product.
* Tries to avoid unnecessary matrix resizes in matmult. Now, PFMG often does not require a resize-with-copy.
* Adds loop unrolling optimizations to matvec for rectangular matrices (previously only square matrices were unrolled).
…1287)

* Fixes the coarsening of part boundary boxes which influences SSAMG convergence
* Renamed one CoarsenNeg routine, deleted another, and added some comments
@prj-
Copy link
Contributor

prj- commented Sep 10, 2025

You can push in your fork and I'll fixup the branch with your commit.

@victorapm
Copy link
Contributor

victorapm commented Sep 10, 2025

victorapm and others added 6 commits September 10, 2025 14:59
* Added mixed precision conversion routines.



---------

Co-authored-by: ulrikeyang <[email protected]>
* Add owns_data to CSRMatrixMigrate
* Update hypre_CudaCompileFlagCheck to support multiple GPUs
* Add logic for taking ownership of CSRMatrix columns and data during CSRMatrixMigrate call
* A couple of fixes for hypre_IJMatrixGetValuesParCSRDevice
* Fix SYCL path of IJMatrixGetValues
* Update ij_assembly driver with Get test (128)
* Fix host mem leak

* Rerun config/update.sh

* change a hypre_Free to hypre_TFree

* Change ReAlloc to TReAlloc

* Comment out mgr tests for lassen regressions for now. Update configure lines for machine-lassen.sh. Some fixes for unstructured interpolation for ssamg on the GPU.

* Fix CPU build

* Fix memory leak, enable get and zero out for GPU build for sstruct matrix compression.

* Ensure col map offd is on device for GetValuesParCSRDevice

* Add cxxstandard=11 to machine-lassen.sh configure lines

* Add umpire warnings to configure filters for regression testing

* Split off mgr tests into a separate set from solvers. Adjust saved files.

* Update saved files

* Add license

* Change permissions for mgr.sh

---------

Co-authored-by: mitchell82 <[email protected]>
Co-authored-by: Rui Peng Li <[email protected]>
@rfalgout rfalgout marked this pull request as ready for review September 19, 2025 17:43
victorapm and others added 17 commits September 19, 2025 22:22
* Remove VLA instances
* Track -Werror=vla in strict checking tests
* Fix unused variable warning
* Fix fortran headers
* Fix lobpcg headers
* Replace seq_mv.h with _hypre_seq_mv.h
* Fix issues with struct matrix reading routine
Fix machine-tioga/basic-hip-cpu and machine-lassen/basic-cuda-cpu tests
Fix mixedint build issues
* Fix MGR issues on device runs
* Update lassen baselines
* Fix compilation warning with gcc 13
* Update baselines in TEST_bench/benchmark_struct.perf.saved.lassen
* Update baselines in TEST_sstruct lassen_cpu
* Update baselines in TEST_bench perf tioga
* Fix CMake's generated soversion
* Update comments about ABI
@rfalgout rfalgout merged commit da9f93f into master Sep 26, 2025
@rfalgout rfalgout deleted the hypre-3.0 branch September 26, 2025 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants