FFTOptions#

class nvmath.distributed.fft.FFTOptions(
fft_type: Literal['C2C', 'C2R', 'R2C'] | None = None,
reshape: bool = True,
last_axis_parity: Literal['even', 'odd'] = 'even',
logger: Logger | None = None,
blocking: Literal[True, 'auto'] = 'auto',
)[source]#

A data class for providing options to the FFT object and the family of wrapper functions fft(), ifft(), rfft(), and irfft().

fft_type#

The type of FFT to perform, available options include 'C2C', 'C2R', and 'R2C'. The default is 'C2C' for complex input and 'R2C' for real input.

Type:

Literal[‘C2C’, ‘C2R’, ‘R2C’] | None

reshape#

Reshape the output distribution to the same slab distribution used by the input. This only applies when using a Slab distribution. The default is True.

Type:

bool

last_axis_parity#

For complex-to-real FFT (corresponding to fft_type='C2R'), specify whether the global size of the last axis in the result should be even or odd. The even size is calculated as \(2 * (m - 1)\), where \(m\) is the size of the last axis of the operand, and the odd size is calculated as \(2 * (m - 1) + 1\). The specified value should be either 'even' or 'odd', with the default being 'even'.

Type:

Literal[‘even’, ‘odd’]

logger#

Python Logger object. The root logger will be used if a logger object is not provided.

Type:

logging.Logger

blocking#

A flag specifying the behavior of the execution functions and methods, such as fft() and FFT.execute(). When blocking is True, the execution methods do not return until the operation is complete. When blocking is "auto", the methods return immediately when the input tensor is on the GPU. The execution methods always block when the input tensor is on the CPU, to ensure that the user doesn’t inadvertently use the result before it becomes available. The default is "auto".

Type:

Literal[True, ‘auto’]

See also

FFT, fft(), ifft(), rfft(), and irfft().