この例では、2D 高速フーリエ変換 (FFT) の Open Computing Language (OpenCL) 実装を紹介します。この例では、1,024×1,024 複素単精度浮動小数点値の 2D マトリクスを処理します。2D FFT は、各行に適用される 1D FFT と、各列に適用される 1D FFT に分解されます。
この例のコアカーネルは、1D FFT とマトリクスの転置を実行します。ホストプログラムは、この 1D FFT カーネルを 2 回呼び出して 2D 変換を完了します。この例では、2 つの異なる出力データレイアウトを比較し、一方のデータレイアウトが 60% のパフォーマンス向上を実現するなど、多くの最適化が行われています。詳細については、サンプルパッケージをご覧ください。
2D FFT のパフォーマンス
機能
- チャネルベンダーの拡張
- メモリー・アクセス・パターンの最適化
- 複数の同時カーネル
- シングル・ワークアイテム・カーネルと NDRange カーネルの混合
ダウンロード
このデザイン例は、OpenCL™ デバイス (.cl) およびホスト・アプリケーション用のソースコードを提供します。ホスト・アプリケーションをコンパイルするため、Linux* パッケージには Makefile が含まれており、Windows* パッケージには Microsoft* Visual Studio* 2010 プロジェクトが含まれています。
以下のダウンロードは、この例のために提供されています。
このデザインの使用には、ハードウェア・リファレンス・デザイン・ライセンス契約の使用条件が適用されます。
ソフトウェア要件とハードウェア要件
このデザイン例には、以下のツールが必要です。
- インテル® FPGA ソフトウェア・バージョン 17.1 以降
- インテル® FPGA SDK for OpenCL バージョン 17.1 以降
- Linux* の場合: GNU make および gcc
- Windows* の場合: Microsoft* Visual Studio* 2010
インテル® のデザインツールをダウンロードするには、OpenCL™ ダウンロードページをご覧ください。基盤となるオペレーティング・システムの要件は、インテル® FPGA SDK for OpenCL™ の要件と同じです。
OpenCL および OpenCL ロゴは Apple Inc. の商標であり、Khronos の許可を得て使用しています。
* 製品は Khronos 公開の仕様に基づいており、Khronos コンフォーマンス・テスト・プロセスに合格しています。現在のコンフォーマンス条件は、www.khronos.org/conformance で確認できます。