aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Carpet/src/Comm.cc
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2012-02-02 13:36:18 -0600
committerBarry Wardell <barry.wardell@gmail.com>2012-09-11 18:17:58 +0100
commit4e3b65463a16a0fc66724ab72c4dec9b3f31dbd4 (patch)
treee96dee0cd32584cff8beb01ced0ee9bee15f0781 /Carpet/Carpet/src/Comm.cc
parentead4d3203389858d2982ceaba4f235a7b51c7e30 (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.cc8
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());
+ }
}