Link to CALCM Home  

Increasing Memory Parallelism with a Spatial Compiler

Tuesday March 18, 2003
Hamerschlag Hall 1112

Mihai Budiu
Carnegie Mellon University

I will present the internal representation and optimizations used by the CASH compiler for improving the memory parallelism of pointer-based programs. CASH uses an SSA-based representation for memory, which compactly summarizes both control-flow and dependence information. In CASH, memory optimization is a four-step process: (1) first an initial, relatively coarse, representation of memory dependences is built; (2) next, unnecessary memory dependences are removed using dependence tests; (3) third, redundant memory operations are removed (4) finally, parallelism is increased by pipelining memory accesses in loops. While the first three steps above are very general, the loop pipelining transformations are particularly applicable for spatial computation, which is the primary target of CASH.

Mihai Budiu is a sixth year graduate student in the CS Department doing work in the area of strange compilers and bizarre computer architectures. His advisor is Seth Goldstein, who is interested in exotic hardware substrates.


Department of Electrical and Computer EngineeringCarnegie Mellon UniversitySchool of Computer Science