質問

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

これにより、多くの作業を節約できます。

最高、 ハインリッヒ

役に立ちましたか?

解決

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

編集:高速なFFTだけが必要な場合は、GPU上で実行されるCUFFTを試すことができます。これはCUDA SDKの一部です。 AMDのAMCLにはFFTもありますが、これは現在GPUアクセラレーションではありませんが、近日中に追加される可能性があります。

他のヒント

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

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

2つのFFT実装があります。 1つはTime FFTのRadix2間引きで、もう1つはStockham Autosort FFTです。ストックハムは、より大きなサイズ(> 8192)ではCPU(当時3GHz P4シングルコア)の約2〜4倍高速に動作しますが、小さなサイズではCPUとのデータのやり取りが必要ないため、CPUは高速でした。 GPU。

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

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top