INPUT_STRIDES and OUTPUT_STRIDES#
The FFT interface provides configuration parameters that define the layout of multidimensional data in the computer memory. For d-dimensional data set, sycl::buffer or USM pointer) provided to the compute function,
where config_param::INPUT_STRIDES and config_param::OUTPUT_STRIDES enable you to get and set these values. The configuration value is a std::vector<std::int64_t> of values
The offset is counted in elements of the data type (complex or real) defined by the descriptor configuration as tabulated below.
The computation functions take containers(sycl::buffer or USM pointer) which are typed according to the descriptor configuration parameters. Specifically, the forward domain which defines the type of transformation and the storage format configuration parameters: config_param::COMPLEX_STORAGE, config_param::REAL_STORAGE and config_param::CONJUGATE_EVEN_STORAGE define the type of the elements as shown here:
Assumed Element Types using complex-to-complex transform and config_param::COMPLEX_STORAGE:
COMPLEX_STORAGE |
Element type of forward data |
Element type of backward data |
|---|---|---|
Complex |
Complex |
|
Real |
Real |
Assumed Element Types using real-to-complex transform and config_param::REAL_STORAGE:
REAL_STORAGE |
Element type of forward data |
Element type of backward data |
|---|---|---|
Real |
Real |
Assumed Element Types using real-to-complex transform and config_param::CONJUGATE_EVEN_STORAGE:
CONJUGATE_EVEN_STORAGE |
Element type of forward data |
Element type of backward data |
|---|---|---|
Real |
Complex |
The config_param::INPUT_STRIDES configuration parameter defines the layout of the input data, while the element type is defined by the forward domain for the compute_forward function and by the backward domain for the compute_backward function. The config_param::OUTPUT_STRIDES configuration parameter defines the layout of the output data, while the element type is defined by the backward domain for the compute_forward function and by the forward domain for compute_backward function.
For in-place transforms ( config_param::PLACEMENT=config_value::INPLACE ), the configuration set by config_param::OUTPUT_STRIDES is ignored when the element types in the forward and backward domains are the same. If they are different, set config_param::OUTPUT_STRIDES explicitly (even though the transform is in-place). Ensure a consistent configuration for in-place transforms, that is, the locations of the first elements on input and output must coincide in each dimension.
Parent topic Configuration Parameters and Enums