アプリケーションのビルド

インテル® oneMKL特集
この記事は、インテル® MKL リファレンス・マニュアルの項目「インテル® マス・カーネル・ライブラリーの FFTW3 インターフェイス」の一部です。

通常、オリジナルの FFTW ライブラリーの代わりに FFTW3 ラッパーを使用してアプリケーションをビルドする場合、リンク段階でインテル® マス・カーネル・ライブラリー (インテル® MKL) を追加するだけで済みます (『インテル® MKL ユーザーズガイド』の「アプリケーションとインテル® マス・カーネル・ライブラリーのリンク」セクションを参照)

アプリケーションを再コンパイルする際、FFTW3 バージョンとの競合を回避するため、ヘッダーファイルの検索パスにサブディレクトリー include\fftw を追加します。

場合によっては、次の推奨事項に従ってアプリケーションを変更する必要があります。

  • アプリケーションには次のファイルをインクルードする必要があります。

    #include “fftw3.h”

    これは、すでにインクルードされているかもしれません。

  • アプリケーションに次のファイルをインクルードする必要はありません。

    #include “mkl_dfti.h”

  • アプリケーションに次のファイルをインクルードする必要はありません。

    #include “fftw3_mkl.h”

    これは、MKL_RODFT00 定数を使用する場合のみ必要です。

  • インテル® MKL への FFTW3 ラッパーは、FFTW3 の全機能を提供するわけではないため、プラン生成関数から返されるプランが NULL かどうかアプリケーションがチェックしていない場合、このチェックを実装する必要があります。

  • オリジナルの FFTW3 関数とは違い、ラッパーの実行関数はスレッドセーフではないため、マルチスレッド・アプリケーションの場合、共有プランには注意が必要です。fftw3_mkl.number_of_user_threads の設定に関する注意事項 (http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/win/mkl/refman/appendices/mkl_appG_FFTW3_Using_Wrappers.html#SetThreadsNumber) を参照してください。

タイトルとURLをコピーしました