aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
Diffstat (limited to 'Tools')
-rw-r--r--Tools/CodeGen/CaKernel.m12
-rw-r--r--Tools/CodeGen/Schedule.m2
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,