Parallel LDPC Decoding on GPUs Using a Stream-Based Computing Approach
Gabriel Falcão1 , Shinichi Yamagiwa2 , Vitor Silva1 and Leonel Sousa2, 3
(1) Department of Electrical and Computer Engineering, University of Coimbra, Instituto de Telecomunicações Polo II - Universidade de Coimbra, 3030-290 Coimbra, Portugal
(2) INESC-ID, Technical University of Lisbon, Rua Alves Redol n.9, 1000-029 Lisboa, Portugal
(3) Department of Electrical and Computer Engineering, IST, Technical University of Lisbon, Rua Alves Redol n.9, 1000-029 Lisboa, Portugal
Received: 8 July 2008 Revised: 20 May 2009 Published online: 28 September 2009
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.
Keywords data-parallel computing - graphics processing unit (GPU) - Caravela - low-density parity-check (LDPC) code - error correcting code
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.