计算机应用 ›› 2013, Vol. 33 ›› Issue (11): 3149-3154.

• 先进计算 • 上一篇    下一篇

非正规化循环的单指令多数据向量化

侯永生,赵荣彩,高伟[Author]) AND 1[Journal]) AND year[Order])" target="_blank">高伟,高伟[Author]) AND 1[Journal]) AND year[Order])" target="_blank">高伟   

  1. 数学工程与先进计算国家重点实验室(信息工程大学),郑州 450002
  • 收稿日期:2013-05-06 修回日期:2013-07-23 出版日期:2013-11-01 发布日期:2013-12-04
  • 通讯作者: 高伟
  • 作者简介:侯永生(1978-),男,河南郑州人,博士研究生,主要研究方向:先进编译技术;赵荣彩(1957-),男,河南洛阳人,教授,博士生导师,博士,主要研究方向:高性能计算、先进编译技术、反编译技术;高伟(1988-),男,黑龙江齐齐哈尔人,博士研究生,主要研究方向:先进编译技术;高伟(1989-),男,吉林桦甸人,硕士研究生,主要研究方向:先进编译技术。

Single instruction multiple data vectorization of non-normalized loops

HOU Yongsheng,ZHAO Rongcai,GAO Wei[Author]) AND 1[Journal]) AND year[Order])" target="_blank">GAO Wei,GAO Wei[Author]) AND 1[Journal]) AND year[Order])" target="_blank">GAO Wei   

  1. State Key Laboratory of Mathematical Engineering and Advanced Computing (Information Engineering University), Zhengzhou Henan 450002, China
  • Received:2013-05-06 Revised:2013-07-23 Online:2013-12-04 Published:2013-11-01
  • Contact: GAO Wei

摘要: 针对非正规化循环的上下界、步长等循环信息不确定的问题,解决了循环条件为逻辑表达式、增量减量语句和do-while循环的正规化问题。对不能正规化的循环提出了一种展开压紧算法,并用超字并行向量化方法发掘展开压紧的结果。实验结果表明,与现有的非正规化循环的单指令多数据(SIMD)向量化方法相比,所提出的转换方法和展开压紧方法能够更好地发掘非正规化循环的向量化特性,生成代码的性能加速比提高了6%以上。

关键词: 非正规化循环, 单指令多数据向量化, 展开压紧, 依赖关系分析

Abstract: Concerning that the upper, lower bounds and stride of the non-normalized loop are uncertain, some issues were normalized based on a transform method such as that loop conditions were logical expression, increment-reduction statement and do-while. An unroll-jam method was proposed to deal with the loops that cannot be normalized, which mined the unroll-jam results by Superword Level Parellelism (SLP) vectorization. Compared with the existing Single Instruction Multiple Data (SIMD) vectorization method for non-normalized loops, the experimental results show that the transform method and unroll-jam method are better to explore the parallelism of the non-normalized loops, which can improve the performance by more than 6%.

Key words: non-noramlized loop, Single Instruction Multiple Data (SIMD) vectorization, unroll and jam, data dependence analysis

中图分类号: