主页期刊介绍编委会编辑部服务介绍道德声明在线审稿编委办公English
2020-2021年专刊出版计划 微信服务介绍 最新一期:2020年第10期
     
在线出版
各期目录
纸质出版
分辑系列
论文检索
论文排行
综述文章
专刊文章
美文分享
各期封面
E-mail Alerts
RSS
旧版入口
中国科学院软件研究所
  
投稿指南 问题解答 下载区 收费标准 在线投稿
魏帅,赵荣彩,姚远.面向SLP 的多重循环向量化.软件学报,2012,23(7):1717-1728
面向SLP 的多重循环向量化
Loop-Nest Auto-Vectorization Based on SLP
投稿时间:2011-04-19  修订日期:2011-07-21
DOI:10.3724/SP.J.1001.2012.04106
中文关键词:  SIMD  向量化  依赖关系分析  多重循环  超字并行
英文关键词:SIMD (single instruction multiple data)  vectorization  data dependence analysis  nested loop  SLP (superword level parallelism)
基金项目:国家高技术研究发展计划(863)(2009AA012201); “核高基”国家科技重大专项(2009ZX01036)
作者单位E-mail
魏帅 解放军信息工程大学 信息工程学院,河南 郑州 450002 weis0906@163.com 
赵荣彩 解放军信息工程大学 信息工程学院,河南 郑州 450002  
姚远 解放军信息工程大学 信息工程学院,河南 郑州 450002  
摘要点击次数: 3134
全文下载次数: 3559
中文摘要:
      如今,越来越多的处理器集成了SIMD(single instruction multiple data)扩展,现有的编译器大多也实现了自动向量化的功能,但是一般都只针对最内层循环进行向量化,对于多重循环缺少一种通用、易行的向量化方法.为此,提出了一种面向SLP(superword level parallelism)的多重循环向量化方法,从外至内依次对各个循环层次进行分析,收集各层循环对应的一些影响向量化效果的属性值,主要包括能否对该循环进行直接循环展开和压紧、有多少数组引用相对于该循环索引连续以及该循环所包含的区域等,然后根据这些属性值决定在哪些循环层次进行直接循环展开和压紧,最后通过SLP 对循环中的语句进行向量化.实验结果表明,该算法相对于内层循环向量化和简单的外层循环向量化平均加速比提升了2.13 和1.41,对于一些常用的核心循环可以得到高达5.3 的加速比.
英文摘要:
      Nowadays, more and more processors are integrated with SIMD (single instruction multiple data) extensions, and most of the compilers have applied automatic vectorization, but the vectorization usually targets the innermost loop, there have been no easy vectorization approaches that deal with the loop nest. This paper brings out an automatic vectorization approach to vectorize nested loops form outer to inner. The paper first analyzes whether the loop can do direct unroll-and-jam through dependency analysis. Next, this study collects the values about the loop that will influence vectorization performance, including whether it can do direct unroll-and-jam, the number of array references that are continuous for this loop index and the loop region. Moreover, the study also presents an aggressive algorithm that will be used to decide which loops need to do unroll-and-jam at last generate SIMD code using SLP (superword level parallelism) algorithm. The test results on Intel platform show that the average speedup factor of some numerical/video/communication kernels achieved by this approach is 2.13/1.41, better than the innermost loop vectorization and simple outer-loop vectorization, the speedup factor of some common kernels can reach 5.3.
HTML  下载PDF全文  查看/发表评论  下载PDF阅读器
 

京公网安备 11040202500064号

主办单位:中国科学院软件研究所 中国计算机学会 京ICP备05046678号-4
编辑部电话:+86-10-62562563 E-mail: jos@iscas.ac.cn
Copyright 中国科学院软件研究所《软件学报》版权所有 All Rights Reserved
本刊全文数据库版权所有,未经许可,不得转载,本刊保留追究法律责任的权利