gpt4 book ai didi

performance - 2D FFT中的3D FFT分解

转载 作者:行者123 更新时间:2023-12-01 23:00:31 24 4
gpt4 key购买 nike

基本上我正在使用 FFT 解决 3D 中的扩散方程,并行化的方法之一是在 2D FFT 中分解 3D FFT。

如本文所述:https://cmb.ornl.gov/members/z8g/csproject-report.pdf

分解 3d fft 的方法是:

xy 方向的 2d fft
全局转置
z 方向的 1d fft

基本上,我的问题是我不确定如何进行这个全局转置(因为我认为它正在转置我想的 3d 数组)。有人遇到过这个吗?非常感谢。

最佳答案

想想一个带有 nx*ny*nz 的 3d 立方体元素。这些元素的 3d FFT 在数学上是 1-d FFT 的 3 个阶段,每个轴一个:

  • 沿X轴做ny*nz变换,每个变换处理nx个元素
  • nx*nz 沿 Y 轴变换
  • nx*ny 沿 Z 轴变换

  • 更一般地说,N 维 FFT (N>1) 由沿该轴的许多 (N-1) 维 FFT 组成。

    如果信号是真实的,并且你有一个可以返回半频谱的 FFT,那么第 1 阶段的成本大约是它的一半(真正的 FFT 更便宜),其余的阶段需要很复杂,但它们只需要大约一半许多变换。所以成本大约是一半。

    如果您的 1d FFT 可以读取跨步的输入元素并将输出打包到连续的缓冲区中,那么您最终会在每个阶段进行转置。

    就是这样 kissfft执行多维 FFT。

    附言当我需要获得更高维度的心理图片时,我会想到:
    带有数字矩阵 (2d) 的纸页、编号文件的文件夹 (3d)、编号文件柜 (4d)、编号房间 (5d)、编号建筑物 (6d) 等等……所以我可以可视化“文件柜”维度

    关于performance - 2D FFT中的3D FFT分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14407522/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com