4

HLSL/GLSL/cg での逆 FFT の実装を知っている人はいますか ... ?

それは私に多くの仕事を救うでしょう。

最高、ハインリッヒ

4

4 に答える 4

6

すでにFFTの実装がありますか?すでにご存知かもしれませんが、逆数は、N個の入力の順序を逆にし、それらをFFTで処理し、結果をNで除算することで計算できます。

于 2009-10-25T03:36:44.037 に答える
3

DirectX11 には、計算シェーダーの FFT サンプルが付属しています ( DX11 August SDK リリース ノートを参照)。PereAllenWebb が指摘しているように、これは逆 FFT にも使用できます。

編集:高速FFTが必要な場合は、GPUで実行されるCUFFTを試すことができます。これは CUDA SDK の一部です。AMD の AMCL にも FFT があり、これは現在 GPU で高速化されていませんが、これは間もなく追加される可能性があります。

于 2009-10-25T08:09:21.287 に答える
2

私は 2005 年に 7800GTX ハードウェアに 1D FFT を実装しました。これは CUDA などの前であったため、Cg を使用して手動で FFT を実装する必要がありました。

2 つの FFT 実装があります。1 つは Radix2 Decimation in Time FFT で、もう 1 つは Stockham Autosort FFT です。ストックハムは、より大きなサイズ (> 8192) の場合、CPU (当時は 3GHz P4 シングル コア) よりも約 2 ~ 4 倍高速に実行されますが、小さいサイズの場合、GPU との間でデータをシフトする必要がないため、CPU の方が高速でした。 .

シェーダー コードに興味がある場合は、お気軽にご連絡ください。メールでお送りします。これは個人的なプロジェクトによるものであり、商用著作権の対象ではありません。CUDA (および同様の) 実装は、私の実装よりもはるかに優れていると思いますが、学習の観点からは、自分でコードを書いたり勉強したりするよりも優れたものはありません!

于 2011-12-31T15:13:09.183 に答える
0

グラフィックス (およびその他の) ハードウェアでの汎用コンピューティングの標準である OpenCL を見てみるとよいでしょう。
ウィキペディアの記事には、標準 FFT の OpenCL の例が含まれています:
http://en.wikipedia.org/wiki/OpenCL#Example

OS X 10.6 を搭載した Mac を使用している場合は、開発者ツールをインストールするだけで OpenCL 開発を開始できます。また、ハードウェア ベンダーが Windows で基本的な OpenCL ドライバーのサポートを既に提供していると聞きました。

于 2009-10-25T08:12:53.013 に答える