Skip to main content

Computer Generation of Efficient Software Viterbi Decoders

  • Conference paper
High Performance Embedded Architectures and Compilers (HiPEAC 2010)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5952))

Abstract

This paper presents a program generator for fast software Viterbi decoders for arbitrary convolutional codes. The input to the generator is a specification of the code and a single-instruction multiple-data (SIMD) vector length. The output is an optimized C implementation of the decoder that uses explicit Intel SSE vector instructions. At the heart of the generator is a small domain-specific language called VL to express the structure of the forward pass. Vectorization is done by rewriting VL expressions, which a compiler then translates into actual code in addition to performing further optimizations specific to the vector instruction set. Benchmarks show that the generated decoders match the performance of available expert hand-tuned implementations, while spanning the entire space of convolutional codes. An online interface to the generator is provided at www.spiral.net.

This work was supported by NSF through awards 0325687 and 0702386, and by DARPA through the Department of Interior grant NBCH1050009.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Viterbi, A.: Error bounds for convolutional codes and an asymptotically optimum decoding algorithm. IEEE Transactions on Information Theory 13(2) (April 1967)

    Google Scholar 

  2. Gemmeke, T., Gansen, M., Noll, T.: Implementation of scalable power and area efficient high-throughput viterbi decoders. Solid-State Circuits 37(7) (July 2002)

    Google Scholar 

  3. Mitola III, J.: Software Radio Architecture. John Wiley & Sons, Chichester (2002)

    Google Scholar 

  4. Karn, P.: FEC library version 3.0.1 (August 2007), http://www.ka9q.net/code/fec/

  5. Van Loan, C.: Computational frameworks for the fast Fourier transform. Society for Industrial and Applied Mathematics, Philadelphia (1992)

    MATH  Google Scholar 

  6. Püschel, M., Moura, J.M.F., Johnson, J., Padua, D., Veloso, M., Singer, B., et al.: SPIRAL: Code generation for DSP transforms. Proc. of the IEEE 93(2) (2005)

    Google Scholar 

  7. Xiong, J., Johnson, J., Johnson, R., Padua, D.: SPL: a language and compiler for DSP algorithms. SIGPLAN Not. 36(5), 298–308 (2001)

    Article  Google Scholar 

  8. Franchetti, F., Voronenko, Y., Püschel, M.: FFT program generation for shared memory: SMP and multicore. In: Supercomputing, SC (2006)

    Google Scholar 

  9. Franchetti, F., Voronenko, Y., Püschel, M.: A rewriting system for the vectorization of signal transforms. In: Daydé, M., Palma, J.M.L.M., Coutinho, Á.L.G.A., Pacitti, E., Lopes, J.C. (eds.) VECPAR 2006. LNCS, vol. 4395, pp. 363–377. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  10. Forney Jr., G.D.: The viterbi algorithm. Proc. of the IEEE 61(3) (March 1973)

    Google Scholar 

  11. Rader, C.: Memory management in a viterbi decoder. IEEE Transactions on Communications [legacy, pre - 1988] 29(9), 1399–1401 (1981)

    Article  Google Scholar 

  12. Franchetti, F., de Mesmay, F., McFarlin, D., Püschel, M.: Operator language: A program generation framework for fast kernels. In: IFIP Working Conference on Domain Specific Languages (DSL WC). LNCS, vol. 5658. Springer, Heidelberg (2009)

    Google Scholar 

  13. Feldman, J., Abou-Faycal, I., Frigo, M.: A fast maximum-likelihood decoder for convolutional codes. In: Proc. of Vehicular Technology Conference, pp. 371–375 (2002)

    Google Scholar 

  14. Fano, R.: A heuristic discussion of probabilistic decoding. IEEE Transactions on Information Theory 9(2), 64–74 (1963)

    Article  MathSciNet  Google Scholar 

  15. Lawrie, D.: Access and alignment of data in an array processor. IEEE Transactions on Computers C-24(12), 1145–1155 (1975)

    Article  MathSciNet  Google Scholar 

  16. Franchetti, F., Püschel, M.: Generating SIMD vectorized permutations. In: Hendren, L. (ed.) CC 2008. LNCS, vol. 4959, pp. 116–131. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  17. Hekstra, A.: An alternative to metric rescaling in viterbi decoders. IEEE Transactions on Communications 37(11), 1220–1222 (1989)

    Article  MathSciNet  Google Scholar 

  18. Chambers, W.: On good convolutional codes of rate 1/2, 1/3, and 1/4. In: Singapore ICCS/ISITA 1992. Communications on the Move, November 1992, vol. 2, pp. 750–754 (1992)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

de Mesmay, F., Chellappa, S., Franchetti, F., Püschel, M. (2010). Computer Generation of Efficient Software Viterbi Decoders. In: Patt, Y.N., Foglia, P., Duesterwald, E., Faraboschi, P., Martorell, X. (eds) High Performance Embedded Architectures and Compilers. HiPEAC 2010. Lecture Notes in Computer Science, vol 5952. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11515-8_26

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-11515-8_26

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-11514-1

  • Online ISBN: 978-3-642-11515-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics