• DocumentCode
    68981
  • Title

    Implementation of Decoders for LDPC Block Codes and LDPC Convolutional Codes Based on GPUs

  • Author

    Yue Zhao ; Lau, Francis C. M.

  • Author_Institution
    Dept. of Electron. & Inf. Eng., Hong Kong Polytech. Univ., Kowloon, China
  • Volume
    25
  • Issue
    3
  • fYear
    2014
  • fDate
    Mar-14
  • Firstpage
    663
  • Lastpage
    672
  • 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 quasicyclic 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.
  • Keywords
    block codes; codecs; convolutional codes; data structures; decoding; graphics processing units; parity check codes; GPU; LDPC block-code decoders/simulators; LDPC convolutional code decoder; LDPCCC decoder; Tanner graph; data structures; decoding process; graphics processing units; quasi-cyclic LDPC block code; quasicyclic structure; read and write processes; Block codes; Convolutional codes; Decoding; Graphics processing units; Iterative decoding; Message systems; CUDA; LDPC; LDPC convolutional code; LDPC decoder; LDPCCC decoder; OpenMP; graphics processing unit (GPU); parallel computing;
  • fLanguage
    English
  • Journal_Title
    Parallel and Distributed Systems, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    1045-9219
  • Type

    jour

  • DOI
    10.1109/TPDS.2013.52
  • Filename
    6470607