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
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
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
Tzanio
e0c45fb9d4
Reserve okina name for future kernel interface
2019-04-08 23:39:10 -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
Will Pazner
4292eb80bc
Replace new and delete with malloc and free in mm
...
This matches the names of the functions in mm:: and also more closely
matches their use in the rest of mfem.
Also removed the template parameter for mm::free since it is not needed.
It is possible in the future to add equivalents of new and delete to the
mm class (with different names since those are keywords) in case it is
desirable to call the constructor and destructor.
2019-04-03 16:14:13 -07:00
Tzanio
66e769d6a5
- Remove asserts
...
- Introduce MFEM_LINK_FLAGS to handle the fact that nvcc compiler cannot link with -x=cu
- Fixed building of 'make cuda; make all; make test'
2019-03-25 18:20:43 -07:00
camierjs
a03364e473
MFEM_GPU_CANNOT_PASS cleanup and simplify cuda header
2019-03-25 12:55:19 -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
e4d79d0020
Delete fem/kernels subdir
2019-03-06 18:40:18 -08:00
camierjs
d7fad1b3ca
Deleted linalg/kernels/densemat.?pp
2019-03-06 14:24:46 -08:00
camierjs
c008e101a9
Rewind and cleanup
2019-02-08 16:24:04 -08:00
camierjs
5db5c37b07
All tests passed.
2019-02-08 15:49:54 -08:00
camierjs
9b3fc4d585
new/delete through mm_*, to work with LD_PRELOAD and stack
2019-02-07 19:59:33 -08:00
camierjs
d1c153f8cc
mm_(malloc|free)
2019-02-07 17:25:28 -08:00
camierjs
570eda5cf6
Bring back the MFEM_GPU_CANNOT_PASS in linalg
2019-02-01 15:15:40 -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
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
camierjs
0a58311b39
Cleanup toward getting rid of Push/Pull
2018-12-14 15:17:03 -08:00
camierjs
450905d58a
Cleanup and mm rewrite
2018-12-12 17:30:13 -08:00
camierjs
fdd66894e5
[cuda] Up to vecToQuad2D
2018-12-03 17:21:47 -08:00
camierjs
22e576f128
Up to KMassIntegrator::MultAdd
2018-11-30 17:37:46 -08:00
camierjs
431b0e6bae
Add CUDA stub to cleanup the code
2018-11-07 17:00:56 -08:00
camierjs
6439103d6a
Headers for MPI and ex1p
2018-10-31 10:51:33 -07:00
camierjs
8e05a1da6f
Melding okina-wip to okina
2018-10-31 10:10:12 -07:00
camierjs
9ad1b24ced
make style
2018-10-19 18:06:44 -07:00
camierjs
4c4e1707aa
ex1p, one process
2018-10-16 17:40:21 -07:00
Tzanio
b17ac8f4ad
make style
2018-10-12 17:52:47 -07:00
camierjs
944ef49eeb
Melding with master
2018-10-12 15:58:30 -07:00
camierjs
840480b205
Cleanup with master
2018-10-11 10:34:24 -07:00
camierjs
ba073e9521
Add LSolve USolve kernels for master to run
2018-10-11 09:56:51 -07:00
camierjs
e71d5f0013
Cleanup & Run
2018-10-11 09:19:03 -07:00
Jean-Sylvain Camier
7281dbf0fe
kernels subdirs & cleanup
2018-10-10 21:00:56 -07:00
camierjs
3b615c7188
Working on mesh->SetCurvature from GPU
2018-10-10 17:44:25 -07:00
camierjs
2f2193e9bf
Cleanup and switched kGeomFill's forall
2018-10-10 11:37:57 -07:00
camierjs
40cacec966
ex1 with Quad UniformRefinement CPU + GPU
2018-10-10 10:59:12 -07:00
camierjs
8c42afc313
ex1 fa ok
2018-10-09 11:22:13 -07:00
camierjs
e79d6eadcf
Init geom without prefixed SetNodalFESpace
2018-10-08 20:07:18 -07:00
camierjs
dd2fdb529e
Diffusion, up to Vector::operator-=
2018-10-05 17:53:39 -07:00
camierjs
5a828d3207
Starting to introduce diffusion kernels, maps & geom
2018-10-04 14:04:04 -07:00
camierjs
3eaf4beb60
Cleanup and moved memcpy to mm
2018-10-03 16:39:27 -07:00
camierjs
3b0496d4a5
Ex2 OK, doing SetNodalFESpace before switching to GPU
2018-10-02 18:40:32 -07:00
camierjs
98730a3f9b
Cleanup
2018-10-01 17:35:32 -07:00