Commit Graph
134 Commits
Author SHA1 Message Date
camierjs 16bf560d6b Cleanup 2019-10-15 16:45:51 -07:00
camierjs ef560fe45b Simultaneous memory backends 2019-10-11 18:34:29 -07:00
camierjs 0028998993 Cleanup 2019-10-10 16:01:28 -07:00
camierjs 99742db7b9 Umpire setup 2019-10-10 12:37:35 -07:00
camierjs dee3fbd839 Delay any device init at first alloc 2019-10-09 19:08:34 -07:00
camierjs 9d6c9fadc0 Debug traces 2019-10-01 16:26:59 -07:00
camierjs 136ef302f8 Device DEBUG vs DEVICE_MASK fix 2019-10-01 15:43:56 -07:00
camierjs 840158ddc7 Merge branch 'master' into okina-mmu 2019-09-23 10:39:06 -07:00
Veselin Dobrev 5dbf3c8b9f Change the default CPU backend for libCEED. 2019-09-13 15:18:23 -07:00
Yohann Dudouit c226405378 Remove ceed.hpp file. 2019-09-11 18:00:31 -07:00
Tzanio d84b46bc45 make style 2019-09-11 17:58:53 -07:00
Yohann Dudouit 45bbc247a4 Make /gpu/cuda/gen the default ceed-cuda backend. 2019-09-11 17:57:52 -07:00
Yohann Dudouit 40f4200bb5 Solve double free bug. 2019-09-11 17:57:52 -07:00
camierjs 14c9a845a2 ceed_option fix 2019-09-11 17:57:52 -07:00
camierjs 09a93c96fb Rebase with ex1 working 2019-09-11 17:57:51 -07:00
Yohann Dudouit 9a3d7a34ad Rebase compiles. 2019-09-11 17:57:51 -07:00
Yohann Dudouit 87869636cc gpu debugging 2019-09-11 17:57:51 -07:00
Tzanio 90c4f4fd78 make style 2019-09-11 17:57:51 -07:00
Yohann Dudouit bde675abff Add #ifdef MFEM_USE_CEED guards 2019-09-11 17:57:51 -07:00
Yohann Dudouit 065817c5e1 Remove GetCeed() function 2019-09-11 17:57:49 -07:00
Yohann Dudouit 05cf4c40b0 Add option to libCEED backend ':' is the option separator.
- example: ./ex1 -pa -d ceed-cpu:/cpu/self/avx/blocked
  - bug: ./ex1 -pa -d ceed-cuda:/gpu/cuda/reg computes 'nan'
  - however, ./ex1 -pa -d ceed-cpu:/gpu/cuda/reg works
  - bug: ./ex1 -pa -d ceed-cpu:/gpu/cuda/ref crashes in libCEED
  - however, ./ex1 -pa -d ceed-cuda:/gpu/cuda/ref works...
2019-09-11 17:54:53 -07:00
Yohann Dudouit b69a90eb16 Initial commit for okina gpu libceed.
Ceed and Cuda backend working together.

Use MFEM_SOURCE_DIR to find okl and cu files

Separate most of ceed integration in libceed.?pp
2019-09-11 17:54:36 -07:00
Tzanio 25ea5e9208 Merge branch 'master' into dmpi
Conflicts:
	general/device.cpp
2019-08-28 18:40:39 -07:00
camierjs 48985c6447 Remove mfem::out put 2019-08-21 17:45:00 -07:00
camierjs a9b99f3601 Device selection 2019-08-19 12:28:14 -07:00
camierjs 850c049386 std namespace fix 2019-07-25 09:35:36 -07:00
camierjs e754227754 Review updates 2019-07-25 09:31:53 -07:00
camierjs 762613713c rocm => hip 2019-07-24 17:55:53 -07:00
camierjs 5bf6cad024 GPU, CUDA, ROCM calls 2019-07-23 13:29:14 -07:00
camierjs df0492815c UMPIRE with CUDA 2019-07-18 15:55:01 -07:00
camierjs 2b9db87f53 ex1 @ GPU||Debug device 2019-07-18 11:18:11 -07:00
camierjs d133d6c115 WIP on ex1 with debug device 2019-07-09 17:09:38 +02:00
camierjs ec429a89fe Merge branch 'master' into okina-mmu 2019-07-08 11:51:22 +02:00
camierjs 3fce1070c6 ex1 @ ROCm converges 2019-05-29 12:32:27 -07:00
camierjs f1c9da0164 First ex1 run on Radeon Instinct MI25 2019-05-28 20:46:08 -07:00
camierjs 4f7447f053 First pass toward ROCm 2019-05-28 20:24:55 -07:00
Veselin Dobrev 75065b0ea1 Addressing some feedback from the PR. 2019-05-24 10:25:34 -07:00
Veselin Dobrev b69fd1e038 Some tweaks and additions to the MemoryManager class.
Modify the Device class to require the creation of an object in
order to use backends other then Backend::CPU. At destriction,
this object will call the Destroy() method of the MemoryManager to
deallocate any remaining registered device pointers.

In class Device, remove the method Disable() and make the method
Enable() private.

Use a global Array<double> as the buffer used by the cuda functions
for minimum and dot product.
2019-05-23 23:21:27 -07:00
Tzanio 3a860f124c Added a call to Device::Enable at the end of Device::Configure.
Updated examples to use only Device::Configure (no more calls to Enable/Disable)
2019-05-21 19:17:06 -07:00
Veselin Dobrev 40378a046b Introduce a new Memory class for handling host + device allocations
and transfers.

The Memory class is now used by some MFEM classes (like Array and
Vector) which can be used on the Device. Such classes now provide
methods to access the underlying Memory object, e.g. GetMemory.

Updated ex1/ex1p and ex6/ex6p to not need to enable/disable the
Device at specific points -- the Device is now enabled just at the
start. Also, the same examples can now run on Device (e.g. -d cuda)
without the partial assembly option (-pa) -- full assembly will
be still done on CPU but the sparse matrix action and vector
operations will be done using the Device.

Reverted changes in class DenseMatrix related to using the Device.
At this point, DenseMatrix operations are only used for small matrices
and using the Device in this case is not a good option.
2019-05-16 14:53:39 -07:00
Tzanio e79e761939 make style 2019-05-01 15:42:02 -07:00
camierjs 2e1af164d2 Debug device exclusive test 2019-05-01 14:21:38 -07:00
camierjs fbafd0b59d Cleanup & style 2019-04-30 18:42:12 -07:00
camierjs 9d1b450844 Umpire + MemorySpace features: STD, CUDA, UNIFIED, ALIGNED & PROTECTED 2019-04-29 15:37:40 -07:00
camierjs 2991665849 Move all OCCA calls in occa files 2019-04-25 09:54:47 -07:00
camierjs 88f8d39a0a MFEM_CUDA_CHECK fix 2019-04-24 14:27:26 -07:00
camierjs 8fd7e76b1a Merge branch 'master' into okina-mmu 2019-04-24 14:16:52 -07:00
camierjs b02e77063f Add CUDA_UVM backend 2019-04-24 13:08:21 -07:00
camierjs 2343ab9c71 Memory spaces modes: DEFAULT/NONE, DEFAULT/CUDA, ALIGNED/CUDA, PROTECTED/CUDA, PROTECTED/DEBUG 2019-04-23 18:35:44 -07:00
Veselin Dobrev 10b3988449 Reworked the macro MFEM_CUDA_CHECK:
* It always performs the error check, no just in debug mode.
* All 'cuda*' runtime calls are now wrapped with this macro.
2019-04-22 15:17:04 -07:00