Benchmark Programs for Linear Analysis and Optimization of Stream Programs

Back

Our benchmark programs are shown below. The source code for each program (either the current StreamIt syntax or an older java based syntax) can be found below. Also shown are compiler generated stream graphs which represent the overall structure of the program. We provide four stream graphs for each benchmark:

  1. The program as originally written (Original).
  2. After the linear optimizations have been applied using the automatic selection algorithm (After Optimizations). Note that one can identify nodes that were transformed to frequency by the fact that their names start with "TwoStageFreq". Nodes that were generated by collapsing neighboring linear nodes can be recognized by the fact that their names begin with "Linear".
  3. The program as originally written with less text and linear sections highlighted. Blue represents linear filters and pink represented linear hierarchal structures (Linear Filters).
  4. The output of the automatic selection algorithm. The sections to which different optimizations are applied are shown in different colors. Note that nodes with the same color had the same optimization applied to them. The actual colors themselves have no significance.

Several necessary shared supporting files are included at the bottom of this page.

Benchmark Status Streamgraph Dotfile Source
FIR Original FIRProgram before (dot) (src)
After Optimizations FIRProgram after (dot)
Linear Filters FIRProgram linear (dot)
Optimization Regions Marked FIRProgram partitions (dot)
RateConvert Original SamplingRateConverter before (dot) (src)
After Optimizations SamplingRateConverter after (dot)
Linear Filters SamplingRateConverter linear (dot)
Optimization Regions Marked SamplingRateConverter partitions (dot)
TargetDetect Original TargetDetect before (dot) (src)
After Optimizations TargetDetect after (dot)
Linear Filters TargetDetect linear (dot)
Optimization Regions Marked TargetDetect partitions (dot)
FMRadio Original LinkedFMTest before (dot) (src)
After Optimizations LinkedFMTest after (dot)
Linear Filters LinkedFMTest linear (dot)
Optimization Regions Marked LinkedFMTest partitions (dot)
Radar Original CoarseSerializedBeamFormer before (dot) (src)
After Optimizations CoarseSerializedBeamFormer after (dot)
Linear Filters CoarseSerializedBeamFormer linear (dot)
Optimization Regions Marked CoarseSerializedBeamFormer partitions (dot)
FilterBank Original FilterBank before (dot) (src)
After Optimizations FilterBank after (dot)
Linear Filters FilterBank linear (dot)
Optimization Regions Marked FilterBank partitions (dot)
Vocoder Original ChannelVocoder before (dot) (src)
After Optimizations ChannelVocoder after (dot)
Linear Filters ChannelVocoder linear (dot)
Optimization Regions Marked ChannelVocoder partitions (dot)
Oversample Original Oversampler before (dot) (src)
After Optimizations Oversampler after (dot)
Linear Filters Oversampler linear (dot)
Optimization Regions Marked Oversampler partitions (dot)
DToA Original OneBitDToA before (dot) (src)
After Optimizations OneBitDToA after (dot)
Linear Filters OneBitDToA linear (dot)
Optimization Regions Marked OneBitDToA partitions (dot)

Library Files: (Adder.str) (BandPassFilter.str) (BandStopFilter.str) (Compressor.str) (Expander.str) (FloatPrinter.str) (FloatSink.str) (HighPassFilter.str) (LowPassFilter.str)

Back