GPU 专业小贴士:在 Maxwell 架构上使用共享原子计算快速直方图

举报
ShaderJoy 发表于 2022/01/01 00:54:50 2022/01/01
【摘要】 英文原文 直方图是一种重要的数据表示形式,在计算机视觉、数据分析和医学成像等领域有着广泛的应用。直方图是数据分布在预定义的 bin 上的图形表示。输入数据集和 bin 的数量可能会因领域的不同而有很大的不同,所以让我们关注最常见的用例之一:每个颜色通道使用256个 bin 的图像直方图。即使我们将使用特定的问题设置,同样的算法也可以使...

英文原文

直方图是一种重要的数据表示形式,在计算机视觉、数据分析和医学成像等领域有着广泛的应用。直方图是数据分布在预定义的 bin 上的图形表示。输入数据集和 bin 的数量可能会因领域的不同而有很大的不同,所以让我们关注最常见的用例之一:每个颜色通道使用256个 bin 的图像直方图。即使我们将使用特定的问题设置,同样的算法也可以使其他计算领域受益。

一个基本的串行图像直方图计算比较简单。对于图像的每个像素和每个 RGB 颜色通道,我们寻找一个从 0 到 255 的对应整数 bin ,并将其值递增。原子操作是在并行架构上实现直方图的一种自然方式。根据输入分布的不同,一些 bin 将比其他 bin 使用得更多,因此有必要支持在整个内存层次结构中有效地累加值。这类似于归约和扫描操作,但直方图的主要挑战是,在读取每个元素的值之前不知道其输出位置。因此,不可能创建一个完全避免冲突的通用并行累加方案。得益于 Kepler 中改进的 atomics 性能和Maxwell 中对共享内存 atomics 的本机支持,直方图现在在 GPU 架构上更容易处理。

文章来源: panda1234lee.blog.csdn.net,作者:panda1234lee,版权归原作者所有,如需转载,请联系作者。

原文链接:panda1234lee.blog.csdn.net/article/details/88921405

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。