GPU 专业小贴士:在 Maxwell 架构上使用共享原子计算快速直方图
【摘要】
英文原文
直方图是一种重要的数据表示形式,在计算机视觉、数据分析和医学成像等领域有着广泛的应用。直方图是数据分布在预定义的 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)