Allowing destruction of input data

Contents

Allowing destruction of input data#

This page describes how to allow (or forbid) descriptor objects configured for out-of-place operations to overwrite the input data when used in compute functions. When non-native, all the relevant types and enumerations mentioned below belong to the oneapi::mkl::dft namespace and are declared in oneapi/mkl/dft.hpp (file to be included). The usage of prepended namespace specifiers oneapi::mkl::dft is omitted below for conciseness.

Description#

The configuration value associated with the configuration parameter config_param::DESTROY_INPUT of a descriptor object determines whether it is allowed to overwrite the input data provided to a compute functions for out-of-place operations. The only possible values are the self-explanatory config_value::ALLOW and config_value::AVOID.

By default, descriptor objects are configured to avoid overwriting the input data when configured for out-of-place operations. Allowing an object to overwrite the input data may, in some cases,

  • significantly reduce the size of its required workspace;

  • improve the delivered performance.

In particular, allowing input data to be overwritten may be particularly relevant for multidimensional, out-of-place, real, backward DFTs.

Note

By definition, the configuration value associated with the configuration parameter config_param::DESTROY_INPUT is relevant for descriptor objects configured for out-of-place operations, only. It is ignored by descriptor objects configured for in-place operations.