|
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) |
|
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.