【问题标题】:Output Buffer Requirements for MKL FFTMKL FFT 的输出缓冲器要求
【发布时间】:2018-01-10 04:35:03
【问题描述】:

我正在使用 MKL 2018.1 FFT 功能在 C++ 中编写一个用于 2-D FFT(等级=2)的程序。 MKL 参考似乎没有明确说明DftiComputeForwardDftiComputeBackward 的输出大小是多少(真的吗?)。

使用以下类型的描述符进行实数到复数正向和复数到实数计算所需的输出缓冲区大小是多少?

MKL_LONG status, l[2];
l[0] = 32; l[1] = 100;
status = DftiCreateDescriptor(&my_desc1_handle, DFTI_SINGLE,
    DFTI_REAL, 2, l);
status = DftiCommitDescriptor(my_desc1_handle);
status = DftiSetValue(my_desc1_handle, DFTI_PLACEMENT, DFTI_NOT_INPLACE);

【问题讨论】:

    标签: c++ intel-mkl


    【解决方案1】:

    英特尔数学内核 (MKL) 库参考手册在“DFTI_CCS_FORMAT 用于一维变换”部分中指定了实数到复数转换的大小。

    对于一维变换:

    对于二维变换来说:

    二维变换的DFTI_CCS_FORMAT 下图 说明了二维 (2D) M×N 的存储 CCS 压缩格式的实数数组中的共轭偶数序列。 这种格式需要一个大小为 (M+2)×(N+2) 的数组。行主要布局 并使用从零开始的索引。逻辑上不同的颜色标记 结果的不同部分。 “n/u”表示“未使用”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多