私のアプリケーションでは、画像の各行を変換し、フィルターを適用して元に戻す必要があります。
GPUを使って同時に複数のFFTを作れるようにしたい。より正確には、NVIDIA の CUDA を使用しています。さて、いくつかの考慮事項:
- CUDA の FFT ライブラリである CUFFT は、ホストからのみ呼び出しを行うことができます ( https://devtalk.nvidia.com/default/topic/523177/cufft-device-callable-library/ )。
- このトピック ( GPU で FFTW を実行する場合と CUFFT を使用する場合) について、Robert Corvella は次のように述べています。
「cufft ルーチンは、複数のホスト スレッドから呼び出すことができます」。
このすべての FFT を並行して実行するとパフォーマンスが向上すると信じていましたが、Robert は次のようにコメントしています。
「FFT操作のサイズはかなり大きいため、示されているようにカフトライブラリルーチンを呼び出すだけで、速度が向上し、マシンをほぼ完全に利用できるはずです」
それで、これですか?一度に複数の FFT を実行してもメリットはありませんか?
デバイスからの呼び出しをサポートするライブラリはありますか?
代わりに cufftPlanMany() を使用する必要があります (ハングによる「is-there-a-method-of-fft-that-will-run-inside-cuda-kernel」で参照されているか、Robert による前のトピックで参照されているように) ?
または、複数のホスト スレッドを呼び出すのが最善の方法ですか?
(この 2 リンク制限は私を殺している...)
多くの人が同様の状況に直面しているため、私の目的は、この問題に対する最善の解決策について議論することです。NVIDIA が CUFFT でデバイス呼び出しを実装すると、これは廃止される可能性があります。(彼らが取り組んでいると述べたものですが、リリースの予定日はありません - NVIDIA フォーラムでの議論で述べられたもの (最初のリンク))