How to Modernize Compiler Technology

Speaker: Charith Mendis , MIT CSAIL

Date: Monday, November 18, 2019

Time: 2:00 PM to 3:00 PM Note: all times are in the Eastern Time Zone

Public: Yes

Location: 32-G449 Kiva/Patil

Event Type: Seminar

Room Description: Refreshments at 1:45pm.

Host: Julian Shun

Contact: Linda Lynch, 617 715 2459, lindalynch@csail.mit.edu

Relevant URL:

Speaker URL: https://charithmendis.com/

Speaker Photo:
Charith mendis 2019

Reminders to: seminars@csail.mit.edu

Reminder Subject: TALK: How to Modernize Compiler Technology

Abstract: In this talk, I will show the path to the modernization of one important compiler technique -- vectorization. Vectorization was first introduced in the era of Cray vector processors during the 1980's. While vector supercomputers needed large vectors, which are mainly available by parallelizing loops, modern SIMD instructions efficiently work on short vectors. Thus, in 2000, Larsen et. al. introduced a new technique known as Superword Level Parallelism (SLP) based vectorization to fill this gap.
First, I will show how we can take advantage of the power of modern computers for compilation, by using more accurate but expensive techniques to improve SLP vectorization. Due to the hardware resource constraints of the era, like many other compiler optimizations, SLP implementation was a greedy algorithm. In 2018, we introduced goSLP, which uses integer linear programming to find an optimal instruction packing strategy.
Next, I will show how to truly modernize a compiler by automatically learning the necessary components of the compiler with Ithemal and Vemal. The actual cost of execution in a modern out-of-order, superscalar processor is much more complex than a linear model. Manually building such cost models as well as manually developing compiler optimizations is costly, tedious and is hard to keep up with the architectural changes. Ithemal is the first learnt cost model for predicting the throughput of x86 basic blocks with minimal human effort. Vemal is the first learnt policy for end-to-end vectorization as opposed to tuning heuristics. These data-driven techniques achieve state-of-the-art results while also reducing the development and maintenance burden of the compiler developer.

Research Areas:
Computer Architecture, Programming Languages & Software

Impact Areas:

See other events that are part of the Fast Code Seminar 2019.

Created by Linda Lynch Email at Wednesday, November 13, 2019 at 10:52 AM.