diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2012-02-02 13:36:18 -0600 |
---|---|---|
committer | Barry Wardell <barry.wardell@gmail.com> | 2012-09-11 18:17:58 +0100 |
commit | 4e3b65463a16a0fc66724ab72c4dec9b3f31dbd4 (patch) | |
tree | e96dee0cd32584cff8beb01ced0ee9bee15f0781 /Carpet/Carpet/src/Comm.cc | |
parent | ead4d3203389858d2982ceaba4f235a7b51c7e30 (diff) |
Support accelerator data transfer
This patch provides a function interface for accelerator (GPU) devices
to be called at certain points when Carpet traverses the schedule
tree. This can be used to copy data between the host (CPU) and the
device (GPU) as it is needed.
---
Carpet/Carpet/interface.ccl | 28 ++++++++++++++++++++++++++++
Carpet/Carpet/param.ccl | 6 ++++++
Carpet/Carpet/src/CallFunction.cc | 12 ++++++++++++
Carpet/Carpet/src/Comm.cc | 8 ++++++++
Carpet/Carpet/src/Cycle.cc | 4 ++++
Carpet/Carpet/src/Evolve.cc | 2 ++
Carpet/Carpet/src/Initialise.cc | 2 ++
Carpet/Carpet/src/Requirements.cc | 34 ++++++++++++++++++++++------------
Carpet/Carpet/src/variables.cc | 3 +++
Carpet/Carpet/src/variables.hh | 3 +++
10 files changed, 90 insertions(+), 12 deletions(-)
Diffstat (limited to 'Carpet/Carpet/src/Comm.cc')
-rw-r--r-- | Carpet/Carpet/src/Comm.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Carpet/Carpet/src/Comm.cc b/Carpet/Carpet/src/Comm.cc index 9fa2893f3..ab6106c2b 100644 --- a/Carpet/Carpet/src/Comm.cc +++ b/Carpet/Carpet/src/Comm.cc @@ -214,6 +214,10 @@ namespace Carpet { Checkpoint ("SyncGroups"); assert (groups.size() > 0); + + if (CCTK_IsFunctionAliased("Accelerator_PreSync")) { + Accelerator_PreSync(cctkGH, &groups.front(), groups.size()); + } for (comm_state state; not state.done(); state.step()) { for (int group = 0; group < (int)groups.size(); ++group) { @@ -232,6 +236,10 @@ namespace Carpet { } } } + + if (CCTK_IsFunctionAliased("Accelerator_PostSync")) { + Accelerator_PostSync(cctkGH, &groups.front(), groups.size()); + } } |