| | |
Summary: Cache Aware Optimization of Stream Programs
Janis Sermulins William Thies Rodric Rabbah Saman Amarasinghe
Computer Science and Artificial Intelligence Laboratory, Massachusetts Institute of Technology
{janiss, thies, rabbah, saman}@csail.mit.edu
Abstract
Effective use of the memory hierarchy is critical for achieving
high performance on embedded systems. We focus on the class of
streaming applications, which is increasingly prevalent in the em-
bedded domain. We exploit the widespread parallelism and regular
communication patterns in stream programs to formulate a set of
cache aware optimizations that automatically improve instruction
and data locality. Our work is in the context of the Synchronous
Dataflow model, in which a program is described as a graph of
independent actors that communicate over channels. The commu-
nication rates between actors are known at compile time, allowing
the compiler to statically model the caching behavior.
We present three cache aware optimizations: 1) execution scal-
ing, which judiciously repeats actor executions to improve instruc-
tion locality, 2) cache aware fusion, which combines adjacent ac-
tors while respecting instruction cache constraints, and 3) scalar
|