FFTOptions#
-
class nvmath.
fft. FFTOptions( - fft_type: Literal['C2C', 'C2R', 'R2C'] | None = None,
- inplace: bool = False,
- last_axis_parity: Literal['even', 'odd'] | None = 'even',
- last_axis_size: None = None,
- 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,
用于为
FFT
对象和包装器函数族fft()
,ifft()
,rfft()
, 和irfft()
提供选项的数据类。- fft_type#
要执行的 FFT 类型,可用选项包括
'C2C'
、'C2R'
和'R2C'
。默认值为复数输入的'C2C'
和实数输入的'R2C'
。- 类型:
Literal[‘C2C’, ‘C2R’, ‘R2C’] | None
- last_axis_parity#
对于复数到实数 FFT(对应于
fft_type='C2R'
),指定结果中最后一个轴的大小应该是偶数还是奇数。偶数大小计算为 \(2 * (m - 1)\),其中 \(m\) 是操作数最后一个轴的大小,奇数大小计算为 \(2 * (m - 1) + 1\)。指定的值应为'even'
或'odd'
,默认值为'even'
。- 类型:
Literal[‘even’, ‘odd’] | None
- last_axis_size#
参见
last_axis_parity
。Deprecated since version 0.2.1:
last_axis_size
将在 0.3.0 版本中移除。请改用last_axis_parity
。- 类型:
None
- result_layout#
用于结果的布局,可以是
'natural'
或'optimized'
。对于'natural'
选项,结果布局与操作数的布局相同。默认值为'optimized'
,通常提供更好的性能,如果用户不关心结果布局与操作数布局是否匹配,则应使用此选项。但是,在极少数情况下,根据设备类型、操作数的形状和步幅以及 FFT 维度,'natural'
布局可能会表现更好。如果指定inplace
为 True,则忽略此选项。- 类型:
Literal[‘natural’, ‘optimized’] | None
- device_id#
CUDA 设备序号(如果操作数位于 CPU 上则使用)。如果未指定,将使用设备 0。
Deprecated since version 0.2.0:
device_id
应指定为execution
选项,请参阅ExecutionCUDA.device_id
。- 类型:
int | None
- logger#
Python Logger 对象。如果未提供 logger 对象,将使用根 logger。
- 类型:
- blocking#
一个标志,用于指定执行函数和方法的行为,例如
fft()
和FFT.execute()
。当blocking
为True
时,执行方法在操作完成之前不会返回。当blocking
为"auto"
时,如果输入张量位于 GPU 上且execution
设置为 ‘CUDA’,则方法会立即返回。当输入张量位于 CPU 上或execution
指定为 ‘CPU’ 时,执行方法始终会阻塞,以确保用户不会在结果可用之前意外使用结果。默认值为"auto"
。- 类型:
Literal[True, ‘auto’]
- allocator#
一个支持
BaseCUDAMemoryManager
协议的对象,用于分配设备内存。如果未提供分配器,将使用来自库包的内存分配器(对于 PyTorch 操作数,使用torch.cuda.caching_allocator_alloc()
,否则使用cupy.cuda.alloc()
)。目前,CPU 执行不允许指定内存池。- 类型:
另请参阅
ExecutionCUDA
,ExecutionCPU
,FFT
,fft()
,ifft()
,rfft()
, 和irfft()
。