Configuration Settings

Each of the configuration parameters is identified by a named constant in the MKL_DFTI module. These named constants have the enumeration type DFTI_CONFIG_PARAM and are declared in the mkl_dfti.h header file.

Though exposed in that header file, the configuration parameters DFTI_FWD_DISTANCE and DFTI_BWD_DISTANCE are specific to the DPC++ DFT routines (see the Data Parallel C++ Developer Reference): their use in another context is neither supported nor currently enabled. All other Intel® oneAPI Math Kernel Library (oneMKL) FFT configuration parameters are readable. Some of them are read-only, while others can be set using the DftiCreateDescriptor or DftiSetValue function.

Values of the configuration parameters fall into the following groups:

The Table "Configuration Parameters" summarizes the information on configuration parameters, along with their types and values. For more details of each configuration parameter, see the subsection describing this parameter.

Configuration Parameters

Configuration Parameter

Type/Value

Comments

Most common configuration parameters, no default, must be set explicitly by DftiCreateDescriptor

DFTI_PRECISION

Named constant DFTI_SINGLE or DFTI_DOUBLE

Precision of the computation.

DFTI_FORWARD_DOMAIN

Named constant DFTI_COMPLEX or DFTI_REAL

Type of the transform.

DFTI_DIMENSION

Integer scalar

Dimension of the transform.

DFTI_LENGTHS

Integer scalar/array

Lengths of each dimension.

Common configuration parameters, settable by DftiSetValue

DFTI_PLACEMENT

Named constant DFTI_INPLACE or DFTI_NOT_INPLACE

Defines whether the result overwrites the input data. Default value: DFTI_INPLACE.

DFTI_FORWARD_SCALE

Floating-point scalar

Scale factor for the forward transform.

Default value: 1.0.

Precision of the value should be the same as defined by DFTI_PRECISION.

DFTI_BACKWARD_SCALE

Floating-point scalar

Scale factor for the backward transform.

Default value: 1.0.

Precision of the value should be the same as defined by DFTI_PRECISION.

DFTI_NUMBER_OF_USER_THREADS

Integer scalar

This configuration parameter is no longer used and kept for compatibility with previous versions of Intel® oneAPI Math Kernel Library (oneMKL).

DFTI_THREAD_LIMIT

Integer scalar

Limits the number of threads for the DftiComputeForward and DftiComputeBackward.

Default value: 0.

DFTI_DESCRIPTOR_NAME

Character string

Assigns a name to a descriptor. Assumed length of the string is DFTI_MAX_NAME_LENGTH.

Default value: empty string.

Data layout configuration parameters for single and multiple transforms. Settable by DftiSetValue

DFTI_INPUT_STRIDES

Integer array

Defines the input data layout.

Note

The default strides are set during creation of the descriptor based on the desired dimension and lengths. For more details, see DFTI_INPUT_STRIDES, DFTI_OUTPUT_STRIDES.

DFTI_OUTPUT_STRIDES

Integer array

Defines the output data layout.

Note

The default strides are set during creation of the descriptor based on the desired dimension and lengths. For more details, see DFTI_INPUT_STRIDES, DFTI_OUTPUT_STRIDES.

DFTI_NUMBER_OF_TRANSFORMS

Integer scalar

Number of transforms.

Default value: 1.

DFTI_INPUT_DISTANCE

Integer scalar

Defines the distance between input data sets for multiple transforms.

Default value: 0.

DFTI_OUTPUT_DISTANCE

Integer scalar

Defines the distance between output data sets for multiple transforms.

Default value: 0.

DFTI_COMPLEX_STORAGE

Named constant DFTI_COMPLEX_COMPLEX or DFTI_REAL_REAL

Defines whether the real and imaginary parts of data for a complex transform are interleaved in one array or split in two arrays.

Default value: DFTI_COMPLEX_COMPLEX.

DFTI_REAL_STORAGE

Named constant DFTI_REAL_REAL

Defines how real data for a real transform is stored. Only the DFTI_REAL_REAL value is supported.

DFTI_CONJUGATE_EVEN_STORAGE

Named constant DFTI_COMPLEX_COMPLEX or DFTI_COMPLEX_REAL

Defines whether the complex data in the backward domain of a real transform is stored as complex elements or as real elements.

DFTI_COMPLEX_REAL is supported only for 1D transforms.

The default value is DFTI_COMPLEX_COMPLEX.

DFTI_PACKED_FORMAT

Named constant DFTI_CCE_FORMAT, DFTI_CCS_FORMAT, DFTI_PACK_FORMAT, or DFTI_PERM_FORMAT

Defines the layout for the elements of the conjugate-even sequence in the backward domain of the real transform (in association with the configuration parameter DFTI_CONJUGATE_EVEN_STORAGE).

The default value is DFTI_CCE_FORMAT.

Note

Transforms greater than 1D support only DFTI_CCE_FORMAT.

Advanced configuration parameters, settable by DftiSetValue

DFTI_WORKSPACE

Named constant DFTI_ALLOW or DFTI_AVOID

Defines whether the library should prefer algorithms using additional memory.

Default value: DFTI_ALLOW.

DFTI_ORDERING

Named constant DFTI_ORDERED or DFTI_BACKWARD_SCRAMBLED

Defines whether the result of a complex transform is ordered or permuted.

Default value: DFTI_ORDERED.

DFTI_DESTROY_INPUT

Named constant DFTI_ALLOW or DFTI_AVOID

Defines whether the input data may be overwritten for out-of-place transforms. Default value: DFTI_AVOID.

Read-Only configuration parameters

DFTI_COMMIT_STATUS

Named constant DFTI_UNCOMMITTED or DFTI_COMMITTED

Readiness of the descriptor for computation.

DFTI_VERSION

String

Version of Intel® oneAPI Math Kernel Library (oneMKL). Assumed length of the string is DFTI_VERSION_LENGTH.

See Also