Data required to perform duplex buffer pipelining. More...
#include <TTL_duplex_scheme.h>
Public Member Functions | |
TTL_duplex_buffering (TTL_tensor< TENSORTYPE > ext_tensor_in, TTL_local(TENSORTYPE *) int_base_in, TTL_tensor< TENSORTYPE > ext_tensor_out, TTL_local(TENSORTYPE *) int_base_out, TTL_event(*input_events)[2], TTL_tile first_tile) | |
Create a TTL_DUPLEX_BUFFERING_TYPE and begin the buffering process. | |
TTL_io_tensors< TENSORTYPE > | step_buffering (TTL_tile tile_current_import, TTL_tile tile_current_export) |
void | finish_buffering () |
Complete any transfers required to finish the buffering process. | |
Data Fields | ||
TTL_common_buffering< TENSORTYPE, 2 > | m_common | |
The information that is m_common to all pipeline schemes. | ||
TTL_event(* | m_events )[2] | |
struct { | ||
TTL_tensor< TENSORTYPE > to_export_to | ||
TTL_tensor< TENSORTYPE > to_export_from | ||
} | m_prev_out_tensors | |
Store of the buffers used for the previous import/export cycles. | ||
Static Public Attributes | |
static constexpr unsigned int | IMPORT_BUFFER = 0 |
Indexes to use for importing and exporting of data. | |
static constexpr unsigned int | EXPORT_BUFFER = 1 |
Data required to perform duplex buffer pipelining.
Definition at line 62 of file p/pipelines/TTL_duplex_scheme.h.
|
inline |
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. |
m_events | A pointer to a list of 2 m_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 step_buffering call.
Definition at line 147 of file p/pipelines/TTL_duplex_scheme.h.
|
inline |
Complete any transfers required to finish the buffering process.
Any transfers that are still in progress will be completed and any transfers that need to be started and completed before finish_buffering returns
Definition at line 214 of file p/pipelines/TTL_duplex_scheme.h.
|
inline |
Definition at line 162 of file p/pipelines/TTL_duplex_scheme.h.
|
staticconstexpr |
Definition at line 224 of file p/pipelines/TTL_duplex_scheme.h.
|
staticconstexpr |
Indexes to use for importing and exporting of data.
Definition at line 223 of file p/pipelines/TTL_duplex_scheme.h.
TTL_common_buffering<TENSORTYPE, 2> TTL_duplex_buffering< TENSORTYPE >::m_common |
The information that is m_common to all pipeline schemes.
Definition at line 218 of file p/pipelines/TTL_duplex_scheme.h.
TTL_event(* TTL_duplex_buffering< TENSORTYPE >::m_events)[2] |
2 m_events are required, 1 first is used for external to internal transfers, the second for internal to external transfers
Definition at line 226 of file p/pipelines/TTL_duplex_scheme.h.
struct { ... } TTL_duplex_buffering< TENSORTYPE >::m_prev_out_tensors |
Store of the buffers used for the previous import/export cycles.
TTL_tensor<TENSORTYPE> TTL_duplex_buffering< TENSORTYPE >::to_export_from |
Definition at line 236 of file p/pipelines/TTL_duplex_scheme.h.
TTL_tensor<TENSORTYPE> TTL_duplex_buffering< TENSORTYPE >::to_export_to |
Definition at line 235 of file p/pipelines/TTL_duplex_scheme.h.