参考文档
计算优化类术语
Reduction(约简)
在计算机科学中,reduction表示一种运算符类型(满足交换律[Commutative]、结合律[Associative]),常见于并行编程,用来缩减阵列中的元素到单个输出结果。reduction运算符可以将一个计算任务分解为一系列小局部任务,对于一个任务需要满足如下几点才能够使用reduction运算符进行计算:
- 任务能够从一个阵列缩减为单个标量值
- 最终的结果能够从各个局部任务中获得
那具体什么运算可以通过reduction来进行并行计算的?
举例:加法[Sum]、乘法[Product]、逻辑算法[And/Or/Xnor/…]、求平均数[Average]都可以使用reduction。
另外还有直方图计算[Histogram]、卷积运算[Convolution]
那有什么运算是不可以通过reduction来进行并行计算的?
举例:矩阵乘法[Matrix Multiplication],因为矩阵乘法不满足交换律。
Tiling(分块)
Split(循环分解)
Unroll(循环展开/平铺)
Interleave(交错)
Reorder(循环重排序)
Vectorize(向量化/SIMD)
Parallel(并行化)
Fusion(融合)
调度类术语
Stage(阶段)
Pipline(流水线)
Schedule Within Stages(阶段内调度)
Schedule Across Stages(阶段间调度)
Inline Schedule(内联调度)
正在补充中…