Hardware-Based Linear Program Decoding With the Alternating Direction Method of Multipliers

We present a hardware-based implementation of linear program (LP) decoding for binary linear codes. LP decoding frames error–correction as an optimization problem. In contrast, variants of belief propagation (BP) decoding frame error–correction as a problem of graphical inference. LP decoding has several advantages over BP-based methods, including convergence guarantees and better error-rate performance in high-reliability channels. The latter makes LP decoding attractive for optical transport and storage applications. However, LP decoding, when implemented with general solvers, does not scale to large blocklengths and is not suitable for a parallelized implementation in hardware. It has been recently shown that the alternating direction method of multipliers (ADMM) can be applied to decompose the LP decoding problem. The result is a message-passing algorithm with a structure very similar to BP. We present modifications to this algorithm, resulting in a more intuitive and hardware-compatible form. This is particularly true for projection onto the parity polytope: the major computational primitive for ADMM-LP decoding. Furthermore, we present results for a fixed-point Verilog implementation of ADMM-LP decoding. This implementation targets a field-programmable gate array (FPGA) platform to evaluate error-rate performance and estimate resource usage. We show that frame error rate performance well within 0.5 dB of double-precision implementations is possible with 10-bit messages. Finally, we outline research opportunities that should be explored en route to an application-specific integrated circuit (ASIC) implementation that is capable of Gigabit-per-second throughput.

[1]  Ralf Koetter,et al.  Towards Low-Complexity Linear-Programming Decoding , 2006, ArXiv.

[2]  Vikram Arkalgud Chandrasetty,et al.  A multi-level Hierarchical Quasi-Cyclic matrix for implementation of flexible partially-parallel LDPC decoders , 2011, 2011 IEEE International Conference on Multimedia and Expo.

[3]  Richard W. Hamming,et al.  Error detecting and error correcting codes , 1950 .

[4]  Stark C. Draper,et al.  ADMM decoding of non-binary LDPC codes in F2m , 2014, 2014 IEEE International Symposium on Information Theory.

[5]  Yu-Cheng He,et al.  Efficient ADMM Decoding of LDPC Codes Using Lookup Tables , 2017, IEEE Transactions on Communications.

[6]  Stark C. Draper,et al.  Hardware-based linear programming decoding via the alternating direction method of multipliers , 2017, 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP).

[7]  Huang-Chang Lee,et al.  An Effective Low-Complexity Error-Floor Lowering Technique for High-Rate QC-LDPC Codes , 2018, IEEE Communications Letters.

[8]  Stark C. Draper,et al.  Hierarchical and High-Girth QC LDPC Codes , 2011, IEEE Transactions on Information Theory.

[9]  Donald E. Knuth,et al.  The art of computer programming: sorting and searching (volume 3) , 1973 .

[10]  Stephen P. Boyd,et al.  Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers , 2011, Found. Trends Mach. Learn..

[11]  Tom Goldstein,et al.  1-bit Massive MU-MIMO Precoding in VLSI , 2017, IEEE Journal on Emerging and Selected Topics in Circuits and Systems.

[12]  David J. C. MacKay,et al.  Good Error-Correcting Codes Based on Very Sparse Matrices , 1997, IEEE Trans. Inf. Theory.

[13]  D.E. Hocevar,et al.  A reduced complexity decoder architecture via layered decoding of LDPC codes , 2004, IEEE Workshop onSignal Processing Systems, 2004. SIPS 2004..

[14]  Bertrand Le Gal,et al.  Fast Converging ADMM-Penalized Algorithm for LDPC Decoding , 2016, IEEE Communications Letters.

[15]  Xiaopeng Jiao,et al.  Reduced-Complexity Linear Programming Decoding Based on ADMM for LDPC Codes , 2015, IEEE Communications Letters.

[16]  Kenneth E. Batcher,et al.  Sorting networks and their applications , 1968, AFIPS Spring Joint Computing Conference.

[17]  Stark C. Draper,et al.  LP-decodable multipermutation codes , 2014, 2014 52nd Annual Allerton Conference on Communication, Control, and Computing (Allerton).

[18]  Bertrand Le Gal,et al.  Implementation aspects of a pipeline ADMM-based LP decoding of LDPC convolutional codes , 2018, 2018 IEEE Wireless Communications and Networking Conference (WCNC).

[19]  Donald E. Knuth,et al.  The Art of Computer Programming: Volume 3: Sorting and Searching , 1998 .

