diff options
author | Ian Hinder <ian.hinder@aei.mpg.de> | 2012-01-26 22:38:44 -0600 |
---|---|---|
committer | Ian Hinder <ian.hinder@aei.mpg.de> | 2012-01-26 22:38:44 -0600 |
commit | dc65d718fd51629e8542d0daf35d7f946b351784 (patch) | |
tree | f25dc7618701cecd9a154087cb2ab4fc64764b60 /Tools/CodeGen | |
parent | d025eb5826ea01d3ceb13793955cc8a16475583a (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.m | 12 | ||||
-rw-r--r-- | Tools/CodeGen/Schedule.m | 3 |
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]; |