Abstract
Recent work showed that staging and abstract interpretation can be used to derive correct families of combinatorial circuits, and illustrated this technique with an in-depth analysis of the Fast Fourier Transform (FFT) for sizes 2n. While the quality of the generated code was promising, it used more floating-point operations than the well-known FFTW codelets and split-radix algorithm. This paper shows that staging and abstract interpretation can in fact be used to produce circuits with the same number of floating-point operations as each of split-radix and FFTW. In addition, choosing between two standard implementations of complex multiplication produces results that match each of the two algorithms. Thus, we provide a constructive method for deriving the two distinct algorithms.
Supported by NSF ITR-0113569 “Putting Multi-stage Annotations to Work” and Texas ATP 003604-0032-2003 “Advanced Languages Techniques for Device Drivers.”
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Boehm, W., Hammes, J., Draper, B., Chawathe, M., Ross, C., Rinker, R., Najjar, W.: Mapping a single assignment programming language to reconfigurable systems. Supercomputing 21, 117–130 (2002)
Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: 4th ACM Symposium on Principles of Programming Languages, pp. 238–252. ACM, New York (1977)
Frigo, M.: A fast Fourier transform compiler. In: Proceedings of the Conference on Programming Language Design and Implementation, pp. 169–180 (1999)
Burrus, C.S., Selesnick, I.W.: Automatic generation of prime length FFT programs. IEEE Transactions on Signal Processing, 14–24 (January 1996)
Kiselyov, O., Swadi, K., Taha, W.: A methodology for generating verified combinatorial circuits. In: The International Workshop on Embedded Software (EMSOFT 2004), Pisa, Italy. LNCS. Springer, Heidelberg (2004) (to appear)
Leroy, X.: Objective Caml (2000), Available from http://caml.inria.fr/ocaml/
Lipsett, R., Marschner, E., Shaded, M.: VHDL - The Language. IEEE Design and Test of Computers, 28–41 (April 1986)
Moggi, E.: Notions of computation and monads. Information and Computation, 93(1) (1991)
Heideman, M.T., Burrus, C.S.: On the number of multiplications necessary to compute a length-2n DFT. IEEE Trans. ASSP ASSP-34(1), 91–95 (1986)
Oregon Graduate Institute Technical Reports. P.O. Box 91000, Portland, OR 97291- 1000, USA Available online from ftp://cse.ogi.edu/pub/tech-reports/README.html
Taha, W.: Multi-Stage Programming: Its Theory and Applications. PhD thesis, Oregon Graduate Institute of Science and Technology (1999), Available from [10]
Taha, W., Ellner, S., Xi, H.: Generating Imperative, Heap-Bounded Programs in a Functional Setting. In: Proceedings of the Third International Conference on Embedded Software, Philadelphia, PA (October 2003)
Taha, W., Nielsen, M.F.: Environment classifiers. In: The Symposium on Principles of Programming Languages (POPL 2003), New Orleans (2003)
Thomas, D.E., Moorby, P.R.: The Verilog Hardware Description Language, 3rd edn. Kluwer Academic Publishers, Dordrecht (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kiselyov, O., Taha, W. (2005). Relating FFTW and Split-Radix. In: Wu, Z., Chen, C., Guo, M., Bu, J. (eds) Embedded Software and Systems. ICESS 2004. Lecture Notes in Computer Science, vol 3605. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11535409_71
Download citation
DOI: https://doi.org/10.1007/11535409_71
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-28128-3
Online ISBN: 978-3-540-31823-1
eBook Packages: Computer ScienceComputer Science (R0)