Abstract | ||
---|---|---|
With 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 TensorFlow. 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 reduction, 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.
|
Year | DOI | Venue |
---|---|---|
2017 | 10.1145/3148173.3148191 | LLVM-HPC@SC |
DocType | ISBN | Citations |
Conference | 978-1-4503-5565-0 | 4 |
PageRank | References | Authors |
0.47 | 0 | 15 |
Name | Order | Citations | PageRank |
---|---|---|---|
Xinmin Tian | 1 | 596 | 52.92 |
Hideki Saito | 2 | 177 | 14.88 |
Ernesto Su | 3 | 4 | 0.81 |
Jin Lin | 4 | 4 | 0.47 |
Satish Guggilla | 5 | 4 | 0.47 |
Diego Caballero | 6 | 20 | 2.51 |
Matt Masten | 7 | 29 | 2.13 |
Andrew Savonichev | 8 | 4 | 0.47 |
Michael Rice | 9 | 119 | 21.56 |
Elena Demikhovsky | 10 | 4 | 0.47 |
Ayal Zaks | 11 | 414 | 26.73 |
Gil Rapaport | 12 | 4 | 0.47 |
Abhinav Gaba | 13 | 4 | 0.81 |
Vasileios Porpodas | 14 | 4 | 0.47 |
Eric N. Garcia | 15 | 29 | 1.79 |