【问题标题】:Add the same image with different offsets to the accumulating image on GPU将不同偏移量的相同图像添加到 GPU 上的累积图像中
【发布时间】:2015-05-09 05:40:48
【问题描述】:

正如标题所述,我正在尝试将存储在列表中的具有不同偏移量的相同图像添加到累积图像中。

当前的实现在 CPU 上执行此操作,并且使用一些内在函数可以非常快。

但是,对于较大的图像 (2048x2048) 和列表中的许多偏移量 (~10000),性能并不令人满意。

我的问题是,不同偏移量的图像的累积能否在GPU上高效实现?

【问题讨论】:

  • 简短的回答是可以。在 GPU 上,可以并行执行不同目标像素的求和(当然不是全部 400 万,但比在 CPU 上要多得多)。确切的方式当然取决于您选择 cuda、opencl、opengl 还是其他什么。所有这些都可以完成。如果精度是您的应用程序的关键,请注意双精度远比主流 gpu 上的单精度慢。如果您使用单精度,您可能还希望对每个像素使用 Kahan 求和算法以最小化,尤其是在您的数据具有高动态范围的情况下。

标签: image-processing gpu gpgpu


【解决方案1】:

是的,你可以。结果可能会比 CPU 快很多。诀窍是不为每个添加发送数据,甚至不为每个添加启动一个新内核:您拥有的内核应该一次执行一些相当数量的偏移添加,至少 16 个但可能几百个,具体取决于您的典型列表大小(当然您可以拥有多个内核)。

【讨论】:

    猜你喜欢
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 2019-11-28
    相关资源
    最近更新 更多