Commit Graph
318 Commits
Author SHA1 Message Date
Veselin Dobrev f8d1f5d557 Make sure GridFunction::MakeRef marks itself and its base vector
for execution on the mfem::Device.

Refine the logic in Vector::operator=.

Update the comment for Memory::SyncWith.
2019-05-18 00:40:43 -07:00
Veselin Dobrev 31f2ce99cc Some small tweaks and additions related to the classes Memory and
MemoryManager.
2019-05-17 16:26:20 -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
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
camierjs 3e34d4b99a Cleanup, style and remove all CUdevice, CUcontext & CUstream 2019-04-19 11:00:23 -07:00
camierjs d3a1685cb6 Remove CU driver calls 2019-04-17 17:36:43 -07:00
Tzanio a28a779df1 Merge branch 'okina' into okina-mm-object
Conflicts:
        fem/bilininteg_ext.cpp
        general/mem_manager.cpp
	general/mem_manager.hpp
	general/occa.cpp
2019-04-09 19:19:45 -07:00
camierjs 2020335b50 Renaming + free functions in mfem namespace 2019-04-09 18:17:00 -07:00
Tzanio a49cd5df97 Merge branch 'okina-device-tweaks' into okina-rename
Conflicts:
        fem/bilinearform_ext.cpp
        fem/bilininteg_ext.cpp
        general/cuda.cpp
2019-04-09 18:08:44 -07:00
Veselin Dobrev ce2c543339 Update calls to Device::IsEnabled() and Device::IsDisabled() with
appropriate calls to Device::Allows().
2019-04-09 17:51:19 -07:00
camierjs 94c5397c7d Remove the memory manager singleton 2019-04-09 17:12:20 -07:00
Tzanio 8d43da7938 Loop styling 2019-04-09 12:17:38 -07:00
camierjs 471eba4d2d Move Device::Tracking to mm::Enable/Disable
Swap lasts +=1 for ++
2019-04-09 11:42:12 -07:00
Veselin Dobrev 600f5ec4bd Some additional simplifications and tweaks in headers.
Add MFEM_CUDA_CHECK_{DRV,RT} macros.
2019-04-09 00:37:58 -07:00
Tzanio e0c45fb9d4 Reserve okina name for future kernel interface 2019-04-08 23:39:10 -07:00
Veselin Dobrev 55f0a7ec66 Updates to the mfem::Device class. 2019-04-08 16:48:56 -07:00
Tzanio eaa4a1e98d Simplified MFEM_FORALL. Fixed doxyge errors. 2019-04-08 11:55:00 -07:00
Johann Dahm 2d8a2d250b Fix "legacy" OpenMP support 2019-04-05 17:14:36 -07:00
Johann Dahm e357792bf0 Merge branch 'okina' into openmp-warning-dev 2019-04-05 16:18:14 -06:00
Johann Dahm a2614ad20f MFEM_USE_OPENMP -> MFEM_USE_LEGACY_OPENMP 2019-04-04 20:26:38 -07:00
Johann Dahm 8409f6e819 Revert "Renamed the old OpenMP support option to MFEM_LEGACY_USE_OPENP, so"
This reverts commit 575f351419.
2019-04-04 20:25:45 -07:00
Tzanio 575f351419 Renamed the old OpenMP support option to MFEM_LEGACY_USE_OPENP, so
MFEM_LEGACY_OPENMP can be used for OpenMP support in the Okina kernels.
2019-04-04 19:50:46 -07:00
Will Pazner a5ecb742a0 Revert to using new and delete
Also rename mm::malloc to mm::New and mm::free to mm::Delete.
2019-04-04 13:44:10 -07:00
camierjs 8a4ae9a556 Rework include hierarchy not to present cuda/occa internal headers
Separate dvector3 from dtensor because it is used in coefficient.hpp
2019-04-04 11:45:46 -07:00
dmed256 2f45b3978c Feedback updates 2019-04-02 13:59:10 -07:00
Tzanio 214ec1d0fe Edits, style, removed DumpMode() 2019-03-25 14:53:30 -07:00
camierjs a03364e473 MFEM_GPU_CANNOT_PASS cleanup and simplify cuda header 2019-03-25 12:55:19 -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
Tzanio b589caf151 Replaced __NVCC__ -> MFEM_USE_CUDA and __OCCA__ -> MFEM_USE_OCCA 2019-03-21 17:23:27 -07:00
camierjs 4a61377ddc Cleanup 2019-03-20 10:18:50 -07:00
camierjs 27c42047ed make style 2019-03-11 18:51:30 -07:00
camierjs 5ec82bdfd2 Deleted linalg/kernels/vector.?pp 2019-03-06 18:14:33 -08:00
camierjs 96b5389c07 Make style 2019-03-06 11:58:57 -08:00
camierjs b05edb2737 Cleanup: Array, Vector 2019-03-06 11:58:36 -08:00
camierjs 646df4fa33 Vector neg kernel and use pointers for MapDof 2019-03-04 19:01:36 -08:00
camierjs 8751ac6944 Remove GET_PTR* macros 2019-02-20 12:37:32 -08:00
camierjs af29bcdfba Cleanup 2019-02-08 16:43:40 -08:00
camierjs 5db5c37b07 All tests passed. 2019-02-08 15:49:54 -08:00
camierjs d1c153f8cc mm_(malloc|free) 2019-02-07 17:25:28 -08:00
camierjs 70b149dac1 WIP unit tests through the MM 2019-02-06 21:18:20 -08:00
camierjs 569e4a5e03 Cleanup & PR melding 2019-01-31 12:32:54 -08:00
camierjs d880761e75 ex6 @ GPU 2019-01-30 15:32:13 -08:00
camierjs dd2b906a2e Merge branch 'okina' into okina-laghos 2019-01-18 15:46:23 -08:00
camierjs dc91041e4a linalg dir to kernels namespace 2019-01-18 12:20:09 -08:00
Johann Dahm 79d2be046f Add namespace to vector kernels 2019-01-12 08:31:51 -08:00
camierjs 4f557c0b1b Melding toward Okina 2019-01-03 20:20:49 -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
camierjs 148929e807 mm, occa, cuda and device 2018-12-19 16:16:33 -08:00