FFT

通过FFTW Wrapper 使用 MKL DFT 函数

 提起FFT/DFT计算,我们会常常想起两个函数库:FFTW 与Intel MKL.  FFTW 提供一个广为流行关于FFT计算的函数接口。 现有的许多应用,就是基于了FFTW接口的调用。 而Intel MKL 是一个高度优化的数学计算函数。对于一些常用的计算函数,如矩阵运算,方程求解,随机数生成等, 它提供了高性能,对不同平台专门优化的代码。 Intel MKL 提供了一些FFT 计算的函数,但MKL函数接口与FFTW 有所区别。

我原有的程序调用了FFTW函数,如果想使用高效的MKL 的优化代码,除了改写原程序,使用 Intel MKL 的函数,还有没有其它更为方便的的办法呢?
所幸的是,在Intel MKL 中,提供一个针对FFTW接口的Wrapper.  通过这个Wrapper, 程序可以将FFTW函数调用,转化为Intel MKL 的函数调用。 这样,无需修改原程序,我们也能调用 MKL的DFT 计算函数。

我们看看一些具体的步骤:

首先,需要确定程序中FFTW接口的版本
Intel MKL提供针对FFTW 2.x and FFTW 3.x以及MPI FFTW相兼容的wrapper。 其Fortran 与 C 的接口在下面的目录下:

The Intel® Math Kernel Library and its Fast Fourier Transform Routines

By Rezaur Rahman

Introduction

Use these simple and yet powerful APIs provided by the Intel® MKL to port FFTW 2.x and FFTW 3.x code easily to Intel MKL interfaces. Find out how.

  • Intel® Math Kernel Library
  • Inte MKL 11.2
  • Intel IPP
  • FFT
  • DFT
  • FFTW2 wrappers
  • FFTW3 wrappers for C
  • Fortran
  • Intel® MKL FFT Training Material

    This article contains a training material on Intel® MKL Fast Fourier Transforms (FFT) which includes details of MKL DFTI API, example code and parallelization details.
  • Apple OS X*
  • Linux*
  • Microsoft Windows* (XP, Vista, 7)
  • C/C++
  • Intermediate
  • Intel® C++ Compiler
  • Intel® Fortran Compiler
  • Intel® Math Kernel Library
  • FFT
  • MKL FFT usage
  • Performance and Portability Benefits of Ct

    We explain at a high level how Ct works with large problems, uses TBB for threading, and has performance-driven application libraries that port to new Intel Architectures.
  • Intel® Integrated Performance Primitives
  • Intel® Math Kernel Library
  • Intel® Threading Building Blocks
  • Architecture
  • FFT
  • compilation
  • lapack
  • BLAS
  • scalability
  • runtime
  • memory bottlenecks
  • modularity
  • fusion
  • simd-ization
  • Vectorization
  • Subscribe to FFT