理想的には、私はC ++コードまたはCUDAコードが必要です。誰かが素敵で高速な実装を教えてくれればと感謝します:-)
乾杯
回答:
回答№1の場合は3畳み込みは通常fftを使って行われることを理解していますか?例えば、 http://en.wikipedia.org/wiki/Convolution
あなたはfftライブラリが必要です。
畳み込みを計算する最速の方法 提案する http://www.fftw.org/ (従来のCPUの場合)。
クダのために、カフを使う - http://www.gsic.titech.ac.jp/~ccwww/tebiki/tesla_e/tesla6_e.html
回答№2の場合は0
あなたは登録された開発者ですか? もしそうなら、3.0 SDKをダウンロードし、FDTD3dサンプルをチェックしてください。このサンプルは明白な有限差分アプリケーションに適用された3dコンボルーションを示しています。 2.3 SDKには3dfdというサンプルがありました。このサンプルは似ています(そして現在置き換えられています)。
インパルス応答が短い場合は、FFTではなくこのアプローチを使用する方が効率的です。
回答№3の場合は0
インテルは、SSE + OpenMPとそのシリアルバージョンを使用した非常に良い例を持っています。このコードは主にシリアルとパラレルのアプローチをプロファイルすることを目的としていますが、うまくいっています。 http://software.intel.com/en-us/articles/16bit-3d-convolution-sse4openmp-implementation-on-penryn-cpu/