投票洗牌优化原子操作

网友投稿 919 2022-05-30

原文

投票和洗牌以优化原子操作

几年前,我开始研究我的第一个CUDA实现的多粒子碰撞动力学(MPC)算法,一个粒子在 cell 内的代码,用来模拟溶剂和溶质之间的流体动力学相互作用。作为该算法的一部分,需要对若干粒子参数进行求和,计算出一定的 cell 参数。这是在 Tesla GPU 架构(比如 GT200 GPU,计算能力1.x)的时代,它的原子操作性能很差。我开发的一种链表方法在 Tesla 和 Fermi 上运行良好,作为原子加法的替代品,但在 Kepler GPU 上表现不佳。然而,在 Kepler 和 Maxwell 体系结构上,原子操作要快得多,所以使用原子加法是有意义的。

这些类型的求和不仅限于 MPC 或 cell 内的粒子代码,在某种程度上,只要按键聚合数据元素,就会发生这种求和。对于具有大量可能值的按键排序和组合的数据元素,在 warp 级别预先组合具有相同键的元素可以显著加快速度。在这篇文章中,我将描述一些算法,这些算法可以加速您对大量键的求和(或类似的聚合),其中线程索引和键之间存在合理的相关性。这通常是适用于至少部分有序的元素的情况。不幸的是,这个参数在两个方向上都适用:如果键的数量很少或者键的分布是随机的,那么这些算法就不适合您。澄清一下:我说的“大量”键是指如果所有的 bin 都放在共享内存中,那么就无法处理这么多键。

GPU加速云服务器

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:#化鲲为鹏,我有话说# 鲲鹏弹性云服务器配置 JAVA 环境
下一篇:学习《IoT在线训练营》课程问题总结分析!
相关文章