diff options
-rw-r--r-- | Tools/CodeGen/CaKernel.m | 12 | ||||
-rw-r--r-- | Tools/CodeGen/Schedule.m | 2 |
2 files changed, 11 insertions, 3 deletions
diff --git a/Tools/CodeGen/CaKernel.m b/Tools/CodeGen/CaKernel.m index eed045c..8faa67f 100644 --- a/Tools/CodeGen/CaKernel.m +++ b/Tools/CodeGen/CaKernel.m @@ -91,8 +91,16 @@ DefFn[CaKernelCCL[calcs_List, opts:OptionsPattern[]] := {}, Map[kernelCCLBlock[#,OptionValue[TileSize]] &, Select[calcs, CalculationOnDevice]]]]; -DefFn[CaKernelSchedule[] := - {}]; +DefFn[CaKernelSchedule[thornName_] := +{ + { + Name -> thornName <> "_Init", + SchedulePoint -> "in CCTK_BASEGRID after Accelerator_SetDevice", + Language -> "C", + Options -> "local", + Comment -> "Initialize CUDA Device" + } +}] CaKernelConfigurationCLL[] := "REQUIRES CUDA MPI\n"; diff --git a/Tools/CodeGen/Schedule.m b/Tools/CodeGen/Schedule.m index 24b1802..225b447 100644 --- a/Tools/CodeGen/Schedule.m +++ b/Tools/CodeGen/Schedule.m @@ -303,7 +303,7 @@ CreateKrancScheduleFile[calcs_, groups_, evolvedGroups_, rhsGroups_, nonevolvedG {scheduleMoLRegister}]; If[OptionValue[UseCaKernel], - scheduledFunctions = Join[scheduledFunctions, CaKernelSchedule[]]]; + scheduledFunctions = Join[scheduledFunctions, CaKernelSchedule[thornName]]]; allParams = Union@@((lookup[#,Parameters] &) /@ calcs); schedule = CreateSchedule[globalStorageGroups, |