使用Intel MKL FFTW接口函数

时间:2021-07-20 04:18:44
Intel MKL提供与FFTW 2.x and 3.x 相兼容的wrapper函数。FFTW的用户可以用MKL FFT 函数替代原有程序的FFT变换, 获得更高的性能。 

下面是使用MKL FFTW的步骤:

1) 确定FFTW接口版本。
Intel MKL 支持 FFTW 2.x 与 3.x 的 Fortran 与 C 的接口。
相应的接口分别在下面的目录下:  
/opt/intel/mkl/ /10.x.xxx/interfaces/fftw2xc 
/opt/intel/mkl/10.x.xxx /interfaces/fftw2xf
/opt/intel/mkl/10.x.xxx /interfaces/fftw3xc
/opt/intel/mkl/10.x.xxx /interfaces/fftw3xf

2)Build 接口函数。
创建接口函数的步骤可以查看MKL FFTW Wrapper的文档(/opt/intel/mkl/10.x.xxx/doc/fftw2xmkl_notes.htm(fftw3xmkl_notes.htm).  


下面是一个用Intel Compiler, 在EM64的Linux 平台上创建一个 FFT2.x Fortran 接口的例子: 
  >cd /opt/intel/mkl/10.x.xxx /interfaces/fftw2xf   
  >make libem64t F=intel precision=MKL_DOUBLE 
  # Itaniums使用 make lib64 F=intel precision=MKL_DOUBLE
  

3)链接MKL函数与FFTW 接口函数。
成功编译FFTW接口后, FFTW接口函数在 /opt/intel/mkl/10.x.xxx/lib/em64t (Itaniums平台为:/opt/intel/mkl/10.x.xxx/lib/64/) 目录下。 

libfftw2xf_intel.a 是Intel 编译器 FFTW2.x Fortran接口,GCC 编译器的类库名称与此类似。 
 
链接程序时,只需要链接FFTW接口函数与Intel DFT MKL函数。下面是在EM64T的平台上,使用Intel Compiler 的一个例子: 

>ifort -I/opt/intel/mkl/10.x.xxx/include/ -I/opt/intel/mkl/10.x.xxx/include/fftw/ mycode.f -L/opt/intel/mkl/10.x.xxx/lib/em64t/ -lfftw2xf_intel -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lguide -pthread

4 个解决方案

#1


补充说一下,如果打算自己用Intel编译器编译FFTW的源代码,可以在Intel的网站上找到一篇文章,里面介绍了具体的步骤   http://www.intel.com/support/performancetools/sb/CS-027474.htm 。

#2


支持下

#3


顶```````

#4


顶一下,谢谢楼主了

#1


补充说一下,如果打算自己用Intel编译器编译FFTW的源代码,可以在Intel的网站上找到一篇文章,里面介绍了具体的步骤   http://www.intel.com/support/performancetools/sb/CS-027474.htm 。

#2


支持下

#3


顶```````

#4


顶一下,谢谢楼主了