From 60b08902213d7720dbdcdade920643be61cd7394 Mon Sep 17 00:00:00 2001 From: Ian Hinder Date: Wed, 1 Feb 2012 22:20:31 -0600 Subject: Add CaKernel functions to interface.ccl --- Tools/CodeGen/CaKernel.m | 15 +++++++++++++++ Tools/CodeGen/Interface.m | 9 ++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) (limited to 'Tools/CodeGen') diff --git a/Tools/CodeGen/CaKernel.m b/Tools/CodeGen/CaKernel.m index bc06ad2..7d12bf2 100644 --- a/Tools/CodeGen/CaKernel.m +++ b/Tools/CodeGen/CaKernel.m @@ -26,6 +26,7 @@ CaKernelCode; CaKernelEpilogue; CaKernelSchedule; CaKernelConfigurationCLL; +CaKernelInterfaceCLL; Begin["`Private`"]; @@ -80,6 +81,20 @@ DefFn[CaKernelSchedule[] := CaKernelConfigurationCLL[] := "REQUIRES CUDA"; +CaKernelInterfaceCLL[] := +" +# These functions are provided by the CaKernel thorn + +CCTK_INT FUNCTION Device_RegisterMem(CCTK_POINTER IN cctkGH, CCTK_INT IN vi, CCTK_INT IN num_tls) +REQUIRES FUNCTION Device_RegisterMem + +CCTK_INT FUNCTION Device_UnRegisterMem(CCTK_POINTER IN cctkGH, CCTK_INT IN vi) +REQUIRES FUNCTION Device_UnRegisterMem + +CCTK_POINTER FUNCTION Device_GetVarI (CCTK_POINTER IN cctkGH, CCTK_INT IN vi, CCTK_INT IN num_tls) +REQUIRES FUNCTION Device_GetVarI +"; + DefFn[codeBlock[macro_String, contents:CodeGenBlock] := Module[ {}, diff --git a/Tools/CodeGen/Interface.m b/Tools/CodeGen/Interface.m index 68154af..095ddf9 100644 --- a/Tools/CodeGen/Interface.m +++ b/Tools/CodeGen/Interface.m @@ -18,7 +18,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *) -BeginPackage["Interface`", {"Thorn`", "KrancGroups`", "MapLookup`", "Errors`", "Helpers`", "Kranc`"}]; +BeginPackage["Interface`", {"Thorn`", "KrancGroups`", "MapLookup`", "Errors`", + "Helpers`", "Kranc`", "CaKernel`"}]; CreateKrancInterface; @@ -192,7 +193,7 @@ CreateKrancInterface[nonevolvedGroups_, evolvedGroups_, rhsGroups_, nonevolvedODEGroupStructures, evolvedODEGroupStructures, rhsODEGroupStructures]; - interface = CreateInterface[implementation, inheritedImplementations, + interface = Join[CreateInterface[implementation, inheritedImplementations, Join[includeFiles, {CactusBoundary`GetIncludeFiles[]}, {"loopcontrol.h"}, If[OptionValue[UseOpenCL], {"OpenCLRunTime.h"}, {}], @@ -201,7 +202,9 @@ CreateKrancInterface[nonevolvedGroups_, evolvedGroups_, rhsGroups_, UsesFunctions -> Join[{registerEvolved, (*registerConstrained,*) diffCoeff, getMap}, - CactusBoundary`GetUsedFunctions[]]]; + CactusBoundary`GetUsedFunctions[]]], + {If[OptionValue[UseCaKernel], CaKernelInterfaceCLL[], {}]}]; + Return[interface]]; -- cgit v1.2.3