参考文档

  1. https://en.wikipedia.org/wiki/Reduction_Operator

计算优化类术语

Reduction(约简)

在计算机科学中,reduction表示一种运算符类型(满足交换律[Commutative]、结合律[Associative]),常见于并行编程,用来缩减阵列中的元素到单个输出结果。reduction运算符可以将一个计算任务分解为一系列小局部任务,对于一个任务需要满足如下几点才能够使用reduction运算符进行计算:

  • 任务能够从一个阵列缩减为单个标量值
  • 最终的结果能够从各个局部任务中获得

那具体什么运算可以通过reduction来进行并行计算的?

举例:加法[Sum]、乘法[Product]、逻辑算法[And/Or/Xnor/...]、求平均数[Average]都可以使用reduction。

另外还有直方图计算[Histogram]、卷积运算[Convolution]

那有什么运算是不可以通过reduction来进行并行计算的?

举例:矩阵乘法[Matrix Multiplication],因为矩阵乘法不满足交换律。

Tiling(分块)

Tiling可以等价为Split+Reorder两种操作的叠加

Split(循环分解)

Unroll(循环展开/平铺)

Interleave(交错)

Reorder(循环重排序)

Vectorize(向量化/SIMD)

Parallel(并行化)

Fusion(融合)

调度类术语

Stage(阶段)

Pipline(流水线)

Schedule Within Stages(阶段内调度)

Schedule Across Stages(阶段间调度)

Inline Schedule(内联调度)

results matching ""

    No results matching ""