私のアプリケーションは(i)FFT境界になり始めているようで、平均サイズが約500x200(幅と高さは常に偶数)の長方形に対して多くの2D相関を行っています。シナリオはいつものとおりです。2 つの FFT (フィールドごとに 1 つ) を実行し、複素数フィールドを乗算してから、iFFT を 1 つ実行します。
そのため、CPU (Intel Q6600、JTransforms libraly を使用) では、プロファイラーによると FFT 変換は約 70% の時間を消費し、GPU (GTX670、cuFFT ライブラリー) では約 50% (つまり、CUDA ではパフォーマンスがいくらか向上しますが、私が欲しいもの)。GPUが完全に飽和していない(帯域幅が制限されている)可能性があることを認識していますが、他のケースから-バッチで計算を行うとアプリケーションの複雑さが大幅に増加します。
質問:
- FFT に費やす時間を少なくとも数回減らすためにさらに何ができるでしょうか?
- FFTW ライブラリを試す必要がありますか (現時点では、JTransforms と比較して大幅に向上するかどうかはわかりません)。
- FFT 変換のために PC に接続できる特殊なハードウェアはありますか?