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
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
- Lecture Notes by instructor
- "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.
- Final Exam 50%
- Project Assignments 25%
- Class Participations Discussions, and Presentations 25 %
Prof. Jenq-Kuen Lee e-mail: email@example.com Phone: 5715131 ext. 33519 Office: R547, EECS Building
Phone: 5715131 ext. 33900
Office: R844, EECS Building