[20]  Thomas J. Richardson,et al.  Error Floors of LDPC Codes , 2003 .

[21]  Jon Feldman,et al.  Decoding error-correcting codes via linear programming , 2003 .

[22]  Bertrand Le Gal,et al.  Real Time LP Decoding of LDPC Codes for High Correction Performance Applications , 2016, IEEE Wireless Communications Letters.

[23]  Paul H. Siegel,et al.  Adaptive Methods for Linear Programming Decoding , 2008, IEEE Transactions on Information Theory.

[24]  Bertrand Le Gal,et al.  Hardware design of Euclidean Projection modules for ADMM LDPC decoding , 2018, 2018 25th IEEE International Conference on Electronics, Circuits and Systems (ICECS).

[25]  Radford M. Neal,et al.  Near Shannon limit performance of low density parity check codes , 1996 .

[26]  David Declercq,et al.  FPGA design of high throughput LDPC decoder based on imprecise Offset Min-Sum decoding , 2015, 2015 IEEE 13th International New Circuits and Systems Conference (NEWCAS).

[27]  A. Glavieux,et al.  Near Shannon limit error-correcting coding and decoding: Turbo-codes. 1 , 1993, Proceedings of ICC '93 - IEEE International Conference on Communications.

[28]  X. Jin Factor graphs and the Sum-Product Algorithm , 2002 .

[29]  Yu-Cheng He,et al.  Memory-Reduced Look-Up Tables for Efficient ADMM Decoding of LDPC Codes , 2018, IEEE Signal Processing Letters.

[30]  Martin J. Wainwright,et al.  Using linear programming to Decode Binary linear codes , 2005, IEEE Transactions on Information Theory.

[31]  Stark C. Draper,et al.  Ju l 2 01 5 ADMM LP decoding of non-binary LDPC codes in F 2 m ∗ , 2018 .

[32]  Yoram Singer,et al.  Efficient Learning of Label Ranking by Soft Projections onto Polyhedra , 2006, J. Mach. Learn. Res..

[33]  Stephen G. Wilson,et al.  Multi-Gbps FPGA-Based Low Density Parity Check (LDPC) Decoder Design , 2007, IEEE GLOBECOM 2007 - IEEE Global Telecommunications Conference.

[34]  Stark C. Draper,et al.  Decomposition methods for large scale LP decoding , 2011, Allerton.

[35]  Bertrand Le Gal,et al.  Analysis of ADMM-LP algorithm for LDPC decoding, a first step to hardware implementation , 2015, 2015 IEEE International Conference on Electronics, Circuits, and Systems (ICECS).

[36]  Chao Chen,et al.  Improved ADMM Penalized Decoder for Irregular Low-Density Parity-Check Codes , 2015, IEEE Communications Letters.

[37]  Paul H. Siegel,et al.  Adaptive Cut Generation Algorithm for Improved Linear Programming Decoding of Binary Linear Codes , 2011, IEEE Transactions on Information Theory.

[38]  Stark C. Draper,et al.  Hardware based projection onto the parity polytope and probability simplex , 2015, 2015 49th Asilomar Conference on Signals, Systems and Computers.

[39]  R. M. Tanner,et al.  A Class of Group-Structured LDPC Codes , 2001 .

[40]  Shoab Ahmed Khan,et al.  Digital Design of Signal Processing Systems: A Practical Approach , 2011 .

[41]  Mihalis Yannakakis,et al.  Expressing combinatorial optimization problems by linear programs , 1991, STOC '88.

[42]  Amir H. Banihashemi,et al.  An Iterative Check Polytope Projection Algorithm for ADMM-Based LP Decoding of LDPC Codes , 2018, IEEE Communications Letters.

[43]  Stark C. Draper,et al.  The ADMM Penalized Decoder for LDPC Codes , 2014, IEEE Transactions on Information Theory.

[44]  Brendan J. Frey,et al.  Factor graphs and the sum-product algorithm , 2001, IEEE Trans. Inf. Theory.

[45]  Paul H. Siegel,et al.  Efficient iterative LP decoding of LDPC codes with alternating direction method of multipliers , 2013, 2013 IEEE International Symposium on Information Theory.

[46]  Martin J. Wainwright,et al.  LP Decoding Corrects a Constant Fraction of Errors , 2004, IEEE Transactions on Information Theory.

