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 Signorelli and Andrew 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-nnl and Will 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-nnl and Will 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 Pazner and Veselin 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