{"title":"一种利用超词级并行的新算法","authors":"Peng Liu, Rongcai Zhao, Wei Gao, Shuai Wei","doi":"10.1109/DASC.2013.118","DOIUrl":null,"url":null,"abstract":"Nowadays SIMD extensions became ubiquitous for computational platform, being widely used in signal processing, multimedia, and scientific applications. However, compilers still have difficult in vectorizing some applications, such as computations on non-contiguous and especially interleaved data, and loop nest for which inner loops that carry all the dependencies and external loops with strided memory accesses. In order to solve these problems, we adopt Isomorphic Statements Grouping (ISG) after extending group following UD and DU chains, which group isomorphic computation statements that perform the same operation. And correspondingly, we generate vector permutation instructions according to the target ISA SIMD instructions at the SIMD code generation phase. This approach has been implemented in a compiler based on Open64 which translate C source program to C source program with SIMD intrinsic functions. Experiments with this compiler show that ISG Super Level Parallelism(ISG-SLP) can be used to compile a number of real-world kernels, achieving up to 3.11 speedup.","PeriodicalId":179557,"journal":{"name":"2013 IEEE 11th International Conference on Dependable, Autonomic and Secure Computing","volume":"176 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-12-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"A New Algorithm to Exploit Superword Level Parallelism\",\"authors\":\"Peng Liu, Rongcai Zhao, Wei Gao, Shuai Wei\",\"doi\":\"10.1109/DASC.2013.118\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Nowadays SIMD extensions became ubiquitous for computational platform, being widely used in signal processing, multimedia, and scientific applications. However, compilers still have difficult in vectorizing some applications, such as computations on non-contiguous and especially interleaved data, and loop nest for which inner loops that carry all the dependencies and external loops with strided memory accesses. In order to solve these problems, we adopt Isomorphic Statements Grouping (ISG) after extending group following UD and DU chains, which group isomorphic computation statements that perform the same operation. And correspondingly, we generate vector permutation instructions according to the target ISA SIMD instructions at the SIMD code generation phase. This approach has been implemented in a compiler based on Open64 which translate C source program to C source program with SIMD intrinsic functions. Experiments with this compiler show that ISG Super Level Parallelism(ISG-SLP) can be used to compile a number of real-world kernels, achieving up to 3.11 speedup.\",\"PeriodicalId\":179557,\"journal\":{\"name\":\"2013 IEEE 11th International Conference on Dependable, Autonomic and Secure Computing\",\"volume\":\"176 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2013-12-21\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2013 IEEE 11th International Conference on Dependable, Autonomic and Secure Computing\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/DASC.2013.118\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2013 IEEE 11th International Conference on Dependable, Autonomic and Secure Computing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/DASC.2013.118","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
摘要
目前SIMD扩展在计算平台中无处不在,被广泛应用于信号处理、多媒体和科学应用中。然而,编译器在向量化一些应用程序方面仍然存在困难,例如对不连续和特别是交错数据的计算,以及携带所有依赖关系的内部循环和具有跨行内存访问的外部循环的循环巢。为了解决这些问题,我们在扩展了UD链和DU链之后的组后采用ISG (Isomorphic Statements Grouping),将执行相同操作的同构计算语句分组。相应地,我们在SIMD代码生成阶段根据目标ISA SIMD指令生成向量置换指令。该方法已在基于Open64的编译器中实现,该编译器将C源程序转换为具有SIMD固有函数的C源程序。使用该编译器进行的实验表明,ISG Super Level Parallelism(ISG- slp)可用于编译许多真实的内核,实现高达3.11的加速。
A New Algorithm to Exploit Superword Level Parallelism
Nowadays SIMD extensions became ubiquitous for computational platform, being widely used in signal processing, multimedia, and scientific applications. However, compilers still have difficult in vectorizing some applications, such as computations on non-contiguous and especially interleaved data, and loop nest for which inner loops that carry all the dependencies and external loops with strided memory accesses. In order to solve these problems, we adopt Isomorphic Statements Grouping (ISG) after extending group following UD and DU chains, which group isomorphic computation statements that perform the same operation. And correspondingly, we generate vector permutation instructions according to the target ISA SIMD instructions at the SIMD code generation phase. This approach has been implemented in a compiler based on Open64 which translate C source program to C source program with SIMD intrinsic functions. Experiments with this compiler show that ISG Super Level Parallelism(ISG-SLP) can be used to compile a number of real-world kernels, achieving up to 3.11 speedup.