60template <
typename TENSORTYPE>
109 m_common.ext_tensor_in = ext_tensor_in;
110 m_common.ext_tensor_out = ext_tensor_out;
128 tile_next_import.
shape,
133 tile_next_import.
shape,
155 if (tile_next_import.
empty() ==
false)
170 tile_current_export.
shape,
173 tile_current_export.
offset);
static void TTL_wait(const int num_events, TTL_event_t *const events)
#define TTL_ARRAYSIZE(x)
Return the number of elements in the array x.
event_t TTL_event
TTL_event is a pseudonym for OpenCL event_t.
static void TTL_import_sub_tensor(const TTL_int_void_sub_tensor_t internal_sub_tensor, const TTL_const_ext_void_tensor_t const_external_tensor, TTL_event_t *event)
Implementation of TTL_import_sub_tensor.
static void TTL_export(const TTL_const_int_void_tensor_t internal_tensor, const TTL_ext_void_tensor_t external_tensor, TTL_event_t *event)
Export the external tensor to the internal tensor returning when complete.
Describes a pair of internal Tensors after an operation.
Description of a Tensor layout in memory.
TTL_dim height
Number of rows along dimension y.
TTL_dim width
Number of elements along dimension x.
TTL_sub_tensor< TENSORTYPE > m_int_prev_imported
TTL_tile m_next_exported_tile
TTL_io_tensors< TENSORTYPE > step_buffering(const TTL_tile &tile_next_import, const TTL_tile &tile_current_export)
void finish_buffering()
Complete any transfers required to finish the buffering process.
TTL_simplex_buffering(TENSORTYPE *const int_base1, TENSORTYPE *const int_base2, TENSORTYPE *const int_base3, const TTL_tensor< TENSORTYPE > &ext_tensor_in, const TTL_tensor< TENSORTYPE > &ext_tensor_out, TTL_event *input_event_in, TTL_event *input_event_out, const TTL_tile first_tile)
Create a TTL_simplex_buffering and begin the buffering process.
TTL_common_buffering< TENSORTYPE, 3 > m_common
The information that is m_common to all pipeline schemes.
A tensor plus its reference to its parent tensor.
A poor mans base class for an a tensor in the passed address space.
bool empty() const
Check if the tile passed is empty.