News

Guest Lecture by Michel Steuwer (TU Berlin)

Written on 28.01.25 by Sebastian Hack

Hi all,

Michel Steuwer from TU Berlin is visiting today and he will give a guest lecture with the title: "How to design the next 700 optimizing compilers".

Abstract:

Massively parallel hardware combined with carefully optimized software has enabled the deep learning revolution. To deliver the… Read more

Hi all,

Michel Steuwer from TU Berlin is visiting today and he will give a guest lecture with the title: "How to design the next 700 optimizing compilers".

Abstract:

Massively parallel hardware combined with carefully optimized software has enabled the deep learning revolution. To deliver the efficiency and performance demanded by the next generations of AI applications a zoo of highly specialized hardware devices is developed. Writing software for these devices is highly complex and only the largest companies are able to make massive investments in such short-lived software that currently has to be rewritten and re-optimized for each new generation of hardware devices.
 
Current automatic optimizing compilers that turn high-level programs into low-level code often disappoint to deliver satisfying performance. They disappoint by failing to exploit the increasingly specialized hardware features, but they equally disappoint by failing to perform crucial high-level optimizations in many important, but less mainstream, application domains.
 
In this talk, I will present our approach for designing the next generation of optimizing compilers. These compilers systematically optimizing domain-specific applications for a diverse set of specialized hardware. They support a wide range of optimization use-cases ranging from using automatic and AI-driven design space exploration techniques to precise control of optimizations by performance engineers, and gradual combinations of automation and control. Key to our design is that we embrace extensibility and composability of both computations and optimizations. Computations are represented by a pattern-based intermediate representation. Fundamental building blocks are flexible generic patterns. This intermediate representation is easily extensible with domain- and hardware-specific patterns. Optimizations are composed of simple rewrite-rules either in a purposely build strategy language that allows to precise control of optimization strategies, or in a semi-automatic technique using equality saturation. The compiler is easily extensible with domain- and hardware-specific optimization strategies and experts are allowed to control the optimization process to various degrees.
 
I aim to demonstrate that this generic and flexible design achieves high-performance comparable to existing domain-specific compilers on existing massively parallel hardware and show exciting future research directions that opens up from our approach.

Action Required: Exam Registration, Project Discussion Scheduling

Written on 09.01.25 by Joachim Meyer

tl;dr:

  • first exam: register now! 11 Feb 2025, 09:00-11:00 in LH 002, building E1 3.
  • fill in the poll linked on the Materials page to schedule a project presentation for your group by 14 Feb 2025
  • deadline for the project is the 21 Feb 2025
  • office hours: 15 Jan 2025 and 05 Feb 2025, each… Read more

tl;dr:

  • first exam: register now! 11 Feb 2025, 09:00-11:00 in LH 002, building E1 3.
  • fill in the poll linked on the Materials page to schedule a project presentation for your group by 14 Feb 2025
  • deadline for the project is the 21 Feb 2025
  • office hours: 15 Jan 2025 and 05 Feb 2025, each 13:00-14:30

Hi all,

the exam registration is now open in LSF. The first exam will take place on 11 Feb 2025, 9-11 in E1.3 LH 002.
You can register until one week before the exam date. Register now, so you don't forget!
If you cannot register in LSF and want to get a Schein, please register by writing an E-Mail to Joachim Meyer.

