Commit Graph
318 Commits
Author SHA1 Message Date
Will Pazner c78863a437 Merge remote-tracking branch 'origin/master' into table-array
# Conflicts:
#	fem/tmop/tmop_pa_da3.cpp
#	fem/tmop/tmop_pa_tc2.cpp
#	fem/tmop/tmop_pa_tc3.cpp
#	general/array.hpp
#	linalg/densemat.hpp
2025-11-25 14:00:20 -08:00
Joseph Signorelli 0db3e561a3 style 2025-10-31 14:43:34 -05:00
Joseph SignorelliandAndrew Ho 229c9d9fbe Use new scan wrappers
Co-authored-by: Andrew Ho <ho37@llnl.gov>
2025-10-31 13:40:30 -05:00
Joseph Signorelli 1f6afa0f87 Use up-to-date scan 2025-09-25 09:34:41 -05:00
Will Pazner 240443abfb Vector::DeleteAt on device using InclusiveScan 2025-08-21 14:42:17 -07:00
Veselin Dobrev 3372b2d1a8 Proposed addtions and changes to PR #4028 (branch table-array)
* Add mfem::swap for the classes Memory, Array, Array2D, and Vector.
* These mfem::swap functions are for use by the standard library.
* Re-define mfem::Swap to use mfem::swap, or, if is not defined, std::swap
* Remove some calls to Memory::Reset after Memory::Delete since the latter
  calls the former
* Update/improve the definitions of the Vector move-constructor and move-
  assignment; in the copy-assignment, skip the virtual calls to
  v.UseDevice(bool) when they are not needed.
* In DenseMatrix::SetSize, update the size of the data Array to match
  height x width.
* Propagate the parameter use_dev in Table::{ReadI,ReadJ} to the respective
  Array::Read calls.
* In Table::Size_of_connections, return J.Size() instead of I[size].
* Some small Doxygen tweaks.
2025-08-12 14:51:58 -07:00
Veselin Dobrev fb200e4b98 In the 3D version of 'forall', fix (Raja)OmpWrap2D calls to be 3D.
In INSTALL, add version requirement: OpenMP >= 3.1.

Fix a warning in the Vector move constructor about use of uninitialized
values by default initializing the Vector vefore calling its move
assignment operator.
2025-08-06 00:36:29 -07:00
Veselin Dobrev 0a5730eac3 Merge pull request #4769 from mfem/dev/abs-diag-smoothers
Abs-Val-Jacobi-type of preconditions/smoothers for PA operators
2025-06-26 09:36:30 -07:00
camierjs fb9449c47d Adjust use_dev code path, make style & const 2025-06-13 08:31:55 -07:00
camierjs a3b12b6f97 Use device priorities for vector dot, min and max 2025-06-12 11:27:06 -07:00
Gabriel Pinochet-Soto 2fca844393 Implement L(p,q) elementwise, update CHANGELOG 2025-05-28 11:32:50 -07:00
Gabriel Pinochet-Soto fa61508248 Merge branch 'master' of github.com:mfem/mfem into dev/abs-diag-smoothers 2025-05-27 22:44:20 -07:00
Will Pazner 6329213cbb Use device in constant Vector::SetSubVector, add Vector::SetSubVectorHost 2025-05-20 15:08:39 -07:00
victor-decaria-nnlandWill Pazner 62992c0005 Update linalg/vector.cpp
Add forgotten `use_dev` argument.

Co-authored-by: Will Pazner <11493037+pazner@users.noreply.github.com>
2025-05-07 12:37:24 -04:00
victor-decaria-nnlandWill Pazner c004a77cab Update linalg/vector.cpp
Add forgotten `use_dev` argument.

Co-authored-by: Will Pazner <11493037+pazner@users.noreply.github.com>
2025-05-07 12:37:13 -04:00
Victor DeCaria ad99d96067 make some subvector functions work on device 2025-04-29 08:45:53 -06:00
Veselin Dobrev 8d705f4230 Various formatting edits and other small tweaks 2025-04-16 22:21:33 -07:00
Veselin Dobrev 214313291b Merge branch 'master' into dev/abs-diag-smoothers
Fixed conflicts:
  CHANGELOG
  fem/bilinearform_ext.cpp
  fem/bilinearform_ext.hpp
2025-04-14 13:56:38 -07:00
Gabriel Pinochet-Soto bf7c26ebf9 Vector::Abs 2025-03-28 22:13:22 -07:00
Andrew Ho bcbd52a318 need workspaces and reducers to share common code 2025-03-27 15:42:53 -07:00
Andrew Ho a0fd156f64 cleanup execution paths
cuda/hip/cpu/debug should take very similar execution paths now.

