Commit Graph
299 Commits
Author SHA1 Message Date
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
Will Pazner 87981b9e37 CUDA implementation of Vector::Sum 2023-05-12 12:34:16 -07:00
Sebastian Grimberg 45577c6fd4 Merge branch 'master' into sjg/integs-reorg-dev 2023-05-03 16:43:21 -07:00
Veselin Dobrev f3bd409b18 Merge pull request #3510 from mfem/qfunction-use-device
Set `UseDevice(true)` by default in `QuadratureFunction`
2023-04-25 17:43:19 -07:00
Sebastian Grimberg 2392f3e8e1 Merge branch 'master' into sjg/integs-reorg-dev 2023-04-20 09:36:26 -07:00
Vladimir Z Tomov 747783f1cb Merge branch 'master' into tmopupdate-geomparam 2023-04-18 15:33:06 -07:00
Ketan Mittal a9e9f3334d address reviewer comments 2023-04-13 11:36:21 -07:00
Sebastian Grimberg cb962cf1db Minor refactor for common kernel 2023-04-10 16:35:03 -07:00
Tzanio Kolev 9d79f691d6 Merge branch 'master' into tmopupdate-geomparam 2023-04-09 13:14:44 -07:00
Veselin Dobrev c6a5ffd3dc Small tweaks in the memory manager.
In INSTALL, use more consistent formatting for the version
requirements for SUNDIALS.

Remove unused SUNDIALS includes from vector.?pp.
2023-04-08 19:15:43 -07:00
camierjs dce372389b Merge master in forall 2023-03-24 07:52:56 -07:00
John Camier 650f7281d9 Merge branch 'master' into qfunction-use-device 2023-03-14 09:06:47 -07:00
camierjs 6851f32854 Merge master in forall 2023-03-14 08:46:19 -07:00
Tzanio Kolev 96e00dc815 Updated COPYRIGHT to 2010-2023 2023-03-11 16:58:18 -08:00
Will Pazner 7dfe18cfd5 Call HostWrite in Vector::Load 2023-03-02 09:22:16 +01:00
Ben Chung Yee ff993ffb1b Loosen assert in SetSubVector as well 2023-02-28 18:05:58 -08:00
Ben Chung Yee 69d96008ae Relax the assert requirement in AddElementVector
The implementation is fine if we just want the dofs.Size() entries of
elemvect, so we only need <= rather than ==

This is currently causing an issue in
ParLinearForm::AssembleSharedFaces, where the integrator returns an
elemvect of size 2x dofs, but we are only appending the local portion of
that vector.
2023-02-28 17:52:26 -08:00
Ketan Mittal 2d331e57a1 resolve merge conflict 2023-02-21 09:56:19 -08:00
camierjs 84517f4357 Cleanup 2023-02-09 16:33:45 -08:00
camierjs 018d5cfb8b Debugging lambdas in mfem::forall 2023-02-08 15:03:34 -08:00