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,
)[source]#

用于为 FFT 对象和包装器函数族 fft(), ifft(), rfft(), 和 irfft() 提供选项的数据类。

fft_type#

要执行的 FFT 类型,可用选项包括 'C2C''C2R''R2C'。默认值为复数输入的 'C2C' 和实数输入的 'R2C'

类型:

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

inplace#

指定操作是否为原地操作 (TrueFalse)。如果 inplaceTrue,则操作数将被结果覆盖。默认值为 False

类型:

bool

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。

类型:

logging.Logger

blocking#

一个标志,用于指定执行函数和方法的行为,例如 fft()FFT.execute()。当 blockingTrue 时,执行方法在操作完成之前不会返回。当 blocking"auto" 时,如果输入张量位于 GPU 上且 execution 设置为 ‘CUDA’,则方法会立即返回。当输入张量位于 CPU 上或 execution 指定为 ‘CPU’ 时,执行方法始终会阻塞,以确保用户不会在结果可用之前意外使用结果。默认值为 "auto"

类型:

Literal[True, ‘auto’]

allocator#

一个支持 BaseCUDAMemoryManager 协议的对象,用于分配设备内存。如果未提供分配器,将使用来自库包的内存分配器(对于 PyTorch 操作数,使用 torch.cuda.caching_allocator_alloc(),否则使用 cupy.cuda.alloc())。目前,CPU 执行不允许指定内存池。

类型:

nvmath.memory.BaseCUDAMemoryManager | None