Developer Reference

  • 0.9
  • 09/09/2020
  • Public Content
Contents

DFTI_INPUT_DISTANCE, DFTI_OUTPUT_DISTANCE

The FFT interface in
Intel® oneAPI Math Kernel Library
enables computation of multiple transforms. To compute multiple transforms, you need tospecify the data distribution of the multiple sets of data. The distance between the first data elements of consecutive data sets,
DFTI_INPUT_DISTANCE
for input data or
DFTI_OUTPUT_DISTANCE
for output data, specifies the distribution. The configuration setting is a value of
MKL_LONG
data type
.
The default value for both configuration settings is one. You must set this parameter explicitly if the number of transforms is greater than one (see
DFTI_NUMBER_OF_TRANSFORMS
).
The distance is counted in elements of the data type defined by the descriptor configuration (rather than by the type of the variable passed to the computation functions). Specifically, the
DFTI_FORWARD_DOMAIN, DFTI_COMPLEX_STORAGE
, and
DFTI_CONJUGATE_EVEN_STORAGE
configuration parameters define the type of the elements as shown in Table
"Assumed Element Types of the Input/Output Data"
.
The configuration parameters
DFTI_INPUT_DISTANCE
and
DFTI_OUTPUT_DISTANCE
define the distance within input and output data, and not within the forward-domain and backward-domain data. If the distances in the forward and backward domains differ, set
DFTI_INPUT_DISTANCE
and
DFTI_OUTPUT_DISTANCE
explicitly and then commit the descriptor before calling computation functions.
For in-place transforms (
DFTI_PLACEMENT=DFTI_INPLACE
), the configuration set by
DFTI_OUTPUT_DISTANCE
is ignored when the element types in the forward and backward domains are the same. If they are different, set
DFTI_OUTPUT_DISTANCE
explicitly (even though the transform is in-place). Ensure a consistent configuration for in-place transforms, that is, the locations of the data sets on input and output must coincide.
This example illustrates setting of the
DFTI_INPUT_DISTANCE
configuration parameter:
MKL_LONG dims[] = { nd, …, n2, n1 }; MKL_LONG distance = nd*…*n2*n1; DftiCreateDescriptor( &hand, precision, DFTI_COMPLEX, d, dims ); DftiSetValue( hand, DFTI_NUMBER_OF_TRANSFORMS, (MKL_LONG)howmany ); DftiSetValue( hand, DFTI_INPUT_DISTANCE, distance );
To better understand configuration of the distances, see these code examples in your
Intel® oneAPI Math Kernel Library
directory:
./examples/dftc/source/config_number_of_transforms.c

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804