CS252: Spring 2001 Project Suggestions <Under construction!> |
VIRAM has an instruction set simular to show proper execution of programs,
but no performance information. Instead, it produces a trace that can be
feed into another program that calculates the number of clock cycles for
that program. The original performance simulator was written early in the
process, before we had settled on many key parameters, and that student
graduated a while ago. The suggestion is to start with a clean slate and
build in most of the key parameters thereby considerably simplifying (and
speeding up) the performance simulator. Thus this does not need to interpret
instructions, just calculate clock cycles. We would still like to vary
a few paramters, such as the number of elements executed each clock cycle
("number of lanes"). The VIRAM
architecture is online, although you should talk to Kozyrakis before
getting started. The old Performance
Simulation Manual is also online and available if you are on the Berkeley
campus.
The Berkeley
multimedia workload was developed in order to facilitate studies on
architectural support for multimedia. These 16 kernels were written orginally
in C and then tuned by hand for all existing
SIMD multimedia architectures. VIRAM is a vector computer designed
for multimedia, and it comes with a vectorzing compiler. The first
step, after reading the papers above, would be to evaluate try the compiler
on these kernels. The next step would be to code these by hand to see the
performance improvement over compiled code and to compare to the computers
with SIMD extentions. Metrics could include clock cycles, time, code size,
power, percent vectorization, and relative performance of compiled vs.
hand tuned code. As C does not have language support to express some of
the DSP primitives (e.g., saturating arithmetic), you might also suggest
what changes would be needed at the language level to be able to express
these kernels. Christoforos Kozyrakis (kozyraki@cs.berkeley.edu)has
C
and VIRAM hand-tuned versions of other media kernels as a place to
start on the IRAM version. VIRAM
architecture is online, although you should talk to Prof. Yelick and
Kozyrakis before getting started.