EE 4702: Software Optimizations (Design Elective)
Spring 2012: MW 3:40pm - 5:00pm 307 Frey
145 EE Building
Dr. J. (Ram) Ramanujam
(For both graduate and undergraduate students)
- Title: EE 4702 -- Software Optimizations
- Professor: J.
324 Johnston Hall (578-8979) & 345 EE Building, 578-5628
- Email: jxr [at] ece [period] lsu [period] edu)
- Office Hours: To Be Decided
- Grader/TA: To be announced
- Time and Place: MW
3:40pm - 5:00pm in 307 Frey
145 EE Building
No required text; the class will be based on handouts.
- However, you are encouraged to use the reference books listed below.
- 1. High Performance Compilers for Parallel Computing, Michael Wolfe, Addison-Wesley, 1996.
- 2. Optimizing Compilers for Modern Architectures, R. Allen & K. Kennedy, Morgan Kaufman, 2001.
- Attention: Graduate students WILL get graduate credit for this course.
OR ((data structures: CSC 3102) AND (computer organization EE 3755))
The course deals with principles and practice of software optimizations for modern
architectures including CPUs and accelerators such as GPUs. Issues in compilation of programs for high performance
computers and accelerators will be discussed in detail. Data dependence testing and
program transformations constitute the core of this course.
This set of material is in the class notes. You will find relevant
material in Chapters 4-7, parts of 8-10 and 12 from the book
by Michael Wolfe. Additional material
will be covered if we have time.
- Independence and parallelism detection
- Data dependence testing for array-based codes
- Data dependence testing for other data strauctures
- Standard scalar transformations (constant propagation, ...)
- Loop parallelization and scheduling
- Loop transformations (interchange, skewing, ...)
- Data locality optimizations (i.e., for caches)
- Optimizations for accelerators (GPUs)
- Optimizations for (i) embedded processors, (ii) power/energy reduction
Tentative Grading (will be
finalized by last day to add)
2 tests (22.5% each), homework/projects (25%),