Skip to main content
Log in

Parallel LDPC Decoding on GPUs Using a Stream-Based Computing Approach

  • Regular Paper
  • Published:
Journal of Computer Science and Technology Aims and scope Submit manuscript

Abstract

Low-Density Parity-Check (LDPC) codes are powerful error correcting codes adopted by recent communication standards. LDPC decoders are based on belief propagation algorithms, which make use of a Tanner graph and very intensive message-passing computation, and usually require hardware-based dedicated solutions. With the exponential increase of the computational power of commodity graphics processing units (GPUs), new opportunities have arisen to develop general purpose processing on GPUs. This paper proposes the use of GPUs for implementing flexible and programmable LDPC decoders. A new stream-based approach is proposed, based on compact data structures to represent the Tanner graph. It is shown that such a challenging application for stream-based computing, because of irregular memory access patterns, memory bandwidth and recursive flow control constraints, can be efficiently implemented on GPUs. The proposal was experimentally evaluated by programming LDPC decoders on GPUs using the Caravela platform, a generic interface tool for managing the kernels' execution regardless of the GPU manufacturer and operating system. Moreover, to relatively assess the obtained results, we have also implemented LDPC decoders on general purpose processors with Streaming Single Instruction Multiple Data (SIMD) Extensions. Experimental results show that the solution proposed here efficiently decodes several codewords simultaneously, reducing the processing time by one order of magnitude.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Gallager R G. Low-density parity-check codes. IRE Transactions on Information Theory, 1962, 8(1): 21–28.

    Article  MathSciNet  Google Scholar 

  2. Mackay D J C, Neal R M. Near Shannon limit performance of low density parity check codes. IEE Electronics Letters, 1996, 32(18): 1645–1646.

    Article  Google Scholar 

  3. Lin S, Costello D J. Error Control Coding. 2nd Ed., Prentice Hall, 2004.

  4. Tanner R. A recursive approach to low complexity codes. IEEE Transactions on Information Theory, 1981, 27(5): 533–547.

    Article  MATH  MathSciNet  Google Scholar 

  5. Quaglio F, Vacca F, Castellano C, Tarable A, Masera G. Interconnection framework for high-throughput, flexible LDPC decoders. In Proc. Design, Automation and Test in Europe (DATE2006), Munich, Germany, March 6–10, 2006, pp.124–129.

  6. Ping L, Leung W K. Decoding low density parity check codes with finite quantization bits. IEEE Communications Letters, 2000, 4(2): 62–64.

    Article  Google Scholar 

  7. Zhang T, Parhi K. Joint (3; k)-regular LDPC code and decoder/encoder design. IEEE Transactions on Signal Processing, 2004, 52(4): 1065–1079.

    Article  MathSciNet  Google Scholar 

  8. Verdier F, Declercq D. A low-cost parallel scalable FPGA architecture for regular and irregular LDPC decoding. IEEE Transactions on Communications, 2006, 54(7): 1215–1223.

    Article  Google Scholar 

  9. Falcão G, Gomes M, Gon»calves J, Faia P, Silva V. HDL library of processing units for an automatic LDPC decoder design. In Proc. IEEE Ph.D. Research in Microelectronics and Electronics (PRIME), Otranto, Italy, June 11–16, 2006, pp.349{352.

  10. Gomes M, Silva V, Neves C, Marques R. Serial LDPC decoding on a SIMD DSP using horizontal-scheduling. In Proc. 14th European Signal Processing Conference (EUSIPCO2006), Florence, Italy, Sept. 4–8, 2006.

  11. Ghuloum A, Sprangle E, Fang J, Wu G, Zhou X. Ct: A flexible parallel programming model for tera-scale architectures. Intel, 2007, pp.1–21.

  12. Owens J D, Luebke D, Govindaraju N, Harris M, Kruger J, Lefohn A E, Purcell T J. A survey of general-purpose computation on graphics hardware. Computer Graphics Forum, 2007, 26(1): 80–113.

    Article  Google Scholar 

  13. Goodnight N, Wang R, Humphreys G. Computation on programmable graphics hardware. IEEE Computer Graphics and Applications, 2005, 25(5): 12–15.

    Article  Google Scholar 

  14. Fok K L, Wong T T, Wong M L. Evolutionary computing on consumer graphics hardware. IEEE Intelligent Systems, 2007, 22(2): 69–78.

    Article  Google Scholar 

  15. Kruger J, Westermann R. Linear algebra operators for GPU implementation of numerical algorithms. ACM Transactions on Graphics, 2003, 22(3): 908–916.

    Article  Google Scholar 

  16. Bolz J, Farmer I, Grinspun E, Schroder P. Sparse matrix solvers on the GPU: Conjugate gradients and multigrid. ACM Transactions on Graphics, 2003, 22(3): 917–924.

    Article  Google Scholar 

  17. Purcell T J, Buck I, Mark W R, Hanrahan P. Ray tracing on programmable graphics hardware. ACM Transactions on Graphics, 2002, 21(3): 703–712.

    Article  Google Scholar 

  18. Harris M. Fast Fluid Dynamics Simulation on the GPU. GPU Gems, Fernando R. (ed.), Addison Wesley, 2004.

  19. Govindaraju N K, Lloyd B, Wang W, Lin M, Manocha D. Fast computation of database operations using graphics processors. In Proc. the 2004 ACM SIGMOD International Conference on Management of Data, Paris, France, June 13–18, 2004, pp.215–226.

  20. Govindaraju N K, Raghuvanshi N, Manocha D. Fast and approximate stream mining of quantiles and frequencies using graphics processors. In Proc. the 2005 ACM SIGMOD International Conference on Management of Data, Baltimore, USA, June 14{16, 2005, pp.611–622.

  21. Buck I, Foley T, Horn D, Sugerman J, Fatahalian K, Houston M, Hanrahan P. Brook for GPUs: Stream computing on graphics hardware. ACM Trans. Graph., 2004, 23(3): 777–786.

    Article  Google Scholar 

  22. CUDA. Aug. 2007, http://developer.nvidia.com/object/cuda.html.

  23. Yamagiwa S, Sousa L. Caravela: A novel stream-based distributed computing environment. IEEE Computer, 2007, 40(5): 70–77.

    Google Scholar 

  24. Caravela. April 2007, http://www.caravela-gpu.org.

  25. DirectX. April 2007, http://www.microsoft.com/directx.

  26. Kessenich J, Baldwin D, Rost R. The OpenGL shading language. Technical Report, 3Dlabs, Inc. Ltd.

  27. Chung S, Forney G, Richardson T, Urbanke R. On the design of low-density parity-check codes within 0.0045 dB of the Shannon limit. IEEE Communications Letters, 2001, 5(2): 58–60.

    Article  Google Scholar 

  28. Wicker S B, Kim S. Fundamentals of Codes, Graphs, and Iterative Decoding. Kluwer Academic Publishers, 2003.

  29. Yamagiwa S, Sousa L, Antão D. Data buffering optimization methods toward a uniformed programming interface for GPU-based applications. In Proc. Int. Conf. Computer Frontiers, Ischia, Italy, May 7–9, 2007, pp.205–212.

  30. Encyclopedia of Sparse Graph Codes. April, 2007, http://www.inference. phy.cam.ac.uk/mackay/codes/data.html.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gabriel Falcão.

Additional information

This work was partially supported by the Portuguese Foundation for Science and Technology, through the FEDER program, and also under Grant No. SFRH/BD/37495/2007.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Falcão, G., Yamagiwa, S., Silva, V. et al. Parallel LDPC Decoding on GPUs Using a Stream-Based Computing Approach. J. Comput. Sci. Technol. 24, 913–924 (2009). https://doi.org/10.1007/s11390-009-9266-8

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11390-009-9266-8

Keywords

Navigation