Runtime Composition of Iterations for Fusing Loop-carried Sparse Dependence
Runtime Composition of Iterations for Fusing Loop-carried Sparse Dependence
复制标题
用于融合循环携带稀疏依赖的迭代的运行时组合
DOI:
10.1145/3581784.3607097
复制
发表时间:
2023
期刊:
影响因子:
--
通讯作者:
Mehri Dehnavi, Maryam
中科院分区:
文献类型:
--
作者:
Cheshmi, Kazem;Strout, Michelle;Mehri Dehnavi, Maryam
Dependence between iterations in sparse computations causes inefficient use of memory and computation resources. This paper proposes sparse fusion, a technique that generates efficient parallel code for the combination of two sparse matrix kernels, where at least one of the kernels has loop-carried dependencies. Existing implementations optimize individual sparse kernels separately. However, this approach leads to synchronization overheads and load imbalance due to the irregular dependence patterns of sparse kernels, as well as inefficient cache usage due to their irregular memory access patterns. Sparse fusion uses a novel inspection strategy and code transformation to generate parallel fused code optimized for data locality and load balance. Sparse fusion outperforms the best of unfused implementations using ParSy and MKL by an average of 4.2× and is faster than the best of fused implementations using existing scheduling algorithms, such as LBC, DAGP, and wavefront by an average of 4× for various kernel combinations.