LLVM Compiler Implementation for Explicit Parallelization
and SIMD Vectorization
Author/Presenters
Event Type
Workshop
Compiler Analysis and Optimization
Compilers
Debugging
Parallel Programming Languages, Libraries, Models
and Notations
Program Transformation
SIGHPC Workshop
TimeMonday, November 13th4:30pm -
5pm
Location710
DescriptionWith advances of modern multi-core processors and
accelerators, many modern applications are increasingly
turning to compiler-assisted parallel and vector
programming models such as OpenMP, OpenCL, Halide,
Python and Tensor-Flow. It is crucial to ensure that
LLVM-based compilers can optimize parallel and vector
code as effectively as possible. In this paper, we first
present a set of updated LLVM IR extensions for
explicitly parallel, vector, and offloading program
constructs in the context of C/C++/OpenCL; Secondly, we
describe our LLVM design and implementation for advanced
features in OpenMP such as parallel loop scheduling,
task and taskloop, SIMD loop and functions, and we
discuss the impact of our updated implementation on
existing LLVM optimization passes. Finally, we present a
re-use case of our infrastructure to enable explicit
parallelization and vectorization extensions in our
OpenCL compiler to achieve ~35x performance speedup for
a well-known autonomous driving workload on a multi-core
platform configured with Intel Xeon Scalable
Processors.
Author/Presenters




