Thursday, October 18 • 11:30am - 12:30pm
How to use LLVM to optimize your parallel programs

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

As Moore's law comes to an end, chipmakers are increasingly relying on both heterogeneous and parallel architectures for performance gains. This has led to a diverse set of software tools and paradigms such as CUDA, OpenMP, Cilk, and many others to best exploit a program’s parallelism for performance gain. Yet, while such tools provide us ways to express parallelism, they come at a large cost to the programmer, requiring in depth knowledge of what to parallelize, how to best map the parallelism to the hardware, and having to rework the code to match the programming model chosen by the software tool.

In this talk, we discuss how to use Tapir, a parallel extension to LLVM, to optimize parallel programs. We will show how one can use Tapir/LLVM to represent programs in attendees’ favorite parallel framework by extending clang, how to perform various optimizations on parallel code, and how to to connect attendees’ parallel language to a variety of parallel backends for execution (PTX, OpenMP Runtime, Cilk Runtime).

avatar for William Moses

William Moses

PhD Candidate, MIT

Thursday October 18, 2018 11:30am - 12:30pm PDT
2 - Technical Talk (Rm LL21AB)