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.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Gallager R G. Low-density parity-check codes. IRE Transactions on Information Theory, 1962, 8(1): 21–28.
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.
Lin S, Costello D J. Error Control Coding. 2nd Ed., Prentice Hall, 2004.
Tanner R. A recursive approach to low complexity codes. IEEE Transactions on Information Theory, 1981, 27(5): 533–547.
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.
Ping L, Leung W K. Decoding low density parity check codes with finite quantization bits. IEEE Communications Letters, 2000, 4(2): 62–64.
Zhang T, Parhi K. Joint (3; k)-regular LDPC code and decoder/encoder design. IEEE Transactions on Signal Processing, 2004, 52(4): 1065–1079.
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.
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.
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.
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.
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.
Goodnight N, Wang R, Humphreys G. Computation on programmable graphics hardware. IEEE Computer Graphics and Applications, 2005, 25(5): 12–15.
Fok K L, Wong T T, Wong M L. Evolutionary computing on consumer graphics hardware. IEEE Intelligent Systems, 2007, 22(2): 69–78.
Kruger J, Westermann R. Linear algebra operators for GPU implementation of numerical algorithms. ACM Transactions on Graphics, 2003, 22(3): 908–916.
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.
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.
Harris M. Fast Fluid Dynamics Simulation on the GPU. GPU Gems, Fernando R. (ed.), Addison Wesley, 2004.
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.
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.
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.
CUDA. Aug. 2007, http://developer.nvidia.com/object/cuda.html.
Yamagiwa S, Sousa L. Caravela: A novel stream-based distributed computing environment. IEEE Computer, 2007, 40(5): 70–77.
Caravela. April 2007, http://www.caravela-gpu.org.
DirectX. April 2007, http://www.microsoft.com/directx.
Kessenich J, Baldwin D, Rost R. The OpenGL shading language. Technical Report, 3Dlabs, Inc. Ltd.
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.
Wicker S B, Kim S. Fundamentals of Codes, Graphs, and Iterative Decoding. Kluwer Academic Publishers, 2003.
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.
Encyclopedia of Sparse Graph Codes. April, 2007, http://www.inference. phy.cam.ac.uk/mackay/codes/data.html.
Author information
Authors and Affiliations
Corresponding author
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
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
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11390-009-9266-8