Rocket - util - PrefixSum
Posted wjcdx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rocket - util - PrefixSum相关的知识,希望对你有一定的参考价值。
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的主要内容,如果未能解决你的问题,请参考以下文章
Rocket - util - Replacement
Rocket - util - ECC
Rocket - util - AsyncQueue
Rocket - util - MaskGen
Rocket - util - ReduceOthers
Rocket - util - Timer