Auto Tiler Library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
UserKernel

Content

 KernelIterationSpace
 
 UserKernelCArguments
 
 KernelCalls
 
 UserKernelArguments
 

Functions

Kernel_TUserKernel (char *TemplateName, KernelIterationSpaceT *KerIter, Tile_Orientation_T Orientation, CKernel_Arg_T **CArg, CKernelCall_T **CCalls, Object_T **KerArg)
 Creates a user kernel. More...
 
void AddKernelInfos (char *Name, AT_KernelInfo_T Info, long long int NumVal, void *Val)
 Add informations to selected user kernel. More...
 
void AddKernelArgDim (char *Name, char *ArgName, int Dim,...)
 Add informations to selected argument of selected user kernel. More...
 
void SetKernelArgInterleave (char *Name, char *ArgName, unsigned int TileLineInterleave)
 For 2D parametric const arg interleave each tile by group of TileLineInterleave Lines. More...
 
void SetKerArgInL3 (char *Name, char *ArgName)
 Set L2DB (in L3) property to Kernel Name, Kernel Argument ArgName. More...
 
void AT_SetKernelCtrl (AT_GraphCtrl_T Ctrl, void *Val)
 Alter the behaviour of UserKernel processing. More...
 
void * AT_GetKernelCtrl (AT_GraphCtrl_T Ctrl)
 

Description

Functions in this group should be used to add user kernels

Function Documentation

void AddKernelArgDim ( char *  Name,
char *  ArgName,
int  Dim,
  ... 
)

Add informations to selected argument of selected user kernel

Parameters
NameKernel Name
ArgNameArgument Name
DimNumber of dimensions or -1 (in this case list must be 0 terminated
void AddKernelInfos ( char *  Name,
AT_KernelInfo_T  Info,
long long int  NumVal,
void *  Val 
)

Add informations to selected user kernel

Parameters
NameA defined User Kernel Name
InfoWhich type of information
NumValValue passed as an integer
ValValue passed as a void *
void* AT_GetKernelCtrl ( AT_GraphCtrl_T  Ctrl)
Parameters
CtrlWhich option
void AT_SetKernelCtrl ( AT_GraphCtrl_T  Ctrl,
void *  Val 
)

Alter the behaviour of UserKernel processing Possible Ctrl values: AT_KERNEL_BUFFER_PROMOTE, When all user kernel arguments can fit into given L1 memory promote them to buffer, default is 1 AT_KERNEL_PARTIAL_BUFFER_PROMOTE, When all tile of a user kernel argument across Input Features can fit into given L1 memory promote them to partial buffer, default is 1 AT_KERNEL_NOSOLUTION_ERROR, Report an error when no tiling solution is found, default is 1 For Val use Use APT_OPT_ON, AT_OPT_OFF, AT_OPT_VAL(Val)

Parameters
CtrlWhich option
ValValue for this option. Use APT_OPT_ON, AT_OPT_OFF, AT_OPT_VAL(Val)
void SetKerArgInL3 ( char *  Name,
char *  ArgName 
)

Set L2DB (in L3) property to Kernel Name, Kernel Argument ArgName

Parameters
NameKernel Name
ArgNameArgument Name
void SetKernelArgInterleave ( char *  Name,
char *  ArgName,
unsigned int  TileLineInterleave 
)

For 2D parametric const arg interleave each tile by group of TileLineInterleave Lines

Parameters
NameKernel Name
ArgNameArgument Name
TileLineInterleaveNumber of lines of the interleaved group of lines
Kernel_T* UserKernel ( char *  TemplateName,
KernelIterationSpaceT KerIter,
Tile_Orientation_T  Orientation,
CKernel_Arg_T **  CArg,
CKernelCall_T **  CCalls,
Object_T **  KerArg 
)

Creates a user kernel

Parameters
TemplateNameC name to be used for this user kernel
KerIterSee KernelIterationOrder()
OrientationKernel tiling orientation
CArgSee Carg() and TCArg()
CCallsSee Calls() and Call()
KerArgSee KerArgs() and KerArg(), KerArgPad()