Font Size: a A A

Research On The Key Techniques Of Directives Based Auto-vectorization

Posted on:2015-05-20Degree:MasterType:Thesis
Country:ChinaCandidate:Y XuFull Text:PDF
GTID:2348330509460837Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Mainstream general purpose microprocessors have been able to supported the SIMD architecture, auto-vectorization of loops based on SIMD architecture plays an important role in offering higher performance of programs. As a compiling optimizing technique,adding directives into the programs manually which can assist compilers to improve autovectorization capacity has become more and more popular. The work in the thesis is about the research on the key techniques of directives based auto-vectorization.By appending directives relative to SIMD, the latest OpenMP 4.0 specification provided an approach to guide loops' auto-vectorization directly. As an open-source compiler, GCC is quite adaptive for doing research on the detailed realization of variety of compiling optimization, moreover, GCC 4.9.0 which released in April 2014 could have recognized SIMD directives in OpenMP 4.0.Firstly, we investigate the newly provided SIMD directives in OpenMP 4.0. OpenMP application programming interface(API) is a standard of parallel programming in sharedmemory multi-processors system. Users can implement multi-threads parallelism of programs by inserting OpenMP directives in them. We analyze the definition and use of SIMD directives, and test their auto-vectorization effects in ICC and GCC compilers respectively.Secondly, we study perfect loop-nest combined with a collapse clause from OpenMP specification, focus on the auto-vectorization effect of perfect loop-nest if a collapse clause has been added. Then, we analyze how the collapse clause change the perfect loop-nest in Middle-End. In addition, some shortages have been found in GCC 4.9.0 after experimenting collapse clause which results in failing to auto-vectortization in whatever OpenMP constructs that collapse clause could be followed.Lastly, we propose a new plan about how collapse clause in loop construct implement in pass_omp_expand of GCC 4.9.0. The result proved that our improving on GCC could make collapse clause successfully pass the vectorization and offer higher performance.
Keywords/Search Tags:SIMD, directives, auto-vectorization, OpenMP, collapse clause
PDF Full Text Request
Related items