LLVM Framework and IR Extensions for Parallelization, SIMD Vectorization and Offloading.

SC16: The International Conference for High Performance Computing, Networking, Storage and Analysis Salt Lake City Utah November, 2016(2016)

引用 27|浏览18
暂无评分
摘要
LLVM has become an integral part of the software-development ecosystem for developing advanced compilers, high-performance computing software and tools. This paper presents a small set of LLVM IR extensions for explicitly parallel vector, and offloading program constructs The proposed LLVM IR extensions enable the lowering and transformation in the LLVM middle-end for the OpenMP® C/C++ and Fortran API, and any other explicitly parallel/simd constructs in high-level source languages. This paper discusses the rationale of the LLVM IR extensions to support OpenMP constructs and clauses, and presents the LLVM intrinsic functions, the framework for parallelization, vectorization, and offloading, and the sandwich scheme to model the OpenMP parallel, simd, offloading and data-attribute semantics under the SSA form. Examples are given to show our implementation in the LLVM middle-end passes, which paves the way to achieve a better interaction with scalar optimizations, vectorization, and loop optimizations, and thus resulting in higher performance.
更多
查看译文
关键词
multi- and many-core processors,accelerators,LLVM,OpenMP,parallelization,vectorization,offloading
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要