Commit Graph
214 Commits
Author SHA1 Message Date
Andrew Ho dee699eede switch to use the cuda runtime API for compatibility with MFEM_GPU_CHECK 2025-12-22 06:41:53 -08:00
Andrew HoandWill Pazner fc4f4fb5ed Update general/device.cpp
Co-authored-by: Will Pazner <11493037+pazner@users.noreply.github.com>
2025-10-27 14:39:39 -07:00
Andrew Ho b74f76bdc4 Added a way to get the GPU uuid 2025-10-27 13:32:49 -07:00
Andrew Ho 3276cb955f Merge branch 'master' into dev-derefine 2025-07-01 15:33:44 -07:00
Veselin Dobrev e20bb381ca In Device::Print, show the GPU-aware MPI configuration only when MPI is
being used.
2025-06-26 08:26:20 -07:00
Tzanio Kolev a99efcdb63 Merge branch 'master' into dev-derefine 2025-06-26 08:25:48 -07:00
Veselin Dobrev 4816fa0849 Added the option to enable GPU-aware MPI in MFEM using the environment
variable 'MFEM_GPU_AWARE_MPI' set to any value. Setting this environment
variable is an alternative to calling 'Device::SetGPUAwareMPI(true)'.

In Device::Print, show the GPU-aware MPI usage status when using a device
backend.

Update some unit tests to better handle failures.
2025-06-25 11:47:31 -07:00
John Camier 06c4da64af Merge branch 'master' into hip-unit-tests 2025-06-18 10:22:55 -07:00
Andrew Ho a8bbdf4fd4 Merge branch 'master' into hip-unit-tests 2025-06-02 11:33:00 -07:00
Hugh Carson fdec992469 Merge branch 'master' into hughcars/ho-make-simplicial-dev 2025-05-27 17:40:43 -04:00
Andrew Ho 091c6272fc Merge branch 'master' into dev-derefine 2025-05-27 11:57:28 -07:00
Hugh Carson e494dc8255 Fix warning about missing (void*) 2025-05-20 12:11:31 -04:00
Veselin Dobrev 8c6c49bd1a Fix preprocessor check 2025-05-18 20:44:44 -07:00
Veselin Dobrev 4987074377 Formatting and other small tweaks 2025-05-18 19:46:13 -07:00
Andrew Ho ef9137bd1f const correctness fix 2025-04-20 22:59:08 -07:00
Hugh Carson aa06e17686 Merge branch 'master' into sjg/mfem-device-fixes 2025-04-15 14:01:21 -04:00
Andrew Ho 8fbfdb19fe added general GPU and CUDA/HIP-specific unit tests
added gpu, raja-gpu, etc. for generic GPU device configuration
2025-03-24 13:23:43 -07:00
Tzanio Kolev e4c2152419 Update Copyright to 2010-2025 2025-02-03 12:17:26 -08:00
Hugh Carson 6e4b512b41 Merge remote-tracking branch 'origin/master' into sjg/mfem-device-fixes 2025-01-21 14:57:17 -05:00
Andrew Ho db323179f1 Merge branch 'master' into device_info 2025-01-09 14:41:57 -08:00
Andrew Ho 4983d81eb9 removed cuda < 10 since MFEM doesn't support this anyways 2025-01-09 14:40:08 -08:00
Andrew Ho 13b9e14526 Moved implementations to cpp file
removed host/device since this could lead to some ODR violations
2025-01-09 14:28:15 -08:00
Andrew Ho 6e1101f058 added helper functions for querying various device properties 2025-01-06 18:33:23 -08:00
Will Pazner 19a1750527 Rename getenv wrapper to GetEnv
Also use getenv wrapper in KernelReporter
2024-12-26 16:55:45 -08:00
Hugh Carson dc162a194d Merge branch 'master' into sjg/mfem-device-fixes 2024-12-13 15:45:59 -05:00
Andrew Ho 51a75893f7 Changes from Veselin 2024-12-09 08:21:57 -08:00
Andrew Ho b3fff9267a Moved Hypre::Finalize earlier in Device::~Device, only finalize HYPRE if it's been initialized.
Moving Hypre::Finalize earlier ensures that early return paths in
Device::~Device don't prevent Hypre::Finalize from executing.
2024-09-13 17:55:09 -07:00
Andrew Ho c253f00ddc Added ifdef guard for MFEM_USE_MPI
Hypre singleton doesn't exist otherwise
2024-09-13 12:16:54 -07:00
Andrew Ho cd5a72fabe Ensure that HYPRE is finalized inside the main function.
This fixes a bug where the Hypre singleton is currently cleaned up
after the main function returns, which causes errors with cleaning up
internal Cuda objects in HYPRE.
2024-09-13 11:52:06 -07:00
Sebastian Grimberg 2be6e5a074 Merge branch 'master' into sjg/mfem-device-fixes 2024-05-06 12:16:09 -07:00
Tom Stitt 9f86ac2feb Adds Hypre::InitDevice and calls it from Device::Configure. By default configure HYPRE with the same policy as MFEM unless configure_hypre_runtime_policy_from_mfem is false 2024-04-12 16:26:29 -07:00
Sebastian Grimberg cad2293df6 Merge branch 'master' into sjg/mfem-device-fixes 2024-03-07 15:24:09 -08:00
Sebastian Grimberg c416ac9fff Clean up mfem::Device to add a few docstrings and make CUDA/HIP device setup consistent 2024-01-29 10:47:13 -08:00
Sebastian Grimberg 48e6b88370 Remove unneeded mfem::Device::mode member 2024-01-29 10:46:41 -08:00
Sebastian Grimberg a00d2610e3 Fix bug in mfem::Device when multiple device options are specified, for example cuda:uvm in addition to a libCEED backend option 2024-01-29 10:46:41 -08:00
Sebastian Grimberg bc9e624ce8 Add mfem::Device::GetDeviceCount method to query number of available CUDA or HIP devices before initializing an mfem::Device 2024-01-29 10:46:41 -08:00
Tzanio Kolev 87290fbf56 Update Copyright to 2010-2024 2024-01-27 13:06:49 -08:00
Tzanio Kolev 96e00dc815 Updated COPYRIGHT to 2010-2023 2023-03-11 16:58:18 -08:00
Yohann Dudouit 5adc33c8a5 Reorganize libCEED integration. 2022-03-31 17:18:06 -07:00
Tzanio 6d2530775b Extended copyright to 2022 2022-02-25 10:24:50 -08:00
camierjs cfa82dccc0 In device.?pp, use device_id for shadowed variable and switch out to os 2022-01-11 11:09:12 -08:00
Stowell, Mark L fa25a70da6 Fixing shadow variables in general classes 2021-12-23 16:21:31 -08:00
nbeams e5e7974a34 Change setting of device num for HIP 2021-05-18 15:59:46 -04:00
Tzanio Kolev 11b3e0b4b5 Merge pull request #1644 from mfem/feature/tomstitt/temp-mem-type
Temporary Device Memory Type
2021-03-24 21:46:03 -07:00
Veselin Dobrev ba47a9eb4e Merge branch 'master' into feature/tomstitt/temp-mem-type
Resolved conflicts:
   linalg/vector.hpp
