计算机工程

• 先进计算与数据处理 • 上一篇    下一篇

一种单指令多数据向量化归约方法

韩林,高伟,王冬,王鹏翔,李颖颖   

  1. (信息工程大学 网络空间安全学院,郑州 450000)
  • 收稿日期:2016-02-24 出版日期:2017-07-15 发布日期:2017-07-15
  • 作者简介:韩林(1978—),男,博士,主研方向为先进编译技术、高性能计算;高伟,博士研究生;王冬、王鹏翔,硕士研究生;李颖颖,硕士。
  • 基金项目:
    数学工程与先进计算国家重点实验室开放课题(2013A11);郑州市科技局前沿技术研究计划项目(141PQYJS558)。

A Single Instruction Multiple Data Vectorization Reduction Method

HAN Lin,GAO Wei,WANG Dong,WANG Pengxiang,LI Yingying   

  1. (Institute of Cybersecurity,Information Engineering University,Zhengzhou 450000,China)
  • Received:2016-02-24 Online:2017-07-15 Published:2017-07-15

摘要: 单指令多数据(SIMD)扩展部件旨在发掘多媒体程序和科学计算程序的数据级并行,归约操作引起的真依赖给发掘程序中的数据级并行带来了阻碍。但体系结构和指令集的差异,使得面向向量机的归约向量化方法并不适用于SIMD扩展部件。针对上述问题,提出一种面向SIMD扩展部件的归约向量代码生成方法,以及归约的识别方法,利用向量移位指令实现向量代码生成。基于SPEC2006标准测试集的测试结果表明,与未利用归约向量化技术前相比,利用该归约向量化方法后的向量化加速比提高34%,从而验证了该方法的有效性。

关键词: 单指令多数据向量化, 归约, 依赖分析, 代码生成, 并行性

Abstract: Single Instruction Multiple Data(SIMD) aims at exploiting the data-level parallelism of multimedia and scientific calculation.The true dependence caused by reduction operation hinders exploring data-level parallelism.But different architecture and instruction set make reduction vectorization method based on vector machine unsuitable to SIMD.This paper presents a new approach of generating SIMD code with reduction.It presents a method to identify reduction operations,and conducts code generation using vector shift instructions.Experimental result based on SPEC and some other standard test sets shows the validity of this method,with 34% improvement in the vectorization acceleration ratio.

Key words: Single Instruction Multiple Data(SIMD) vectorization, reduction, dependence analysis, code generation, parallelism

中图分类号: