From dc65d718fd51629e8542d0daf35d7f946b351784 Mon Sep 17 00:00:00 2001 From: Ian Hinder Date: Thu, 26 Jan 2012 22:38:44 -0600 Subject: Schedule CaKernel_CopyFromDev Otherwise the data never gets copied back to the CPU from the device --- Tools/CodeGen/CaKernel.m | 12 ++++++++++++ Tools/CodeGen/Schedule.m | 3 +++ 2 files changed, 15 insertions(+) (limited to 'Tools/CodeGen') 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]; -- cgit v1.2.3