Traits#

Traits provide users with information about the FFT description constructed using Operators.

Note

Here we only document the traits that are new to the preview. For existing traits, please refer to the Traits section of the official cuFFTDx documentation.


Description Traits#

Trait

Default value

Description

experimental::
code_type_of<
Description
>::value

experimental::code_type::ptx

Type of code used for FFT compute device functions, either experimental::code_type::ptx or experimental::code_type::ltoir.

Code Type Trait#

cufftdx::experimental::code_type_of<Description>::value
cufftdx::experimental::code_type_of_v<Description>

Type of code to use for the FFT compute device functions, as set by CodeType Operator.

The default value is experimental::code_type::ptx.

Execution Traits#

Execution traits can be retrieved directly from an FFT descriptor that has been configured with Execution Operator. The available execution traits depend on the operator used to build the descriptor; either a Thread Operator or a Block Operator.

Trait

Default value

Description

Description::code

experimental::code_type::ptx

Code type of the device function used to compute the FFT. Applies to both thread and block operators.

Code Trait#

Description::code

Code type of the device function used to compute the FFT. This trait indicates whether the PTX or LTOIR implementation is used.

The default value is experimental::code_type::ptx.

Note

Note that the actual code type may differ from the one specified with the CodeType Operator, as the system will automatically fall back to using a PTX implementation when no LTOIR implementation is available.

Mistmatch between code types can occur under the following scenarios:

  • The FFT descriptions used to generate the LTO database do not match the FFT operators being used. Users can verify consistency by utilizing cufftDescriptionGetTraitInt64 and cuFFTDx Traits.

  • The C++ LTO database header file is not included in the source code, or it is included but the CUDA compiler does not meet the minimum version requirement (see Requirements)

  • The FFT descriptions are not yet supported by the cuFFT library, i.e. CUFFT_NOT_SUPPORTED is returned by cufftDeviceCheckDescription.