Added missing HostRead to Vector::operator*(const real_t*) and updated
documentation
2025-03-27 15:39:07 -07:00
Andrew Ho 67850da1f7 inline static internal device functions 2025-02-26 19:23:55 -08:00
Andrew Ho 051fc969ab change reduction API
reducer.join -> reducer.Join
reducer.init_val -> reducer.SetInitialValue

Changed the default reducers Join and SetInitialValue to static member
functions, but still allow calling these as member functions for LpReducer
2025-02-26 12:39:29 -08:00
Tzanio Kolev 1f3790ba2c Merge branch 'master' into reduction 2025-02-04 14:53:21 -08:00
Tzanio Kolev e4c2152419 Update Copyright to 2010-2025 2025-02-03 12:17:26 -08:00
Andrew Ho 0f1880a9da added documentation 2025-01-14 10:54:57 -08:00
Andrew Ho 242703e266 Implemented all vector norms to run on GPU
changed to void ptr for dynamic shared memory to reduce templates
2025-01-09 23:26:12 -08:00
Andrew Ho 7ced559b0d GPU accelerate L1 and L-infinity norms 2025-01-09 17:13:08 -08:00
Andrew Ho 06d1cd025f Cleanup CPU code paths for Vector reductions 2025-01-09 16:47:09 -08:00
Andrew Ho 3b5068ca79 missing header, formatting 2025-01-09 14:49:30 -08:00
Andrew Ho 6f9cbed618 fixed reduce accidentally always running the CPU backup 2025-01-08 20:26:45 -08:00
Andrew Ho aab40b23d2 implemented reduction framework
still need to add RAJA implementation for dynamic shared memory
2025-01-08 19:02:12 -08:00
Tzanio Kolev 96ac1d9444 Merge pull request #4500 from mfem/vector-move
Fix memory leak in Vector move assignment
2024-09-25 18:41:38 -07:00
Will Pazner 542a72402c Fix memory leak in Vector move assignment 2024-09-11 20:32:16 -07:00
Stowell, Mark L dd127b07b5 Adding PrintMathematica to dense linear algebra objects 2024-09-05 18:02:15 -07:00
Veselin Dobrev 7be646b8ce Fix the HIP build with single precision.
Fix warnings about RAND_MAX when using single precision.

Introduce an inline function `real_t rand_real()` that returns a
random number in the interval [0,1) using rand(). This function
handles better the case of single precision where the expression
`real_t(rand())/(real_t(RAND_MAX)+1)` can return 1.0f due to round-off
when rand() returns a number close to RAND_MAX.

Use `rand_real()` in a few places that before used code similar to
`real_t(rand())/(real_t(RAND_MAX)+1)`.
2024-03-24 10:43:15 -07:00
Dylan Copeland 046a874cfb Merge branch 'master' of github.com:mfem/mfem into float 2024-02-06 10:56:41 -08:00
Tzanio Kolev 87290fbf56 Update Copyright to 2010-2024 2024-01-27 13:06:49 -08:00
Tzanio Kolev d983b34924 Renamed ftype -> real_t 2023-12-13 12:51:43 -08:00
Dylan Copeland c80fdc6f74 Generalized CUDA for float case, so example device runs succeed with a pcuda build. 2023-11-04 19:55:18 -07:00
Dylan Copeland ee3a46af24 Added support for LAPACK in single-precision. Changed fmax -> std::max, etc. 2023-10-31 14:30:44 -07:00
Dylan Copeland f106c03dd1 Generalized floating point type. So far, ex1 works for a serial build without lapack. 2023-10-09 14:19:25 -07:00
Veselin Dobrev 464c44689a Fix HIP build issue from PR 3662 (it was not tested with HIP!) 2023-09-26 23:35:19 -07:00
Veselin Dobrev 67b1d10200 Merge pull request #3662 from mfem/vector-sum-gpu
Vector::Sum on device
2023-09-26 12:08:52 -07:00
Veselin Dobrev dc99d97956 Merge pull request #3596 from mfem/sundials-hip
Add HIP support to SUNDIALS interface [sundials-hip]
2023-07-18 10:28:30 -07:00
Tzanio Kolev b511127230 Merge branch 'master' into sundials-hip 2023-06-23 08:07:00 -07:00
Sebastian Grimberg b2ad17aeaa Merge branch 'master' into sjg/integs-reorg-dev 2023-06-15 17:54:57 -07:00
Tzanio Kolev 2bbd369771 Merge branch 'master' into tmopupdate-geomparam 2023-06-11 14:36:47 -07:00
Will PaznerandVeselin Dobrev 661f6a1268 Simplify expression in cuda and hip dot kernel
Co-authored-by: Veselin Dobrev <v-dobrev@users.noreply.github.com>
2023-05-23 11:51:10 -07:00
Will Pazner 26a242252d HIP and debug device versions of Vector::Sum 2023-05-12 12:34:16 -07:00