fft#

nvmath.device.fft(*, compiler=None, **kwargs)[source]#

创建一个 FFTOptions 对象,该对象封装了一个已编译且可直接使用的 FFT 设备函数。

参数:
  • size (int) – 要计算的 FFT 的大小。

  • precision (str) – 计算精度,指定为 numpy 浮点数据类型,目前支持 numpy.float16numpy.float32numpy.float64

  • fft_type (str) – 指定 FFT 操作类型的字符串,可以是 'c2c', 'c2r''r2c'

  • compiler (str) – 指定设备代码编译器的字符串,目前支持 None (默认) 和 'Numba'

  • code_type (CodeType) – 目标 GPU 代码和计算能力。如果编译器指定为 'Numba',则为可选参数。

  • execution (str) – 指定执行方法的字符串,可以是 'Block''Thread'

  • direction (str) – 指定 FFT 方向的字符串,可以是 'forward''inverse'。 如果未提供,如果指定复数到实数 FFT,则默认为 'forward',如果指定实数到复数 FFT,则默认为 'inverse'

  • ffts_per_block (int) – 每个 CUDA 代码块计算的 FFT 数量,可选。 默认值为 1。 或者,如果提供 'suggested',则会设置为建议值

  • elements_per_thread (int) – 每个线程的元素数量,可选。 默认值为 1。 或者,如果提供 'suggested',则会设置为建议值。

  • real_fft_options (dict) – 一个字典,用于指定实数 FFT 操作的选项,可选。 用户可以指定以下选项

  • dictionary () –

    • 'complex_layout',目前支持 'natural''packed''full'

    • 'real_mode',目前支持 'normal''folded'

另请参阅

FFTOptions 的属性提供了与 CUDA C++ cuFFTDx API 的 1:1 映射。 有关更多详细信息,请参阅 cuFFTDx 文档

示例

示例可以在 nvmath/examples/device 目录中找到。