A compiler framework for extracting superword level parallelism

A compiler framework for extracting superword level parallelism
复制标题

DOI:
10.1145/2254064.2254106
复制
发表时间:
2012-06
期刊:
Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子:
--
通讯作者:
Jun Liu;Yuanrui Zhang;Ohyoung Jang;W. Ding;M. Kandemir
Jun Liu;Yuanrui Zhang;Ohyoung Jang;W. Ding;M. Kandemir
中科院分区:
其他
文献类型:
--
作者:
Jun Liu;Yuanrui Zhang;Ohyoung Jang;W. Ding;M. Kandemir

文献摘要

被引文献

相似文献

在高性能和嵌入式微处理器中,SIMD(单个指令多数据)指令集扩展非常普遍,并启用了称为SLP(SLP)的特定类型的数据并行类型(SUPERWORD LEVEL LEVEL PALLATELISM)。虽然先前的研究表明,当利用SLP时,可以节省大量的性能,但将SIMD指令手动放置在应用程序代码中可能非常困难且容易出错。在本文中,我们提出了一个新型的自动编译器框架,用于改善超级词级并行性利用。我们框架的关键部分包括两个阶段:SuperWord语句生成和数据布局优化。第一阶段是我们的主要贡献,并且有两个阶段,即语句分组和语句调度,其中主要目标是增加SIMD并行性,更重要的是,通过全球数据访问和重复使用模式分析,在超级单词语句中捕获了更多的超级单词reuses。此外,作为互补优化,我们的数据布局优化在内存空间中组织数据,从而最小化了SLP内存操作的价格。我们的编译器实施和对两个系统的测试的结果表明,在最先进的SLP优化算法上,性能提高高达15.2%。
SIMD (single-instruction multiple-data) instruction set extensions are quite common today in both high performance and embedded microprocessors, and enable the exploitation of a specific type of data parallelism called SLP (Superword Level Parallelism). While prior research shows that significant performance savings are possible when SLP is exploited, placing SIMD instructions in an application code manually can be very difficult and error prone. In this paper, we propose a novel automated compiler framework for improving superword level parallelism exploitation. The key part of our framework consists of two stages: superword statement generation and data layout optimization. The first stage is our main contribution and has two phases, statement grouping and statement scheduling, of which the primary goals are to increase SIMD parallelism and, more importantly, capture more superword reuses among the superword statements through global data access and reuse pattern analysis. Further, as a complementary optimization, our data layout optimization organizes data in memory space such that the price of memory operations for SLP is minimized. The results from our compiler implementation and tests on two systems indicate performance improvements as high as 15.2% over a state-of-the-art SLP optimization algorithm.