2006 · 63 citations · 28 references
ComputingComputer EngineeringComputer ScienceAlgorithmsCompilersComputer ArchitectureAccelerator ArchitectureHardware AccelerationHigh-level SynthesisAcceleratorsCompiler SupportEmbedded Processor DesignGreedy Heuristics
Computer architects are constantly faced with the need to improve performance and increase the efficiency of computation in their designs. To this end, it is increasingly common to see acyclic com-putation accelerators appear in embedded processor designs. One major problem with adding accelerators to a design is that it is difficult to generate high-quality code utilizing them. Hand-written assembly code is typical, and if compiler support does exist, it is implemented using only greedy algorithms. In this work, we investigate more thorough techniques for compiling to processors with acyclic accelerators. Where as greedy solutions only explore one possible solution, the techniques presented in this paper explore the entire design space, when possible. Intelligent pruning methods are employed to ensure compilation is both tractable and scalable. Overall, our new compilation algorithms produce code that performs on average 10%, and up to 32% better than standard greedy methods. These algorithms also run in less than one second for more than 98% of basic blocks tested.
28
An Algorithm for Subgraph Isomorphism
J. R. Ullmann · Journal of the ACM · 1976 · 2.3K citations · Full text
Garp: a MIPS processor with a reconfigurable coprocessor
John R. Hauser, John Wawrzynek · 2002 · 794 citations