Course Introduction
This course will introduce the modern advanced compiler techniques in ILP code optimizations, parallelizing compilers, and GPGPU language optimizations. This course will include software projects and use of parallel languages and machines.
The main topics include
- Parallel Languages and Parallel Programming Environments
- Parallelizing Compilers: HPF Compilers
- ILP compilers
- VLIW Compilations for modern single processor architectures
- GPGPU Programming Languages
- GPGPU compilation issues
- Compilers for low-power
- Toolkits for GPGPU
Course Meeting
T7T8R7, EECS
Course Requirements
This Course does not introduce basics compiler technologies. Therefore, we assume that learners have the pre-knowledge of compiler technologies introduced in "CS5405 Embedded Compiler".
Languages and Software used
C, C++, Fortran 77, Fortran 90, OpenCL, CUDA, C++ AMP, LLVM, and GCC compilers
Text Books
- Lecture Notes by instructor
Reference Book
- "Compilers, Principles, Techniques, and Tools", A. Aho, Monica Lam, R. Sethi, J. Ullman, Addison-Wesley, Second Edition, 2007.
- "Optimizing Compilers for Modern Architectures", Randy Allen Ken Kennedy, Morgan Kaufmann, Academic Press 2002
- "Encyclopedia of Parallel Computing", Padua, David (Ed.)
- "Loop Tiling for Parallelism", Jingling Xue, August 2000, ISBN: 0-7923-7933-0.
Evaluations
- Final Exam 50%
- Project Assignments 25%
- Class Participations Discussions, and Presentations 25 %
Instructor
Prof. Jenq-Kuen Lee e-mail: jklee@cs.nthu.edu.tw Phone: 5715131 ext. 33519 Office: R547, EECS Building
Teaching Assitant
Shao-Chung Wang
e-mail: scwang@pllab.cs.nthu.edu.tw
Phone: 5715131 ext. 33900
Office: R844, EECS Building