Automation, Compilers, and Code-Generation


    The topic for this semester is Automatic Code Generation.



    The objective of this semester's seminar is to look closely into the process behind code generation, both in general purpose compilers and domain specific languages.
    In regard to general purpose compilers (gcc, llvm, openCL, Cilk), we want to investigate their ability to automatically use vector instructions.
    With respect to domain specific languages, we are interested in studying the techniques that are used in practice. A (non final and non exhaustive) list of test cases follows. Tensor Contraction Engine (TCE); the FFTW and Spiral projects for digital signal processing; BTO, Eigen, DxT and CLAK for linear algebra; the Fenics project for PDEs.


  • Summer semester 2014

  • CAMPUS #: 14ss-46578

  • Lectures: on Wednesdays, 5.15pm. Exact schedule to be decided.
    Lectures begin: Wednesday, April 9th, 5.15pm
    Rogowski 115 - AICES seminar room (Schinkelstrasse 2)


  • Presentations
    "HOWTO: Presentations", by P. Bientinesi [PDF]

    Report: [template] (page limit inside)

    Topic Assignment

# Team Topic Reference Presentation
1 Felix Dietze + Richard Musiol LLVM - code generation [refs] [archive]
2 Christopher Czyba + Hermann Walth LLVM - auto vectorization [refs] [slides]
3 Hanna Franzen + Kevin Neuenfeldt gcc - auto vectorization [refs] [slides]
4 David Laukamp + Martin Wallraff Supercompilers [refs] [slides]
5 Bao Ngo + Simon Oehrl Peephole optimizers [refs] [slides]
6 Kai Neumann + Lukas Koschmieder Julia [refs] [slides]
7 Vladimir.Parashin + Matthias Hannen gcc - code generation [refs] [slides]
8 Leo Antunes + Markus Kruber Armadillo [refs] [slides]


    Schedule



  • April 09, 5.15pm: Topic assigned, schedule finalized.

  • April 30, 5pm: Last day to change project.

  • April 30, 5pm: First team meeting.
    5pm Team 1: LLVM code gen
    5.15pmTeam 2: LLVM auto vec
    5.30pmTeam 3: gcc auto vec
    5.45pmTeam 7: gcc code gen
    6pm Team 6: Julia
    6.15pmTeam 4: Supercompilers
    6.30pmTeam 5: Peephole opt
    6.45pmTeam 8: Armadillo

  • Second team meeting. To be scheduled, team by team

  • July 21 & 22, Final presentations - Attendance is mandatory

  • Monday, July 21: 4pm, 5pm, 6pm
    Tuesday, July 22: 10am, 11am, 1pm, 2pm, 3pm

  • July 29: 5pm: Report deadline