/ / 3Dコンボルーションin C ++ - c ++、3d、cuda、convolution

3dコンボルーションin C ++ - c ++、3d、cuda、convolution

理想的には、私は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/