FFTOptions#
-
class nvmath.
fft. FFTOptions( - fft_type: Literal['C2C', 'C2R', 'R2C'] | None = None,
- inplace: bool = False,
- last_axis_size: Literal['even', 'odd'] | None = 'even',
- result_layout: Literal['natural', 'optimized'] | None = 'optimized',
- device_id: int | None = None,
- logger: Logger | None = None,
- blocking: Literal[True, 'auto'] = 'auto',
- allocator: BaseCUDAMemoryManager | None = None,
A data class for providing options to the
FFT
object and the family of wrapper functionsfft()
,ifft()
,rfft()
, andirfft()
.- 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
- inplace#
Specify if the operation is in-place (
True
orFalse
). The operand is overwritten by the result ifinplace
isTrue
. The default isFalse
.- Type:
- last_axis_size#
For complex-to-real FFT (corresponding to
fft_type='C2R'
), specify whether the 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 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’] | None
- result_layout#
The layout to use for the result, either
'natural'
or'optimized'
. For the'natural'
option, the result layout is the same as that of the operand. The default is'optimized'
, which generally provides much better performance and should be used if the user doesn’t care about the result layout matching the operand layout. However in rare cases, depending on the device type, shape and strides of the operand, and the FFT dimensions, the'natural'
layout may perform better. This option is ignored ifinplace
is specified to be True.- Type:
Literal[‘natural’, ‘optimized’] | None
- device_id#
CUDA device ordinal (used if the operand resides on the CPU). Device 0 will be used if not specified.
Deprecated since version 0.2.0: The
device_id
should be specified asexecution
option, seeExecutionCUDA.device_id
.- Type:
int | None
- logger#
Python Logger object. The root logger will be used if a logger object is not provided.
- Type:
- blocking#
A flag specifying the behavior of the execution functions and methods, such as
fft()
andFFT.execute()
. Whenblocking
isTrue
, the execution methods do not return until the operation is complete. Whenblocking
is"auto"
, the methods return immediately when the input tensor is on the GPU andexecution
is set to ‘CUDA’. The execution methods always block when the input tensor is on the CPU orexecution
is specified to ‘CPU’ to ensure that the user doesn’t inadvertently use the result before it becomes available. The default is"auto"
.- Type:
Literal[True, ‘auto’]
- allocator#
An object that supports the
BaseCUDAMemoryManager
protocol, used to draw device memory. If an allocator is not provided, a memory allocator from the library package will be used (torch.cuda.caching_allocator_alloc()
for PyTorch operands,cupy.cuda.alloc()
otherwise). Currently, CPU execution does not allow specifying a memory pool.- Type:
See also
ExecutionCUDA
,ExecutionCPU
,FFT
,fft()
,ifft()
,rfft()
, andirfft()
.