aboutsummaryrefslogtreecommitdiff
path: root/Tools/CodeGen
diff options
context:
space:
mode:
authorIan Hinder <ian.hinder@aei.mpg.de>2012-01-26 22:38:44 -0600
committerIan Hinder <ian.hinder@aei.mpg.de>2012-01-26 22:38:44 -0600
commitdc65d718fd51629e8542d0daf35d7f946b351784 (patch)
treef25dc7618701cecd9a154087cb2ab4fc64764b60 /Tools/CodeGen
parentd025eb5826ea01d3ceb13793955cc8a16475583a (diff)
Schedule CaKernel_CopyFromDev
Otherwise the data never gets copied back to the CPU from the device
Diffstat (limited to 'Tools/CodeGen')
-rw-r--r--Tools/CodeGen/CaKernel.m12
-rw-r--r--Tools/CodeGen/Schedule.m3
2 files changed, 15 insertions, 0 deletions
diff --git a/Tools/CodeGen/CaKernel.m b/Tools/CodeGen/CaKernel.m
index 598da1c..04ce57a 100644
--- a/Tools/CodeGen/CaKernel.m
+++ b/Tools/CodeGen/CaKernel.m
@@ -24,6 +24,7 @@ BeginPackage["CaKernel`", {"Errors`", "Helpers`", "Kranc`", "CodeGenCactus`", "M
CaKernelCCL;
CaKernelCode;
CaKernelEpilogue;
+CaKernelSchedule;
Begin["`Private`"];
@@ -64,6 +65,17 @@ DefFn[CaKernelCCL[calcs_List] :=
{},
Map[kernelCCLBlock, calcs]]];
+DefFn[CaKernelSchedule[] :=
+ Module[
+ {},
+ {{
+ Name -> "CaKernel_CopyFromDev",
+ SchedulePoint -> "at ANALYSIS",
+ Language -> "C",
+ Comment -> "Copy variables from devices"
+ }}]];
+
+
DefFn[codeBlock[macro_String, contents:CodeGenBlock] :=
Module[
{},
diff --git a/Tools/CodeGen/Schedule.m b/Tools/CodeGen/Schedule.m
index b74db66..4e4ddcf 100644
--- a/Tools/CodeGen/Schedule.m
+++ b/Tools/CodeGen/Schedule.m
@@ -236,6 +236,9 @@ CreateKrancScheduleFile[calcs_, groups_, evolvedGroups_, rhsGroups_, nonevolvedG
Join[{scheduledStartup, scheduleMoLRegister, scheduleRegisterSymmetries},
scheduledCalcs, CactusBoundary`GetScheduledFunctions[thornName, evolvedGroups]];
+ If[OptionValue[UseCaKernel],
+ scheduledFunctions = Join[scheduledFunctions, CaKernelSchedule[]]];
+
schedule = CreateSchedule[globalStorageGroups,
CactusBoundary`GetScheduledGroups[thornName], scheduledFunctions];