【问题标题】:Does convolution in ArrayFire use FFT?ArrayFire 中的卷积是否使用 FFT?
【发布时间】:2015-03-25 19:52:26
【问题描述】:

我期待在我们的一个开源工具包中使用高斯核导数(最高 2/3 阶)对大型医学图像(512 x 512 x 1000 双倍)加速卷积。我们目前通过 FFT 进行这种卷积。

在朋友推荐了 ArrayFire 并阅读了这个post 之后,我想看看我是否可以采用这个工具包。尽管我目前只对 CUDA 感兴趣,因为这就是我手头的东西,这似乎是一项巨大的努力,并使我们能够处理多个后端。

我在论坛上读到了这个post,上面说 ArrayFire 中的卷积在特定内核大小之后切换到频域。我查看了 cuda 文件 convolve.cu,但我没有在 ArrayFire 或任何 cuFFT 内容中找到对 fft 的任何调用。我错过了什么吗?

接下来,我想直接在频域中构造高斯核的导数,与图像 FFT 相乘并将其返回。但是我想比较在空间和频率域中创建卷积核之间的速度提升。此外,ArrayFire 似乎没有 3D 高斯核。

【问题讨论】:

    标签: c++ cuda gpu arrayfire


    【解决方案1】:

    您的观察是正确的,我们还没有实现更大内核大小的 fft 回退。但是,我们正在努力在接下来的几周内添加此功能。您在应用程序中使用的内核大小是多少?

    我们目前没有实现 3D 高斯核函数。但我相信它可以使用 ArrayFire 中启用 JIT 的元素明智操作轻松实现。有关如何使用元素明智操作的示例,请查看here

    【讨论】:

    • 视具体问题而定。我猜大概是 40x40x40。但是对于高内核大小,人们可能会缩小图像并通过高斯图像金字塔运行东西。
    猜你喜欢
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 2022-11-29
    • 2016-08-18
    • 2016-12-31
    • 2013-08-25
    相关资源
    最近更新 更多