2

私は Cooley Tukey アルゴリズムを研究し、理解しました。これらのカーネルまで、CUDA convolutionFFT2D の例ですべてを取得しました。

spProcess2D 呼び出し -> 多くの spProcess2D_kernel を呼び出す -> spPostprocessC2C、mulAndScale、および spPreprocessC2C

完全なコードは次のとおりです: http://nopaste.info/30c13e44fe.html (convolutionFFT2D.cu、ここに spProcess2D 関数があります) http://nopaste.info/78d22afac2.html (convolutionFFT2D.cuh、ここに他の関数があります)

私はすでにすべてのnvidia sdkの論文を読んでいますが、これらの機能が何をするのかまだわかりません(それらは回転を使用しますが、クーリー・テューキーのアルゴリズムのようには見えません)

できれば助けてください、または少なくとも私の問題を解決する場所を教えてください

更新: このリンクを見つけました: http://cnx.org/content/m16336/latest/#uid38 これらの関数は幅優先アルゴリズムを実行している可能性がありますか? まだ何とも言えませんが形は同じようです

4

2 に答える 2

1

アルゴリズムは、ここで言及されているアルゴリズムと同様のことを行っているようです。前処理ステップは、サイズ N の実数入力 (パディング後) をサイズ N/2 の複素数入力に並べ替えているように見えます。後処理ステップでは、元の入力配列の FFT を取得するためにデータを並べ替えています。

于 2011-05-24T20:41:24.097 に答える
0

spPostprocessC2C単一の FFT バタフライのように見えます。呼び出しルーチンの複雑さは、FFT アルゴリズムを CUDA の SIMT モデルに適合させることに起因しています。

おそらく、達成しようとしていることを説明した場合 (この特定の FFT 実装がどのように機能するかを理解するだけでなく)、より具体的な答えが得られる可能性があります。

于 2011-05-17T08:16:18.207 に答える