Intelligent-Unrolling:在不规则应用中利用规则模式
分布式、并行与集群计算
2022-10-26 v1 性能
编程语言
摘要
现代优化编译器能够利用内存访问或计算模式来生成向量化代码。然而,由于输入依赖性,此类不规则应用中的模式直到运行时才可知。因此,无论是编译器的静态优化还是基于特定输入的剖面引导优化,都无法预测任意常见输入的模式,从而导致次优的代码生成。为应对这一挑战,我们开发了Intelligent-Unroll,一个自动优化不规则应用并实现向量化的框架。Intelligent-Unroll允许用户使用\textit{code seed}描述计算任务,其中内存访问和计算模式由\textit{feature table}和\textit{information-code tree}表示,并生成高效代码。此外,Intelligent-Unroll采用若干新颖优化技术来优化归约操作以及gather/scatter指令。我们使用稀疏矩阵-向量乘法(SpMV)和图应用对Intelligent-Unroll进行评估。实验结果表明,与最先进的实现相比,Intelligent-Unroll能够生成更高效的向量化代码。
引用
@article{arxiv.1910.13346,
title = {Intelligent-Unrolling: Exploiting Regular Patterns in Irregular Applications},
author = {Changxi Liu and Hailong Yang and Xu Liu and Zhongzhi Luan and Depei Qian},
journal= {arXiv preprint arXiv:1910.13346},
year = {2022}
}