2021-03-19 13:29:59 -07:00
Veselin Dobrev 4e8b78cd45 Fix the method Device::UpdateMemoryTypeAndClass() in the
case when Umpire support is enabled.

Fix invalid host access access in
   tests/unit/general/test_umpire_mem.cpp

Update the CMake file in tests/unit to use all unit tests.
2021-03-18 22:49:31 -07:00
Veselin Dobrev a59f06e9e3 Replaced the methods Device::SetHostMemoryType() and
Device::SetDeviceMemoryType() with the method
Device::SetMemoryTypes() which can be called only before
Device configuration.

Added methods MemoryManager::GetDualMemoryType() and
MemoryManager::SetDualMemoryType() where the latter can be
called only before MemoryManager::Configure().

Updated the Memory/MemoryManager implementation to use the
dual memory types instead of the default memory types.

Various other tweaks and fixes in the Memory/MemoryManager
implementation.
2021-03-18 18:48:22 -07:00
Tom Stitt 22ec73e780 Revert device.cpp changes and remove automatic use of Umpire if
MFEM_USE_UMPIRE
Fix build; building with Umpire & CUDA now
2021-02-25 14:56:05 -08:00
Andrew T. Barker baacf4b38d Merge remote-tracking branch 'origin/master' into ceed-merge
Initial attempt at merge; a lot is going to be wrong, exciting
2021-02-19 11:38:56 -08:00
Andrew T. Barker e9ad0bd9c6 Begin overhauling Ceed error checking. 2021-02-12 16:25:36 -08:00