Abstract
In this paper, efficient LDPC block-code decoders/simulators which run on graphics processing units (GPUs) are proposed. We also implement the decoder for the LDPC convolutional code (LDPCCC). The LDPCCC is derived from a predesigned quasi-cyclic LDPC block code with good error performance. Compared to the decoder based on the randomly constructed LDPCCC code, the complexity of the proposed LDPCCC decoder is reduced due to the periodicity of the derived LDPCCC and the properties of the quasi-cyclic structure. In our proposed decoder architecture, (Γ) (Γ) is a multiple of a warp) codewords are decoded together, and hence, the messages of (Γ) codewords are also processed together. Since all the (Γ) codewords share the same Tanner graph, messages of the (Γ) distinct codewords corresponding to the same edge can be grouped into one package and stored linearly. By optimizing the data structures of the messages used in the decoding process, both the read and write processes can be performed in a highly parallel manner by the GPUs. In addition, a thread hierarchy minimizing the divergence of the threads is deployed, and it can maximize the efficiency of the parallel execution. With the use of a large number of cores in the GPU to perform the simple computations simultaneously, our GPU-based LDPC decoder can obtain hundreds of times speedup compared with a serial CPU-based simulator and over 40 times speedup compared with an eight-thread CPU-based simulator.
Original language | English |
---|---|
Article number | 6470607 |
Pages (from-to) | 663-672 |
Number of pages | 10 |
Journal | IEEE Transactions on Parallel and Distributed Systems |
Volume | 25 |
Issue number | 3 |
DOIs | |
Publication status | Published - 1 Mar 2014 |
Keywords
- CUDA
- graphics processing unit (GPU)
- LDPC
- LDPC convolutional code
- LDPC decoder
- LDPCCC decoder
- OpenMP
- parallel computing
ASJC Scopus subject areas
- Signal Processing
- Hardware and Architecture
- Computational Theory and Mathematics