![]() |
StencilStream v3.0.0
SYCL-based Stencil Simulation Framework Targeting FPGAs
|
Parameters for the stencil updater. More...
#include <StencilUpdate.hpp>
Public Attributes | |
F | transition_function |
An instance of the transition function type. | |
Cell | halo_value = Cell() |
The cell value to present for cells outside of the grid. | |
uindex_t | iteration_offset = 0 |
The iteration index offset. | |
uindex_t | n_iterations = 1 |
The number of iterations to compute. | |
sycl::device | device = sycl::device() |
The device to use for computations. | |
bool | blocking = false |
Should the stencil updater block until completion, or return immediately after all kernels have been submitted. | |
bool | profiling = false |
Enable profiling. | |
Parameters for the stencil updater.
bool stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params::blocking = false |
Should the stencil updater block until completion, or return immediately after all kernels have been submitted.
Choosing one option or the other won't effect the correctness: For example, if you choose a non-blocking stencil updater and immediately try to access the grid after the updater has returned, SYCL/OneAPI will block your thread until the computations are complete and it can actually provide you access to the data.
sycl::device stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params::device = sycl::device() |
The device to use for computations.
For some setups, it might be necessary to explicitly select the device to use for computation. This can be done for example with the sycl::ext::intel::fpga_selector_v
class in the sycl/ext/intel/fpga_extensions.hpp
header. This selector will select the first FPGA it sees.
Cell stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params::halo_value = Cell() |
The cell value to present for cells outside of the grid.
uindex_t stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params::iteration_offset = 0 |
The iteration index offset.
This offset will be added to the "actual" iteration index. This way, simulations can "resume" with the next timestep if the intermediate grid has been evaluated by the host.
uindex_t stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params::n_iterations = 1 |
The number of iterations to compute.
bool stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params::profiling = false |
Enable profiling.
Setting this option to true will enable the recording of computation start and end timestamps. The recorded kernel runtime can be fetched using the StencilUpdate::get_kernel_runtime method.
F stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params::transition_function |
An instance of the transition function type.
User applications may store runtime parameters here.