Tensor Tiling Library
 
Loading...
Searching...
No Matches
TTL_double_scheme_template.h File Reference

Go to the source code of this file.

Data Structures

struct  TTL_import_double_const_void_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_export_double_const_void_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_import_double_const_char_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_export_double_const_char_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_import_double_const_uchar_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_export_double_const_uchar_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_import_double_const_int_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_export_double_const_int_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_import_double_const_uint_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_export_double_const_uint_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_import_double_const_short_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_export_double_const_short_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_import_double_const_ushort_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_export_double_const_ushort_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_import_double_const_long_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_export_double_const_long_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_import_double_const_ulong_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 
struct  TTL_export_double_const_ulong_tensor_buffering_t
 Data required to perform double buffer pipelining. More...
 

Functions

static TTL_import_double_const_void_tensor_buffering_t TTL_start_import_double_buffering (__local void *int_base1, __local void *int_base2, TTL_const_ext_void_tensor_t ext_tensor, TTL_event_t *event, TTL_tile_t first_tile)
 Create a TTL_import_double_buffering_t and begin the buffering process.
 
static TTL_int_void_sub_tensor_t TTL_step_buffering (TTL_import_double_const_void_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_export_double_const_void_tensor_buffering_t TTL_start_export_double_buffering (__local void *int_base1, __local void *int_base2, TTL_ext_void_tensor_t ext_tensor, TTL_event_t *event)
 Create a TTL_export_double_buffering_t and begin the buffering process.
 
static TTL_int_void_sub_tensor_t TTL_step_buffering (TTL_export_double_const_void_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_import_double_const_char_tensor_buffering_t TTL_start_import_double_buffering (__local char *int_base1, __local char *int_base2, TTL_const_ext_char_tensor_t ext_tensor, TTL_event_t *event, TTL_tile_t first_tile)
 Create a TTL_import_double_buffering_t and begin the buffering process.
 
static TTL_int_char_sub_tensor_t TTL_step_buffering (TTL_import_double_const_char_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_export_double_const_char_tensor_buffering_t TTL_start_export_double_buffering (__local char *int_base1, __local char *int_base2, TTL_ext_char_tensor_t ext_tensor, TTL_event_t *event)
 Create a TTL_export_double_buffering_t and begin the buffering process.
 
static TTL_int_char_sub_tensor_t TTL_step_buffering (TTL_export_double_const_char_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_import_double_const_uchar_tensor_buffering_t TTL_start_import_double_buffering (__local uchar *int_base1, __local uchar *int_base2, TTL_const_ext_uchar_tensor_t ext_tensor, TTL_event_t *event, TTL_tile_t first_tile)
 Create a TTL_import_double_buffering_t and begin the buffering process.
 
static TTL_int_uchar_sub_tensor_t TTL_step_buffering (TTL_import_double_const_uchar_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_export_double_const_uchar_tensor_buffering_t TTL_start_export_double_buffering (__local uchar *int_base1, __local uchar *int_base2, TTL_ext_uchar_tensor_t ext_tensor, TTL_event_t *event)
 Create a TTL_export_double_buffering_t and begin the buffering process.
 
static TTL_int_uchar_sub_tensor_t TTL_step_buffering (TTL_export_double_const_uchar_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_import_double_const_int_tensor_buffering_t TTL_start_import_double_buffering (__local int *int_base1, __local int *int_base2, TTL_const_ext_int_tensor_t ext_tensor, TTL_event_t *event, TTL_tile_t first_tile)
 Create a TTL_import_double_buffering_t and begin the buffering process.
 
static TTL_int_int_sub_tensor_t TTL_step_buffering (TTL_import_double_const_int_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_export_double_const_int_tensor_buffering_t TTL_start_export_double_buffering (__local int *int_base1, __local int *int_base2, TTL_ext_int_tensor_t ext_tensor, TTL_event_t *event)
 Create a TTL_export_double_buffering_t and begin the buffering process.
 
static TTL_int_int_sub_tensor_t TTL_step_buffering (TTL_export_double_const_int_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_import_double_const_uint_tensor_buffering_t TTL_start_import_double_buffering (__local uint *int_base1, __local uint *int_base2, TTL_const_ext_uint_tensor_t ext_tensor, TTL_event_t *event, TTL_tile_t first_tile)
 Create a TTL_import_double_buffering_t and begin the buffering process.
 
static TTL_int_uint_sub_tensor_t TTL_step_buffering (TTL_import_double_const_uint_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_export_double_const_uint_tensor_buffering_t TTL_start_export_double_buffering (__local uint *int_base1, __local uint *int_base2, TTL_ext_uint_tensor_t ext_tensor, TTL_event_t *event)
 Create a TTL_export_double_buffering_t and begin the buffering process.
 
static TTL_int_uint_sub_tensor_t TTL_step_buffering (TTL_export_double_const_uint_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_import_double_const_short_tensor_buffering_t TTL_start_import_double_buffering (__local short *int_base1, __local short *int_base2, TTL_const_ext_short_tensor_t ext_tensor, TTL_event_t *event, TTL_tile_t first_tile)
 Create a TTL_import_double_buffering_t and begin the buffering process.
 
static TTL_int_short_sub_tensor_t TTL_step_buffering (TTL_import_double_const_short_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_export_double_const_short_tensor_buffering_t TTL_start_export_double_buffering (__local short *int_base1, __local short *int_base2, TTL_ext_short_tensor_t ext_tensor, TTL_event_t *event)
 Create a TTL_export_double_buffering_t and begin the buffering process.
 
static TTL_int_short_sub_tensor_t TTL_step_buffering (TTL_export_double_const_short_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_import_double_const_ushort_tensor_buffering_t TTL_start_import_double_buffering (__local ushort *int_base1, __local ushort *int_base2, TTL_const_ext_ushort_tensor_t ext_tensor, TTL_event_t *event, TTL_tile_t first_tile)
 Create a TTL_import_double_buffering_t and begin the buffering process.
 
static TTL_int_ushort_sub_tensor_t TTL_step_buffering (TTL_import_double_const_ushort_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_export_double_const_ushort_tensor_buffering_t TTL_start_export_double_buffering (__local ushort *int_base1, __local ushort *int_base2, TTL_ext_ushort_tensor_t ext_tensor, TTL_event_t *event)
 Create a TTL_export_double_buffering_t and begin the buffering process.
 
static TTL_int_ushort_sub_tensor_t TTL_step_buffering (TTL_export_double_const_ushort_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_import_double_const_long_tensor_buffering_t TTL_start_import_double_buffering (__local long *int_base1, __local long *int_base2, TTL_const_ext_long_tensor_t ext_tensor, TTL_event_t *event, TTL_tile_t first_tile)
 Create a TTL_import_double_buffering_t and begin the buffering process.
 
static TTL_int_long_sub_tensor_t TTL_step_buffering (TTL_import_double_const_long_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_export_double_const_long_tensor_buffering_t TTL_start_export_double_buffering (__local long *int_base1, __local long *int_base2, TTL_ext_long_tensor_t ext_tensor, TTL_event_t *event)
 Create a TTL_export_double_buffering_t and begin the buffering process.
 
static TTL_int_long_sub_tensor_t TTL_step_buffering (TTL_export_double_const_long_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_import_double_const_ulong_tensor_buffering_t TTL_start_import_double_buffering (__local ulong *int_base1, __local ulong *int_base2, TTL_const_ext_ulong_tensor_t ext_tensor, TTL_event_t *event, TTL_tile_t first_tile)
 Create a TTL_import_double_buffering_t and begin the buffering process.
 
static TTL_int_ulong_sub_tensor_t TTL_step_buffering (TTL_import_double_const_ulong_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 
static TTL_export_double_const_ulong_tensor_buffering_t TTL_start_export_double_buffering (__local ulong *int_base1, __local ulong *int_base2, TTL_ext_ulong_tensor_t ext_tensor, TTL_event_t *event)
 Create a TTL_export_double_buffering_t and begin the buffering process.
 
static TTL_int_ulong_sub_tensor_t TTL_step_buffering (TTL_export_double_const_ulong_tensor_buffering_t *const db, const TTL_tile_t next_tile)
 

Detailed Description

TTL_double_buffering pipelines a duplex import or export transaction using two internal buffers.

The following table draws the pipelined actions performed in double buffering. It specifies which tile is processed in each iteration:

Action\Iteration #-1 #0 #1 #2 #i (2:NumOfTiles-2) #NumOfTiles-1 #NumOfTiles #NumOfTiles+1
Wait Import 0 1 2 i NumOfTiles-1
Import 0 1 2 3 i+1
WaitExport 0 i-2 NumOfTiles-3 NumOfTiles-2 NumOfTiles-1
Export 0 1 i-1 NumOfTiles-2 NumOfTiles-1
Compute 0 1 2 i NumOfTiles-1

Notice the prolog (at iteration number -1) and the 2 epilogs (at iterations number NumOfTiles and NumOfTiles+1) which add in total 3 extra iterations.

Definition in file TTL_double_scheme_template.h.

Function Documentation

◆ TTL_start_export_double_buffering() [1/9]

static TTL_export_double_const_char_tensor_buffering_t TTL_start_export_double_buffering ( __local char * int_base1,
__local char * int_base2,
TTL_ext_char_tensor_t ext_tensor,
TTL_event_t * event )
inlinestatic

Create a TTL_export_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the output in global memory
eventA pointer to the event to use for the inward and outward transfer completion

Solid description of single buffering here.

Returns
The TTL_export_double_buffering_t created from the input parameters.

Example:

TTL_event_t export_DB_e = TTL_get_event();
TTL_export_double_buffering_t import_db = TTL_start_export_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &export_DB_e);
static TTL_export_double_const_void_tensor_buffering_t TTL_start_export_double_buffering(__local void *int_base1, __local void *int_base2, TTL_ext_void_tensor_t ext_tensor, TTL_event_t *event)
Create a TTL_export_double_buffering_t and begin the buffering process.
event_t TTL_event_t
TTL_event_t is a pseudonym for OpenCL event_t.
static TTL_event_t TTL_get_event()
Return an empty event of type TTL_event_t.


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 504 of file TTL_double_scheme_template.h.

◆ TTL_start_export_double_buffering() [2/9]

static TTL_export_double_const_int_tensor_buffering_t TTL_start_export_double_buffering ( __local int * int_base1,
__local int * int_base2,
TTL_ext_int_tensor_t ext_tensor,
TTL_event_t * event )
inlinestatic

Create a TTL_export_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the output in global memory
eventA pointer to the event to use for the inward and outward transfer completion

Solid description of single buffering here.

Returns
The TTL_export_double_buffering_t created from the input parameters.

Example:

TTL_event_t export_DB_e = TTL_get_event();
TTL_export_double_buffering_t import_db = TTL_start_export_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &export_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 1026 of file TTL_double_scheme_template.h.

◆ TTL_start_export_double_buffering() [3/9]

static TTL_export_double_const_long_tensor_buffering_t TTL_start_export_double_buffering ( __local long * int_base1,
__local long * int_base2,
TTL_ext_long_tensor_t ext_tensor,
TTL_event_t * event )
inlinestatic

Create a TTL_export_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the output in global memory
eventA pointer to the event to use for the inward and outward transfer completion

Solid description of single buffering here.

Returns
The TTL_export_double_buffering_t created from the input parameters.

Example:

TTL_event_t export_DB_e = TTL_get_event();
TTL_export_double_buffering_t import_db = TTL_start_export_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &export_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 2070 of file TTL_double_scheme_template.h.

◆ TTL_start_export_double_buffering() [4/9]

static TTL_export_double_const_short_tensor_buffering_t TTL_start_export_double_buffering ( __local short * int_base1,
__local short * int_base2,
TTL_ext_short_tensor_t ext_tensor,
TTL_event_t * event )
inlinestatic

Create a TTL_export_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the output in global memory
eventA pointer to the event to use for the inward and outward transfer completion

Solid description of single buffering here.

Returns
The TTL_export_double_buffering_t created from the input parameters.

Example:

TTL_event_t export_DB_e = TTL_get_event();
TTL_export_double_buffering_t import_db = TTL_start_export_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &export_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 1548 of file TTL_double_scheme_template.h.

◆ TTL_start_export_double_buffering() [5/9]

static TTL_export_double_const_uchar_tensor_buffering_t TTL_start_export_double_buffering ( __local uchar * int_base1,
__local uchar * int_base2,
TTL_ext_uchar_tensor_t ext_tensor,
TTL_event_t * event )
inlinestatic

Create a TTL_export_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the output in global memory
eventA pointer to the event to use for the inward and outward transfer completion

Solid description of single buffering here.

Returns
The TTL_export_double_buffering_t created from the input parameters.

Example:

TTL_event_t export_DB_e = TTL_get_event();
TTL_export_double_buffering_t import_db = TTL_start_export_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &export_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 765 of file TTL_double_scheme_template.h.

◆ TTL_start_export_double_buffering() [6/9]

static TTL_export_double_const_uint_tensor_buffering_t TTL_start_export_double_buffering ( __local uint * int_base1,
__local uint * int_base2,
TTL_ext_uint_tensor_t ext_tensor,
TTL_event_t * event )
inlinestatic

Create a TTL_export_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the output in global memory
eventA pointer to the event to use for the inward and outward transfer completion

Solid description of single buffering here.

Returns
The TTL_export_double_buffering_t created from the input parameters.

Example:

TTL_event_t export_DB_e = TTL_get_event();
TTL_export_double_buffering_t import_db = TTL_start_export_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &export_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 1287 of file TTL_double_scheme_template.h.

◆ TTL_start_export_double_buffering() [7/9]

static TTL_export_double_const_ulong_tensor_buffering_t TTL_start_export_double_buffering ( __local ulong * int_base1,
__local ulong * int_base2,
TTL_ext_ulong_tensor_t ext_tensor,
TTL_event_t * event )
inlinestatic

Create a TTL_export_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the output in global memory
eventA pointer to the event to use for the inward and outward transfer completion

Solid description of single buffering here.

Returns
The TTL_export_double_buffering_t created from the input parameters.

Example:

TTL_event_t export_DB_e = TTL_get_event();
TTL_export_double_buffering_t import_db = TTL_start_export_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &export_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 2331 of file TTL_double_scheme_template.h.

◆ TTL_start_export_double_buffering() [8/9]

static TTL_export_double_const_ushort_tensor_buffering_t TTL_start_export_double_buffering ( __local ushort * int_base1,
__local ushort * int_base2,
TTL_ext_ushort_tensor_t ext_tensor,
TTL_event_t * event )
inlinestatic

Create a TTL_export_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the output in global memory
eventA pointer to the event to use for the inward and outward transfer completion

Solid description of single buffering here.

Returns
The TTL_export_double_buffering_t created from the input parameters.

Example:

TTL_event_t export_DB_e = TTL_get_event();
TTL_export_double_buffering_t import_db = TTL_start_export_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &export_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 1809 of file TTL_double_scheme_template.h.

◆ TTL_start_export_double_buffering() [9/9]

static TTL_export_double_const_void_tensor_buffering_t TTL_start_export_double_buffering ( __local void * int_base1,
__local void * int_base2,
TTL_ext_void_tensor_t ext_tensor,
TTL_event_t * event )
inlinestatic

Create a TTL_export_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the output in global memory
eventA pointer to the event to use for the inward and outward transfer completion

Solid description of single buffering here.

Returns
The TTL_export_double_buffering_t created from the input parameters.

Example:

TTL_event_t export_DB_e = TTL_get_event();
TTL_export_double_buffering_t import_db = TTL_start_export_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &export_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 243 of file TTL_double_scheme_template.h.

◆ TTL_start_import_double_buffering() [1/9]

static TTL_import_double_const_char_tensor_buffering_t TTL_start_import_double_buffering ( __local char * int_base1,
__local char * int_base2,
TTL_const_ext_char_tensor_t ext_tensor,
TTL_event_t * event,
TTL_tile_t first_tile )
inlinestatic

Create a TTL_import_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the input in global memory
eventA pointer to the event to use for the inward (external to internal) transfer completion
first_tileThe first tile to fetch for the scheme
Returns
The TTL_import_double_buffering_t created from the input parameters.

Example:

TTL_event_t import_DB_e = TTL_get_event();
TTL_import_double_buffering_t import_db = TTL_start_import_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &import_DB_e);
static TTL_import_double_const_void_tensor_buffering_t TTL_start_import_double_buffering(__local void *int_base1, __local void *int_base2, TTL_const_ext_void_tensor_t ext_tensor, TTL_event_t *event, TTL_tile_t first_tile)
Create a TTL_import_double_buffering_t and begin the buffering process.


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 372 of file TTL_double_scheme_template.h.

◆ TTL_start_import_double_buffering() [2/9]

static TTL_import_double_const_int_tensor_buffering_t TTL_start_import_double_buffering ( __local int * int_base1,
__local int * int_base2,
TTL_const_ext_int_tensor_t ext_tensor,
TTL_event_t * event,
TTL_tile_t first_tile )
inlinestatic

Create a TTL_import_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the input in global memory
eventA pointer to the event to use for the inward (external to internal) transfer completion
first_tileThe first tile to fetch for the scheme
Returns
The TTL_import_double_buffering_t created from the input parameters.

Example:

TTL_event_t import_DB_e = TTL_get_event();
TTL_import_double_buffering_t import_db = TTL_start_import_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &import_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 894 of file TTL_double_scheme_template.h.

◆ TTL_start_import_double_buffering() [3/9]

static TTL_import_double_const_long_tensor_buffering_t TTL_start_import_double_buffering ( __local long * int_base1,
__local long * int_base2,
TTL_const_ext_long_tensor_t ext_tensor,
TTL_event_t * event,
TTL_tile_t first_tile )
inlinestatic

Create a TTL_import_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the input in global memory
eventA pointer to the event to use for the inward (external to internal) transfer completion
first_tileThe first tile to fetch for the scheme
Returns
The TTL_import_double_buffering_t created from the input parameters.

Example:

TTL_event_t import_DB_e = TTL_get_event();
TTL_import_double_buffering_t import_db = TTL_start_import_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &import_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 1938 of file TTL_double_scheme_template.h.

◆ TTL_start_import_double_buffering() [4/9]

static TTL_import_double_const_short_tensor_buffering_t TTL_start_import_double_buffering ( __local short * int_base1,
__local short * int_base2,
TTL_const_ext_short_tensor_t ext_tensor,
TTL_event_t * event,
TTL_tile_t first_tile )
inlinestatic

Create a TTL_import_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the input in global memory
eventA pointer to the event to use for the inward (external to internal) transfer completion
first_tileThe first tile to fetch for the scheme
Returns
The TTL_import_double_buffering_t created from the input parameters.

Example:

TTL_event_t import_DB_e = TTL_get_event();
TTL_import_double_buffering_t import_db = TTL_start_import_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &import_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 1416 of file TTL_double_scheme_template.h.

◆ TTL_start_import_double_buffering() [5/9]

static TTL_import_double_const_uchar_tensor_buffering_t TTL_start_import_double_buffering ( __local uchar * int_base1,
__local uchar * int_base2,
TTL_const_ext_uchar_tensor_t ext_tensor,
TTL_event_t * event,
TTL_tile_t first_tile )
inlinestatic

Create a TTL_import_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the input in global memory
eventA pointer to the event to use for the inward (external to internal) transfer completion
first_tileThe first tile to fetch for the scheme
Returns
The TTL_import_double_buffering_t created from the input parameters.

Example:

TTL_event_t import_DB_e = TTL_get_event();
TTL_import_double_buffering_t import_db = TTL_start_import_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &import_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 633 of file TTL_double_scheme_template.h.

◆ TTL_start_import_double_buffering() [6/9]

static TTL_import_double_const_uint_tensor_buffering_t TTL_start_import_double_buffering ( __local uint * int_base1,
__local uint * int_base2,
TTL_const_ext_uint_tensor_t ext_tensor,
TTL_event_t * event,
TTL_tile_t first_tile )
inlinestatic

Create a TTL_import_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the input in global memory
eventA pointer to the event to use for the inward (external to internal) transfer completion
first_tileThe first tile to fetch for the scheme
Returns
The TTL_import_double_buffering_t created from the input parameters.

Example:

TTL_event_t import_DB_e = TTL_get_event();
TTL_import_double_buffering_t import_db = TTL_start_import_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &import_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 1155 of file TTL_double_scheme_template.h.

◆ TTL_start_import_double_buffering() [7/9]

static TTL_import_double_const_ulong_tensor_buffering_t TTL_start_import_double_buffering ( __local ulong * int_base1,
__local ulong * int_base2,
TTL_const_ext_ulong_tensor_t ext_tensor,
TTL_event_t * event,
TTL_tile_t first_tile )
inlinestatic

Create a TTL_import_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the input in global memory
eventA pointer to the event to use for the inward (external to internal) transfer completion
first_tileThe first tile to fetch for the scheme
Returns
The TTL_import_double_buffering_t created from the input parameters.

Example:

TTL_event_t import_DB_e = TTL_get_event();
TTL_import_double_buffering_t import_db = TTL_start_import_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &import_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 2199 of file TTL_double_scheme_template.h.

◆ TTL_start_import_double_buffering() [8/9]

static TTL_import_double_const_ushort_tensor_buffering_t TTL_start_import_double_buffering ( __local ushort * int_base1,
__local ushort * int_base2,
TTL_const_ext_ushort_tensor_t ext_tensor,
TTL_event_t * event,
TTL_tile_t first_tile )
inlinestatic

Create a TTL_import_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the input in global memory
eventA pointer to the event to use for the inward (external to internal) transfer completion
first_tileThe first tile to fetch for the scheme
Returns
The TTL_import_double_buffering_t created from the input parameters.

Example:

TTL_event_t import_DB_e = TTL_get_event();
TTL_import_double_buffering_t import_db = TTL_start_import_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &import_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 1677 of file TTL_double_scheme_template.h.

◆ TTL_start_import_double_buffering() [9/9]

static TTL_import_double_const_void_tensor_buffering_t TTL_start_import_double_buffering ( __local void * int_base1,
__local void * int_base2,
TTL_const_ext_void_tensor_t ext_tensor,
TTL_event_t * event,
TTL_tile_t first_tile )
inlinestatic

Create a TTL_import_double_buffering_t and begin the buffering process.

Parameters
int_base1A pointer to the 1st local buffer
int_base2A pointer to the 2nd local buffer
ext_tensorA tensor describing the input in global memory
eventA pointer to the event to use for the inward (external to internal) transfer completion
first_tileThe first tile to fetch for the scheme
Returns
The TTL_import_double_buffering_t created from the input parameters.

Example:

TTL_event_t import_DB_e = TTL_get_event();
TTL_import_double_buffering_t import_db = TTL_start_import_double_buffering(
l_in1, l_in2, ext_base_in, ext_layout_in, &import_DB_e);


This can be optimized and standardized using the TTL_step_buffering call.

Definition at line 111 of file TTL_double_scheme_template.h.

◆ TTL_step_buffering() [1/18]

static TTL_int_char_sub_tensor_t TTL_step_buffering ( TTL_export_double_const_char_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [2/18]

static TTL_int_int_sub_tensor_t TTL_step_buffering ( TTL_export_double_const_int_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [3/18]

static TTL_int_long_sub_tensor_t TTL_step_buffering ( TTL_export_double_const_long_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [4/18]

static TTL_int_short_sub_tensor_t TTL_step_buffering ( TTL_export_double_const_short_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [5/18]

static TTL_int_uchar_sub_tensor_t TTL_step_buffering ( TTL_export_double_const_uchar_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [6/18]

static TTL_int_uint_sub_tensor_t TTL_step_buffering ( TTL_export_double_const_uint_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [7/18]

static TTL_int_ulong_sub_tensor_t TTL_step_buffering ( TTL_export_double_const_ulong_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [8/18]

static TTL_int_ushort_sub_tensor_t TTL_step_buffering ( TTL_export_double_const_ushort_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [9/18]

static TTL_int_void_sub_tensor_t TTL_step_buffering ( TTL_export_double_const_void_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [10/18]

static TTL_int_char_sub_tensor_t TTL_step_buffering ( TTL_import_double_const_char_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [11/18]

static TTL_int_int_sub_tensor_t TTL_step_buffering ( TTL_import_double_const_int_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [12/18]

static TTL_int_long_sub_tensor_t TTL_step_buffering ( TTL_import_double_const_long_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [13/18]

static TTL_int_short_sub_tensor_t TTL_step_buffering ( TTL_import_double_const_short_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [14/18]

static TTL_int_uchar_sub_tensor_t TTL_step_buffering ( TTL_import_double_const_uchar_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [15/18]

static TTL_int_uint_sub_tensor_t TTL_step_buffering ( TTL_import_double_const_uint_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [16/18]

static TTL_int_ulong_sub_tensor_t TTL_step_buffering ( TTL_import_double_const_ulong_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [17/18]

static TTL_int_ushort_sub_tensor_t TTL_step_buffering ( TTL_import_double_const_ushort_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic

◆ TTL_step_buffering() [18/18]

static TTL_int_void_sub_tensor_t TTL_step_buffering ( TTL_import_double_const_void_tensor_buffering_t *const db,
const TTL_tile_t next_tile )
inlinestatic