The project discussions will take place from Wednesday, 05 Mar 2025, until Friday, 07 Mar 2025, in person in room 4.01, E1.3.
Please enter your group's preferences for timeslots on these days in the poll linked on the Materials page in the CMS until no later than Friday, 14 Feb 2025.
Only one person should enter the preferences per group (under the group's name), please agree on them beforehand.
Select as many time slots as possible where all group members are available.
Your meeting will take place in a 30-minute period within one of the selected time slots.
We will announce the exact times for each group once we have assigned them after 14 Feb 2025.

To pass the project and thus the course, students must participate in their group's project discussion.
At least one group member should have the project source code and a working build available on a laptop.

As a reminder: the hard deadline for the project is the 21 Feb 2025.
Anything that is changed after this deadline will not be considered.

There will be two more office hours to discuss questions regarding the project.: 15 Jan and 5 Feb, each 13:00-14:30.

Best,
the CC Team

Course Evaluation

Written on 09.01.25 (last change on 09.01.25) by Sebastian Hack

Dear all,

we'd be very happy if you could fill out the course evaluation forms (one for the lecture, one for the tutorial). Any constructive criticism is very welcome and has helped us in the past to improve the course. Your opinion matters! You can find the links in the Material section of the… Read more

Dear all,

we'd be very happy if you could fill out the course evaluation forms (one for the lecture, one for the tutorial). Any constructive criticism is very welcome and has helped us in the past to improve the course. Your opinion matters! You can find the links in the Material section of the CMS.

 

 

Next Lecture Thu Jan 9

Written on 06.01.25 by Sebastian Hack

A happy new year to everyone. Tomorrow (Jan 7) there is no lecture. The next lecture is on Thu, Jan 9.

Office Hour Tomorrow (Wednesday) - Happy Holidays

Written on 17.12.24 by Joachim Meyer

Hi everyone!

The last office hour of the year will be tomorrow, Wednesday 18.12. 13:00-14:30.
Use the chance to discuss the project and get unstuck on missing failing tests!

For all those, who can't wait to make their compilers also generate code - the LLVM CodeGen project assignment will be… Read more

Hi everyone!

The last office hour of the year will be tomorrow, Wednesday 18.12. 13:00-14:30.
Use the chance to discuss the project and get unstuck on missing failing tests!

For all those, who can't wait to make their compilers also generate code - the LLVM CodeGen project assignment will be released this Thursday - the perfect excuse to take a break from family dinners ;-)
While we will release a new exercise sheet as well, this will only be discussed on the 13.01.

We wish you all a great holiday season, a festive and merry Christmas, for those that celebrate it, and the best possible start in the new year!
Don't forget to take a break and join the compiler fun refreshed next year.

- Your Compiler Construction Team

Lecture cancelled 12 Dec 24

Written on 11.12.24 (last change on 11.12.24) by Sebastian Hack

Dear all, I have to cancel tomorrow's lecture. We'll meet again next Tuesday for more code generation. This also means, there won't be a new exercise sheet tomorrow. I'm sorry for the inconvenience. Cheers, Sebastian

Upcoming Office Hour, Project Assignment & Mini Test

Written on 25.11.24 (last change on 25.11.24) by Joachim Meyer

Hi everyone,

we will host another Office Hour this Wednesday, 27.11. 13-14:30 to help with questions regarding the project thus far.
The office hour will be in E1.3 4.01 again.
This again is a good time to pick up your Mini Tests, if you haven't, yet.
As a heads-up: we will have a final office… Read more

Hi everyone,

we will host another Office Hour this Wednesday, 27.11. 13-14:30 to help with questions regarding the project thus far.
The office hour will be in E1.3 4.01 again.
This again is a good time to pick up your Mini Tests, if you haven't, yet.
As a heads-up: we will have a final office hour for this year on 18.12.!

The next project assignment will go live on Thursday, 28.11.

On Monday, 02.12., we will have another Mini Test in the tutorials.

Have a good week!

Office Hour on 6.11. 13:00-15:00

Written on 05.11.24 (last change on 05.11.24) by Joachim Meyer

We will offer an office hour tomorrow, 6.11., 13:00-15:00 in E1.3 4.01. This is a good place to come if you have questions regarding the project - particularly if there are still open questions about the lexer!

If you couldn't pick up your mini-tests yesterday, this will also be a good place to pick them up.

Minitest in Tutorials on 28.10.

Written on 25.10.24 by Joachim Meyer

On Monday Oct 28, we will offer to do a Minitest in the Tutorials - you will get 20min to work through a few exercises, which we will mark until the week after.
These are not admittance requirements, but good ways to gauge where you are standing with regard to the lecture contents.

Also, exercise… Read more

On Monday Oct 28, we will offer to do a Minitest in the Tutorials - you will get 20min to work through a few exercises, which we will mark until the week after.
These are not admittance requirements, but good ways to gauge where you are standing with regard to the lecture contents.

Also, exercise sheet 2 is available.

Lecture cancelled 22 Oct 24

Written on 22.10.24 by Sebastian Hack

Dear all,

I am sick and have to cancel today's lecture. Please watch the corresponding video from the previous iteration "Context-Free Grammars and Pushdown Automata" instead. It is contained in a YT playlist that is linked in the material section.

All the best,

Sebastian Hack

Tutorial assignments

Written on 18.10.24 by Joachim Meyer

We just assigned the tutorial slots for everyone, as the first session will be on Monday, 21.10. already:

  • 10 c.t. and 14 c.t. in E1.1 1.06
  • 16 c.t. in E1.3 1.07

Similar to the exercise sheets, the tutorials are voluntary.
In the first session, you will get a chance to find project group… Read more

We just assigned the tutorial slots for everyone, as the first session will be on Monday, 21.10. already:

  • 10 c.t. and 14 c.t. in E1.1 1.06
  • 16 c.t. in E1.3 1.07

Similar to the exercise sheets, the tutorials are voluntary.
In the first session, you will get a chance to find project group members, we will review some organizational questions, and some parts of the first topic to get you started with the exercise sheets.

If you have not provided your preferences yet and you were assigned an unsuitable tutorial, please let your tutor know and you will be re-assigned.

For late registrations, we will do another round of assignments on Monday morning.

First Exercise Sheet and Project Assignment Available

Written on 17.10.24 by Joachim Meyer

You can now find the first exercise sheet, which will be discussed in the tutorials on 28.10., and the first project assignment on the Materials page of the CMS.

First Lecture & Tutorial Preferences

Written on 15.10.24 (last change on 15.10.24) by Joachim Meyer

Hello everyone,

we're glad you chose to hear Compiler Construction (CC) this year.

Today, we're kicking the lecture off at 14:15 in lecture hall 001 (E 1.3).
We will review the course's organization, including the two points below, and then dive into the topic.

NOTE: We had to change the… Read more

Hello everyone,

we're glad you chose to hear Compiler Construction (CC) this year.

Today, we're kicking the lecture off at 14:15 in lecture hall 001 (E 1.3).
We will review the course's organization, including the two points below, and then dive into the topic.

NOTE: We had to change the tutorial slots (and added another one), therefore please re-do your tutorial preference selection until Sunday, 20 Oct.
If you are not yet registered for the course, but want to attend, please register until Sunday as well.

Finally, to register for the project: please follow the steps at How to Attend.

See you in class!

Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators.