摘要
随着SIMD扩展部件的迅速发展,自动向量化工具已逐渐成熟。现阶段的工具能对连续访存程序进行较好的处理,然而,大部分非连续访存的多媒体程序并不能被转换为高效的向量化代码。提出并实现了一种支持跨幅访存的向量化代码生成方法,其利用目标系统已有的基本数据处理指令实现多个向量间的任意重组来解决含有非连续访存语句的向量化代码生成问题。经过实验分析和验证,提出的代码生成方法能够将含有跨幅访存的语句转化为面向目标系统的高效向量化代码,以提高程序执行效率。
Due to the development of the SIMD extensions in general processors, automatic vectorizing compilers are widely used in various fields,especially in scientific and engineering computing area. Conventional vectorizing compilers can parallelize applications with continuous access successfully, but most irregular multimedia applications which access interleaved data cannot be vectorized correctly. To address this issue, this paper presented an effective vectorization technique for interleaved data with constant strides. We achieved any form of data regroupings with the help of the data processing instructions provided hy targeted platforms. As a result, programs with interleaved data access are veetorized and vector codes are generated. The experimental results show that the proposed method can translate irregular applications with interleaved data access into high-performance targeted vectorized codes, thereby advancing the execution efficiency adequately.
出处
《计算机科学》
CSCD
北大核心
2015年第5期194-199,203,共7页
Computer Science
基金
"核高基"国家科技重大专项(2009ZX01036)资助
关键词
代码生成
跨幅访存
向量化
数据重组
Code generation, Stride access, Vectorization, Data regrouping