3

我正在寻找一些实现 3d 卷积的源代码。理想情况下,我需要 C++ 代码或 CUDA 代码。如果有人能指出一个好的和快速的实现,我将不胜感激:-)

干杯

4

3 回答 3

3

你明白卷积通常是通过使用 fft 来完成的吗?例如,参见http://en.wikipedia.org/wiki/Convolution

所以你需要一个 fft 库。

计算卷积的最快方法建议http://www.fftw.org/(对于传统 cpu)。

对于 cuda,使用 cufft - http://www.gsic.titech.ac.jp/~ccwww/tebiki/tesla_e/tesla6_e.html

于 2009-12-23T00:24:30.540 回答
0

英特尔有一个很好的例子——使用 SSE + OpenMP 和它的串行版本。该代码主要用于分析串行和并行方法,但以一种很好的方式完成。http://software.intel.com/en-us/articles/16bit-3d-convolution-sse4openmp-implementation-on-penryn-cpu/

于 2010-04-14T17:09:43.533 回答
0

您是注册开发者吗?如果是这样,您应该下载 3.0 SDK 并查看 FDTD3d 示例,该示例显示了应用于显式有限差分应用程序的 3d 卷积。在 2.3 SDK 中有一个名为 3dfd 的示例,它与此类似(现在已被替换)。

如果您的脉冲响应很短,使用这种方法可能比 FFT 更有效。

于 2009-12-23T09:04:13.323 回答