この記事は、インテル® MKL リファレンス・マニュアルの項目「FFTW3 Interface to Intel® Math Kernel Library」(http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/win/mkl/refman/appendices/mkl_appG_FFTW3_Intro.html?wapkw=(MKL)) の日本語参考訳です。
この記事では、インテル® マス・カーネル・ライブラリー (インテル® MKL) の FFTW3 ラッパーについて説明します。このラッパーは、FFTW3 関数の呼び出しをインテル® MKL のフーリエ変換 (FFT) 関数または三角変換 (TT) ルーチンに変換します。FFTW3 ラッパーの目的は、現在 FFTW3 ライブラリーを使用している開発者が、プログラムのソースコードを変更することなく、インテル® MKL のフーリエ変換関数を使用することです。
ラッパーは、FFTW リリース 3.2 に対応しており、インテル® MKL 10.2 以降で利用できます。FFTW インターフェイスの詳細は、www.fftw.org (英語) を参照してください。ラッパーが使用するインテル® MKL の FFT および TT の機能についての詳細は、フーリエ変換関数 (http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/win/mkl/refman/fft/fft_intro.html#fft_intro) および三角変換ルーチン (http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/win/mkl/refman/pdes/pdes_ttr_Intro.html#pdes_ttr_Intro#pdes_ttr_Intro) を参照してください。
FFTW とインテル® MKL の FFT および TT には機能差があるため、FFTW3 ラッパーは、オリジナルの FFTW 3.2 ライブラリーよりも機能が制限されています。ここでは、FFTW3 ラッパーの制限と使用のヒントを説明します。ただし、ほとんどの FFT タスクは、インテル® MKL の FFTW3 ラッパーで実行できます。インテル® MKL の FFTW3 インターフェイスの制約による問題を解決するため、今後多くの機能をラッパーとインテル® MKL に追加する予定です。
FFTW3 ラッパーはインテル® MKL に統合されています。インテル® MKL の FFTW3 ラッパーを使うための変更は、アプリケーションをインテル® MKL にリンクするだけです。
FFTW3 ラッパーのリファレンス実装も、オープンソースで提供されています。リファレンス実装は、インテル® MKL の interfaces ディレクトリーに含まれています。リファレンス実装を使用して、独自のラッパー・ライブラリーを作成することもできます (独自のラッパー・ライブラリーのビルドを参照)。