2010-11-19 14 views
8

OpenCLを使用してGPUで実行するための一般的なFFTライブラリはありますか?私の知る限りでは、Apple2のPowerCLad FFTのサンプルコードだけがこのようなコードを利用できますか?GPL用のOpenCL FFTライブラリ?

このようなライブラリは、2の累乗以外の変換サイズに対して存在しますか?そうでない場合は、Apple OpenCLサンプルを変更するのは簡単かどうかですか?

私は画像処理アプリケーションを、2の累乗でない変換サイズで見ています。バッチ処理されたFFTを一括して処理する必要があります。

答えて

2

私は現在開発中のOpenCL FFTライブラリを知っていますが、 ですが、最初のリリースでは2の累乗でない変換サイズを持つ予定はありません。

アプリケーションに関する情報を提供できますか?多くの人が使用できるものなら、その機能の優先順位を上げることが役に立ちます。

+0

これはどのライブラリを共有していますか? – rotoglup

+0

@rotoglup上記の私のコメントは、AMDのclAmdFftライブラリを指していました。私は数年前の1.0のリリースに関わっていましたが、2の非力をサポートしていませんでしたが、その後のリリースでは他にもいくつかの主要な要素が追加されています。 http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-math-libraries/ –

2

SHOC benchmark suiteからFFTを含むいくつかのOpenCLコードサンプルをダウンロードできます。

+0

可能なPythonバインディングがあるが、これが唯一の1次元FFTの、2のべき乗の...が、それにもかかわらず、非常に便利です、ありがとう – Neo

+0

ナイス!これらのライブラリの1つを自分でコーディングしています。巨人の肩の上に建てるのはうれしいよ:) –

+0

これまでどんな運があったのか......。 – Neo

1

OpenMM(https://simtk.org/home/openmm)には、OpenCL用の3D FFTが含まれています。特定のケース用に設計されているため、直接的にはうまくいかない場合があります。3D FFTでは、各ディメンションがローカルメモリに保存できるほど小さい(例:100x100x100グリッド)。しかし、それは非2の大きさ(基数2、3、4、5)をサポートしているので、あなたはそれを適応させることができるかもしれません。

0

APPML-FFTライブラリをご覧ください。 2つの変換の力のためにまだそれはありますが。

2

ヌルパディングを使用して、2の累乗FFTアルゴリズムに任意の長さのデータを合わせることができます。それがあなたのアプリケーションに合っているかどうか検討してください。 サンプル数を増やすと出力領域の「ステップサイズ」が小さくなり、出力解像度が高くなります。

1

VexCLは、任意のベクトル式を入力として受け入れ、任意の次元数の多次元変換を実行し、任意のサイズのベクトルをサポートするOpenCL用のFFTの実装を提供します。 READMEの関連部分にはlinkがあります。

関連する問題