摘要:随着处理器技术的不断发展,SIMD(Single Instruction Multiple Data)向量化已经在各个领域得到了广泛的应用。然而,过去的研究主要集中在循环和基本块上,而全函数向量化可以更好地利用SIMD指令的优势,从而提高应用程序的性能。本文提出了一种基于指导语句的函数向量化方法。首先,在涉及函数调用的循环上加上一种较为简单的指导语句,即可对循环中涉及函数调用的指令进行向量化。其次,对于被调函数的向量化采用全函数向量化的方式,生成向量化的全函数而不是对其内联。最后,处理循环中的函数调用点,生成向量化的函数调用指令。这种方法可以充分利用SIMD指令的优势,提高应用程序的性能。从ISPC基准测试和SIMD库基准测试中选取了10个基准测试来评估我们的方法,实验结果表明该方法与标量相比,平均加速比达到了6.949倍。
文章目录
1 引言
2 背景知识
2.1 基本块级向量化
2.2 循环级向量化
2.3 函数级向量化
3 基于指导语句的函数向量化流程
3.1 解析指导语句确定向量化循环
3.2 预转换
3.3 向量化分析
3.3.1 向量形状介绍
3.3.2 形状传播
3.4 掩码生成
3.5 选择生成
3.6 CFG线性化
3.7 向量化代码生成
4 评估
结束语