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