Commit Graph
87 Commits
Author SHA1 Message Date
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
camierjs e9de1fcf7b Remove '>' in front of devices tests 2019-04-15 16:05:18 -07:00
Veselin Dobrev 2d39e09c12 Further small tweaks of the examples. 2019-04-11 15:52:59 -07:00
Veselin Dobrev 678759a2d6 Updates in the BilinearForm and related classes.
Small updates in ex1, ex1p, ex6, ex6p.
2019-04-10 21:34:47 -07:00
Veselin Dobrev 55f0a7ec66 Updates to the mfem::Device class. 2019-04-08 16:48:56 -07:00
dmed256 37a11563fe [Examples] Added additional okina device run examples 2019-04-02 23:00:53 -07:00
camierjs ef636179ac Occa all-in mode fix
Added order 4 for geometric kernels
2019-04-02 17:37:29 -07:00
Tzanio c2e3f8cd00 Adding Device::Print() method that print the configured device + programming
models in order of priority.
2019-03-25 14:50:52 -07:00
Tzanio 2aee6c0b2a Adding device sample runs in examples 2019-03-22 14:57:20 -07:00
Tzanio 614c78b65e Renamed the config class to Device, and simplified its use in the examples. 2019-03-22 14:15:27 -07:00
Tzanio bb7c142ce0 Renamed linalg/device.hpp to linalg/dtensor.hpp.
Some edits in the examples.
2019-03-22 12:15:14 -07:00
camierjs 927da250a5 Merge branch 'okina' into okina-bilininteg 2019-03-14 14:34:31 -07:00
camierjs baa1d5bfb8 Add examples mode and cuda cleanup 2019-03-05 12:31:47 -08:00
camierjs 64cf91cf21 - config rename convention
- ex1, ex6 switch back to host
- mm filtering
- dot device ptr call
2019-03-05 12:20:26 -08:00
Jean-Sylvain Camier a882a4438d Remove abstract methods in fem/bilininteg 2019-03-02 21:20:01 -08:00
artv3 ef8510cfc3 added OpenMP backend to Okina 2019-02-11 10:00:15 -08:00
Vargas, Arturo 777890ad3e review comments 2019-01-22 16:32:55 -08:00
Vargas, Arturo 78c0931be2 fixes to compile without raja 2019-01-22 15:11:50 -08:00
Vargas, Arturo 469a60ba21 first pass at RAJA support \n 2019-01-22 14:28:50 -08:00
Tzanio 143785de69 make style 2018-12-20 16:57:07 -08:00
camierjs fa4df4b8b3 MFEM_USE_MM, EnsureNodes and MM logic 2018-12-20 16:53:25 -08:00
Tzanio fb9f3ed514 Simplified parallel bilinear form 2018-12-20 16:26:37 -08:00
Jean-Sylvain Camier 660cb90789 Remove maps usage when unnecessary 2018-12-18 20:34:24 -08:00
Tzanio 96b62506d0 Merge branch 'okina' into okina-fem-dev
Conflicts:
	examples/ex1.cpp
	fem/bilinearform.hpp
2018-12-18 14:20:41 -08:00
Tzanio 74078d9018 Simplifications/redisign for handling PA, etc. in the BilinearForm class, while
maintaining full backward compatibility.
2018-12-18 14:07:10 -08:00
Jean-Sylvain Camier 4fe586f534 Use instead of Set for Cuda, Occa and PA 2018-12-15 21:02:16 -08:00
camierjs 7910fd2ee5 Resolving requested changes: renaming, NVCC logic, device setup & typo 2018-12-11 15:41:47 -08:00
camierjs 761da0f8a0 Remove dbg outputs 2018-12-05 12:46:58 -08:00
camierjs 133b2f2325 occa cpp/hpp files 2018-12-05 12:31:23 -08:00
camierjs 8a3e2735f6 occaDeviceSetup device, paths & kernels settings 2018-11-19 14:16:16 -08:00
camierjs b8672453a4 Examples ex1 and ex1p cleanup 2018-11-08 13:04:47 -08:00
camierjs 5ab75543f1 ex1p PA host mpirun 2018-11-01 16:09:57 -07:00
camierjs 8e05a1da6f Melding okina-wip to okina 2018-10-31 10:10:12 -07:00
camierjs a9dc32b659 Add DOFs/sec for assembly in ex1 2018-10-30 15:02:11 -07:00
camierjs fc58a80c09 Melding with okina-fem-dev 2018-10-30 14:23:19 -07:00
Veselin Dobrev 831490ee82 In ex1.cpp, add CG timings to output; add 'mix_iter' option. 2018-10-25 14:29:11 -07:00
camierjs 9ad1b24ced make style 2018-10-19 18:06:44 -07:00
camierjs 947418af5c Cleanup and 3D WIP 2018-10-19 15:31:54 -07:00
camierjs 35ffb9f53f NVVP markers cleanup 2018-10-19 11:04:03 -07:00
camierjs 11481f51ea NVVP markers and got rif of default fespace setup 2018-10-18 17:57:13 -07:00
camierjs a3d6196828 Added CUB back again for timings 2018-10-18 16:57:09 -07:00
camierjs d89d909dce Odd order for diffusion 2018-10-18 15:22:53 -07:00
camierjs 1bc82b9b52 Add 2D diffusion kernels 2018-10-18 11:45:26 -07:00
camierjs f977ed2376 ParPABilinearForm ifdef MFEM_USE_MPI 2018-10-17 16:17:43 -07:00
camierjs a0b68f5c0b Kernel'ed up to H1_TriangleElement 2018-10-16 11:50:18 -07:00
Tzanio cf6d421b57 Support sm_30 in sequential vector dot product (for tux374, will improve later).
Simplify ex1 a bit.
2018-10-12 17:51:01 -07:00
camierjs 87fa7b50f8 CUDA cub dir for dot and ex1 cleanup 2018-10-12 16:32:50 -07:00