码迷,mamicode.com
首页 > 其他好文 > 详细

Rocket - util - PrefixSum

时间:2019-06-09 00:21:34      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:apply   att   停止   效率   序列   -name   ada   id3   wrapper   

https://mp.weixin.qq.com/s/G2vLP-ncoJzSOgxGGEJkfA

 
简单介绍PrefixSum的实现。
 
?技术图片?
 
1. 基本介绍
 
?技术图片?
把一个序列从前向后逐个执行迭代(assocOp),每针对一个元素执行一遍迭代,针对一整行执行一次迭代(layerOp)。
 
2. PrefixSum
 
?技术图片?
a. layers:抽象方法,返回层数,等于layerOp执行的次数;
b. idLayer: 默认的layerOp,即没有动作,把输入原样返回;
 
3. RipplePrefixSum
 
每次只使用前一个元素对当前元素执行一次迭代,其他元素不进行迭代动作。
?技术图片?
 
apply重构之后为:
?技术图片?
 
a. offset只当前针对第几个元素进行迭代,当迭代到最后一个元素停止:
 
?技术图片?
 
b. 只针对当前元素执行assocOp:
 
?技术图片?
 
offset每次递增1,当offset与当前元素序号相等时,才执行assocOp;
 
c. 当针对当前元素执行完assocOp后,执行一次layerOp:
 
?技术图片?
 
d. 把layerOp的结果,带入下一次迭代:
 
?技术图片?
 
 
一个迭代过程的例子如下:
?技术图片?
 
实际执行的例子如下:
?技术图片?
 
4. DensePrefixSum
 
提升迭代效率,每次迭代一半。
?技术图片?
 
迭代过程如下:
?技术图片?
 
执行过程如下:
?技术图片?
 
5. SparsePrefixSum
 
 
6. 附录
 

Rocket - util - PrefixSum

标签:apply   att   停止   效率   序列   -name   ada   id3   wrapper   

原文地址:https://www.cnblogs.com/wjcdx/p/10992216.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!