Go to the source code of this file.
Data Structures | |
struct | TTL_duplex_const_void_tensor_buffering_t |
Data required to perform duplex buffer pipelining. More... | |
struct | TTL_duplex_const_char_tensor_buffering_t |
Data required to perform duplex buffer pipelining. More... | |
struct | TTL_duplex_const_uchar_tensor_buffering_t |
Data required to perform duplex buffer pipelining. More... | |
struct | TTL_duplex_const_int_tensor_buffering_t |
Data required to perform duplex buffer pipelining. More... | |
struct | TTL_duplex_const_uint_tensor_buffering_t |
Data required to perform duplex buffer pipelining. More... | |
struct | TTL_duplex_const_short_tensor_buffering_t |
Data required to perform duplex buffer pipelining. More... | |
struct | TTL_duplex_const_ushort_tensor_buffering_t |
Data required to perform duplex buffer pipelining. More... | |
struct | TTL_duplex_const_long_tensor_buffering_t |
Data required to perform duplex buffer pipelining. More... | |
struct | TTL_duplex_const_ulong_tensor_buffering_t |
Data required to perform duplex buffer pipelining. More... | |
Given pair of blocking import and export that can execute concurrently, TTL_duplex_buffering issues them together and then waits on both to complete, hopefully executing them in parallel to each other. This scheme uses two internal buffers, one for the import and one for the export. Note that the export is pipelined to pair the import of the current tile with the export of previous tile.
The following table draws the pipelined actions performed in duplex buffering. It specifies which tile is processed in each iteration:
Action\Iteration | #0 | #1 | #i (2:NumOfTiles-1) | #NumOfTiles- |
---|---|---|---|---|
Import | 0 | 1 | i | |
Wait Import | 0 | 1 | i | |
Compute | 0 | 1 | i | |
Export | 0 | i-1 | NumOfTiles-1 | |
WaitExport | 0 | i-1 | NumOfTiles-1 |
Notice the epilog (#NumOfTiles) which is an extra iteration.
When including this file the following must be defined
#define TTL_TENSOR_TYPE void #define TTL_TENSOR_TYPE uchar etc
Definition in file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 511 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 1026 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 2056 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 1541 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 769 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 1283 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 2314 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 1799 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 254 of file TTL_duplex_scheme.h.
|
inlinestatic |
Create a TTL_DUPLEX_BUFFERING_TYPE and begin the buffering process.
ext_tensor_in | A tensor describing the input in global memory |
int_base_in | The address of the local import buffer. |
ext_tensor_out | A tensor describing the output in global memory |
int_base_out | The address of the local export buffer. |
events | A pointer to a list of 2 events. The first event in the list will be used for imports, the second event in the list will be used for exports. |
first_tile | The first tile to fetch for the scheme |
The first event in the list will be used for imports, the second event in the list will be used for exports.
Example:
Solid description of duplex buffering here.
The simplest form of duplex buffering takes the following flow.
This can be optimized and standardized using the TTL_step_buffering call.
Definition at line 440 of file TTL_duplex_scheme.h.
|
inlinestatic |
Create a TTL_DUPLEX_BUFFERING_TYPE and begin the buffering process.
ext_tensor_in | A tensor describing the input in global memory |
int_base_in | The address of the local import buffer. |
ext_tensor_out | A tensor describing the output in global memory |
int_base_out | The address of the local export buffer. |
events | A pointer to a list of 2 events. The first event in the list will be used for imports, the second event in the list will be used for exports. |
first_tile | The first tile to fetch for the scheme |
The first event in the list will be used for imports, the second event in the list will be used for exports.
Example:
Solid description of duplex buffering here.
The simplest form of duplex buffering takes the following flow.
This can be optimized and standardized using the TTL_step_buffering call.
Definition at line 955 of file TTL_duplex_scheme.h.
|
inlinestatic |
Create a TTL_DUPLEX_BUFFERING_TYPE and begin the buffering process.
ext_tensor_in | A tensor describing the input in global memory |
int_base_in | The address of the local import buffer. |
ext_tensor_out | A tensor describing the output in global memory |
int_base_out | The address of the local export buffer. |
events | A pointer to a list of 2 events. The first event in the list will be used for imports, the second event in the list will be used for exports. |
first_tile | The first tile to fetch for the scheme |
The first event in the list will be used for imports, the second event in the list will be used for exports.
Example:
Solid description of duplex buffering here.
The simplest form of duplex buffering takes the following flow.
This can be optimized and standardized using the TTL_step_buffering call.
Definition at line 1985 of file TTL_duplex_scheme.h.
|
inlinestatic |
Create a TTL_DUPLEX_BUFFERING_TYPE and begin the buffering process.
ext_tensor_in | A tensor describing the input in global memory |
int_base_in | The address of the local import buffer. |
ext_tensor_out | A tensor describing the output in global memory |
int_base_out | The address of the local export buffer. |
events | A pointer to a list of 2 events. The first event in the list will be used for imports, the second event in the list will be used for exports. |
first_tile | The first tile to fetch for the scheme |
The first event in the list will be used for imports, the second event in the list will be used for exports.
Example:
Solid description of duplex buffering here.
The simplest form of duplex buffering takes the following flow.
This can be optimized and standardized using the TTL_step_buffering call.
Definition at line 1469 of file TTL_duplex_scheme.h.
|
inlinestatic |
Create a TTL_DUPLEX_BUFFERING_TYPE and begin the buffering process.
ext_tensor_in | A tensor describing the input in global memory |
int_base_in | The address of the local import buffer. |
ext_tensor_out | A tensor describing the output in global memory |
int_base_out | The address of the local export buffer. |
events | A pointer to a list of 2 events. The first event in the list will be used for imports, the second event in the list will be used for exports. |
first_tile | The first tile to fetch for the scheme |
The first event in the list will be used for imports, the second event in the list will be used for exports.
Example:
Solid description of duplex buffering here.
The simplest form of duplex buffering takes the following flow.
This can be optimized and standardized using the TTL_step_buffering call.
Definition at line 697 of file TTL_duplex_scheme.h.
|
inlinestatic |
Create a TTL_DUPLEX_BUFFERING_TYPE and begin the buffering process.
ext_tensor_in | A tensor describing the input in global memory |
int_base_in | The address of the local import buffer. |
ext_tensor_out | A tensor describing the output in global memory |
int_base_out | The address of the local export buffer. |
events | A pointer to a list of 2 events. The first event in the list will be used for imports, the second event in the list will be used for exports. |
first_tile | The first tile to fetch for the scheme |
The first event in the list will be used for imports, the second event in the list will be used for exports.
Example:
Solid description of duplex buffering here.
The simplest form of duplex buffering takes the following flow.
This can be optimized and standardized using the TTL_step_buffering call.
Definition at line 1212 of file TTL_duplex_scheme.h.
|
inlinestatic |
Create a TTL_DUPLEX_BUFFERING_TYPE and begin the buffering process.
ext_tensor_in | A tensor describing the input in global memory |
int_base_in | The address of the local import buffer. |
ext_tensor_out | A tensor describing the output in global memory |
int_base_out | The address of the local export buffer. |
events | A pointer to a list of 2 events. The first event in the list will be used for imports, the second event in the list will be used for exports. |
first_tile | The first tile to fetch for the scheme |
The first event in the list will be used for imports, the second event in the list will be used for exports.
Example:
Solid description of duplex buffering here.
The simplest form of duplex buffering takes the following flow.
This can be optimized and standardized using the TTL_step_buffering call.
Definition at line 2242 of file TTL_duplex_scheme.h.
|
inlinestatic |
Create a TTL_DUPLEX_BUFFERING_TYPE and begin the buffering process.
ext_tensor_in | A tensor describing the input in global memory |
int_base_in | The address of the local import buffer. |
ext_tensor_out | A tensor describing the output in global memory |
int_base_out | The address of the local export buffer. |
events | A pointer to a list of 2 events. The first event in the list will be used for imports, the second event in the list will be used for exports. |
first_tile | The first tile to fetch for the scheme |
The first event in the list will be used for imports, the second event in the list will be used for exports.
Example:
Solid description of duplex buffering here.
The simplest form of duplex buffering takes the following flow.
This can be optimized and standardized using the TTL_step_buffering call.
Definition at line 1727 of file TTL_duplex_scheme.h.
|
inlinestatic |
Create a TTL_DUPLEX_BUFFERING_TYPE and begin the buffering process.
ext_tensor_in | A tensor describing the input in global memory |
int_base_in | The address of the local import buffer. |
ext_tensor_out | A tensor describing the output in global memory |
int_base_out | The address of the local export buffer. |
events | A pointer to a list of 2 events. The first event in the list will be used for imports, the second event in the list will be used for exports. |
first_tile | The first tile to fetch for the scheme |
The first event in the list will be used for imports, the second event in the list will be used for exports.
Example:
Solid description of duplex buffering here.
The simplest form of duplex buffering takes the following flow.
This can be optimized and standardized using the TTL_step_buffering call.
Definition at line 183 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 458 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 973 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 2003 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 1487 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 715 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 1230 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 2260 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 1745 of file TTL_duplex_scheme.h.
|
inlinestatic |
Definition at line 201 of file TTL_duplex_scheme.h.