[47]  Koji Takinami,et al.  A 6.16Gb/s 4.7pJ/bit/iteration LDPC decoder for IEEE 802.11ad standard in 40nm LP-CMOS , 2015, 2015 IEEE Global Conference on Signal and Information Processing (GlobalSIP).

[48]  J. Yedidia,et al.  Construction of high-girth QC-LDPC codes , 2008, 2008 5th International Symposium on Turbo Codes and Related Topics.

[49]  Stark C. Draper,et al.  ADMM decoding on trapping sets , 2015, 2015 IEEE International Symposium on Information Theory (ISIT).

[50]  F. Moore,et al.  Polynomial Codes Over Certain Finite Fields , 2017 .

[51]  A. Blanksby,et al.  A 690-mW 1-Gb/s 1024-b, rate-1/2 low-density parity-check code decoder , 2001, IEEE J. Solid State Circuits.

[52]  Stark C. Draper,et al.  Multi-stage decoding of LDPC codes , 2009, 2009 IEEE International Symposium on Information Theory.

[53]  Gwan S. Choi,et al.  FPGA based implementation of decoder for array low-density parity-check codes , 2005, Proceedings. (ICASSP '05). IEEE International Conference on Acoustics, Speech, and Signal Processing, 2005..

[54]  Richard Heusdens,et al.  Large Scale LP Decoding with Low Complexity , 2013, IEEE Communications Letters.

[55]  David Burshtein Iterative approximate linear programming decoding of LDPC codes with linear complexity , 2009, IEEE Trans. Inf. Theory.

[56]  Stark C. Draper,et al.  Instanton search algorithm for the ADMM penalized decoder , 2014, 2014 IEEE International Symposium on Information Theory.

[57]  Shu Lin,et al.  Low-density parity-check codes based on finite geometries: A rediscovery and new results , 2001, IEEE Trans. Inf. Theory.

[58]  Yuan Zhou Introduction to Coding Theory , 2010 .

[59]  Robert G. Jeroslow On defining sets of vertices of the hypercube by linear inequalities , 1975, Discret. Math..

[60]  P. Glenn Gulak,et al.  A Multi-Gb/s Frame-Interleaved LDPC Decoder With Path-Unrolled Message Passing in 28-nm CMOS , 2018, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[61]  Paul H. Siegel,et al.  Error Floor Approximation for LDPC Codes in the AWGN Channel , 2014, IEEE Trans. Inf. Theory.

[62]  Xiaojie Zhang LDPC codes : structural analysis and decoding techniques , 2012 .

[63]  Stark C. Draper,et al.  Decomposition methods for large scale LP decoding , 2011, 2011 49th Annual Allerton Conference on Communication, Control, and Computing (Allerton).

[64]  Zhenhui Tan,et al.  THE MODERATE-THROUGHPUT AND MEMORY-EFFICIENT LDPC DECODER , 2006 .

[65]  Robert G. Gallager,et al.  Low-density parity-check codes , 1962, IRE Trans. Inf. Theory.

[66]  Vishwas Sundaramurthy,et al.  Pipelined Block-Serial Decoder Architecture for Structured Ldpc Codes , 2006, 2006 IEEE International Conference on Acoustics Speech and Signal Processing Proceedings.

[67]  David J. C. MacKay,et al.  Good Codes Based on Very Sparse Matrices , 1995, IMACC.

[68]  David Blaauw,et al.  Low-Power High-Throughput LDPC Decoder Using Non-Refresh Embedded DRAM , 2014, IEEE Journal of Solid-State Circuits.

[69]  Sanjeev Arora,et al.  Message-Passing Algorithms and Improved LP Decoding , 2009, IEEE Transactions on Information Theory.

[70]  Yoram Singer,et al.  Efficient projections onto the l1-ball for learning in high dimensions , 2008, ICML '08.

[71]  Mario Huemer,et al.  Combined linear programming/belief propagation decoder , 2008 .

[72]  Manabu Hagiwara,et al.  Quasicyclic low-density parity-check codes from circulant permutation matrices , 2009, IEEE Transactions on Information Theory.

[73]  Huang-Chang Lee,et al.  LDPC Decoding Scheduling for Faster Convergence and Lower Error Floor , 2014, IEEE Transactions on Communications.

[74]  Akin Tanatmis,et al.  Mathematical Programming Decoding of Binary Linear Codes: Theory and Algorithms , 2011, IEEE Transactions on Information Theory.