首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GPU是否适合基于案例的图像过滤?

GPU是否适合基于案例的图像过滤?
EN

Stack Overflow用户
提问于 2011-01-14 23:55:37
回答 5查看 828关注 0票数 7

我正在尝试找出某个问题是否适合使用CUDA将问题放在GPU上。

我基本上是在做一个基于一些边缘检测而变化的箱形滤波器。因此,对于每个像素,基本上有8种情况进行测试,然后发生其余的操作-典型的均值计算等等。在我的循环中出现这些switch语句会不会导致这个问题成为GPU的一个糟糕的候选者?

我真的不确定如何避免switch语句,因为这种边缘检测必须在每个像素上进行。我认为整个图像的边缘检测部分可以从处理算法中分离出来,你可以存储一个与每个像素使用哪个滤波器相对应的缓冲区,但这似乎会给算法增加很多预处理。

编辑:只是给出一些上下文-这个算法已经写好了,OpenMP已经在加速它方面取得了很好的效果。然而,我的开发盒上的8核与GPU中的512相比就相形见绌了。

EN

回答 5

Stack Overflow用户

发布于 2011-01-15 00:35:37

边缘检测、均值计算和互相关可以实现为2D卷积。卷积可以在图形处理器上非常有效地实现(相对于中央处理器的speed-up > 10, up to 100),特别是对于大型内核。因此,在GPU上重写图像过滤可能是有意义的。

虽然我不会使用GPU作为这种方法的开发平台。

票数 1
EN

Stack Overflow用户

发布于 2011-01-15 00:43:19

通常,除非您使用新的CUDA架构,否则您将希望避免分支。因为GPU基本上是SIMD机器,所以管道非常容易受到分支错误预测导致的流水线停滞的影响。

如果你认为使用GPU会带来很大的好处,可以做一些初步的基准测试,以获得一个大致的想法。

如果您想了解如何编写非分支代码,请访问http://cellperformance.beyond3d.com/并查看。

此外,调查在多个CPU核心上运行此问题可能也是值得的,在这种情况下,您可能需要查看OpenCL或英特尔性能库(如TBB)。

另一个针对图形处理器的问题的来源,无论是图形,计算几何或其他,是IDAV,数据分析和可视化研究所:http://idav.ucdavis.edu

票数 1
EN

Stack Overflow用户

发布于 2011-02-04 05:19:00

如果分支中存在空间一致性,那么分支实际上并不是那么糟糕。换句话说,如果您希望图像中相邻的像素块通过相同的分支,则性能影响将降至最低。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4692955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档