2009 · 46 citations · 11 references
ComputingComputer ScienceHigh-performance ComputingAlgorithmsComputer ArchitectureFormal MethodsCode GenerationLibrary ConstructionMemory Hierarchy OptimizationCompiler SupportHigh PerformanceSpecialized Code GenerationVectorization
The development of high-performance libraries has become extraordinarily difficult due to multiple processor cores, vector instruction sets, and deep memory hierarchies. Often, the library has to be reimplemented and reoptimized, when a new platform is released. In this paper we show how to automatically generate general input-size libraries for the domain of linear transforms. The input to our generator is a formal specification of the transform and the recursive algorithms the library should use; the output is a library that supports general input size, is vectorized and multithreaded, provides an adaptation mechanism for the memory hierarchy, and has excellent performance, comparable to or better than the best human-written libraries. Further, we show that our library generator enables various customizations; one example is the generation of Java libraries.
11
The Design and Implementation of FFTW3
Matteo Frigo, Steven G. Johnson · Proceedings of the IEEE · 2005 · 5.2K citations
Constructing Induction Rules for Deductive Synthesis Proofs
Alan Bundy, Lucas Dixon, Jeremy Gow et al. · Electronic Notes in Theoretical Computer Science · 2006 · 2.8K citations · Full text
SPIRAL: Code Generation for DSP Transforms
Markus Püschel, José M. F. Moura, Jeremy Johnson et al. · Proceedings of the IEEE · 2005 · 829 citations
A fast Fourier transform compiler
Matteo Frigo · 1999 · 441 citations