class even_split
Declaration
template <int BufferDims>
class even_split { /* full declaration omitted */ };
Description
For a 1D kernel, splits an nD-buffer evenly along its slowest dimension. This range mapper is unique in the sense that the chunk parameter (i.e. the iteration space) is unrelated to the buffer indices it maps to. It is designed to distribute a buffer in contiguous portions between nodes for collective host tasks, allowing each node to output its portion in I/O operations. See accessor::get_allocation_window
on how to access the resulting host memory.
Declared at: include/range_mapper.h:269
Template Parameters
- int BufferDims
Member Variables
- range<BufferDims> m_granularity = detail::range_cast<BufferDims>(celerity::range<3>(1, 1, 1))
Member Function Overview
- even_split()
- even_split(const range<BufferDims> & granularity) → explicit
- operator()(const chunk<1> & chunk, const range<BufferDims> & buffer_size) const → subrange<BufferDims>
Member Functions
¶even_split()
even_split()
Declared at: include/range_mapper.h:273
¶explicit even_split(
const range<BufferDims>& granularity)
explicit even_split(
const range<BufferDims>& granularity)
Declared at: include/range_mapper.h:274
Parameters
- const range<BufferDims>& granularity
¶subrange<BufferDims> operator()(
const chunk<1>& chunk,
const range<BufferDims>& buffer_size) const
subrange<BufferDims> operator()(
const chunk<1>& chunk,
const range<BufferDims>& buffer_size) const
Declared at: include/range_mapper.h:276
Parameters
- const chunk<1>& chunk
- const range<BufferDims>& buffer_size