![]() |
StencilStream v3.0.0
SYCL-based Stencil Simulation Framework Targeting FPGAs
|
The execution kernel of the monotile architecture. More...
#include <StencilUpdate.hpp>
Public Member Functions | |
StencilUpdateKernel (TransFunc trans_func, uindex_t i_iteration, uindex_t target_i_iteration, uindex_t grid_width, uindex_t grid_height, Cell halo_value, TDVKernelArgument tdv_kernel_argument) | |
Create and configure the execution kernel. | |
void | operator() () const |
Execute the kernel. | |
The execution kernel of the monotile architecture.
It receives the contents of a tile and it's halo from the in_pipe
, applies the transition function when applicable and writes the result to the out_pipe
.
With the monotile approach, the whole grid fits in one tile. This eliminates the need to calculate the cells of the tile halo, reducing the cache size and number of loop iterations. More is described in monotile.
TransFunc | The type of transition function to use. |
TDVKernelArgument | The type of parameter for the TDV system that is passed from the host to the kernel. |
n_processing_elements | The number of processing elements to use. Similar to an unroll factor for a loop. |
max_grid_width | The maximum number of columns in the grid. This will define the bit width of the cell indices. |
max_grid_height | The maximum number of rows in the grid. This will define the size of the column buffer. |
in_pipe | The pipe to read from. |
out_pipe | The pipe to write to. |
|
inline |
Create and configure the execution kernel.
trans_func | The instance of the transition function to use. |
i_iteration | The iteration index of the input cells. |
target_i_iteration | The final, requested iteration index after the updates. This may be higher than what the kernel can process in one pass. In this case, the kernel will compute the maximum number of iterations. |
grid_width | The number of cell columns in the grid. |
grid_height | The number of cell rows in the grid. |
halo_value | The value of cells outside the grid. |
tdv_kernel_argument | The argument for the TDV system that is passed from the host to the device. This may for example contain global memory accessors. |
|
inline |
Execute the kernel.