Fast and Flexible Software Polar List Decoders

Flexibility is one mandatory aspect of channel coding in modern wireless communication systems. Among other things, the channel decoder has to support several code lengths and code rates. This need for flexibility applies to polar codes that are considered for control channels in the future 5G standard. This paper presents a new generic and flexible implementation of a software Successive Cancellation List (SCL) decoder. A large set of parameters can be fine-tuned dynamically without re-compiling the software source code: the code length, the code rate, the frozen bits set, the puncturing patterns, the cyclic redundancy check, the list size, the type of decoding algorithm, the tree-pruning strategy and the data quantization. This generic and flexible SCL decoder enables to explore tradeoffs between throughput, latency and decoding performance. Several optimizations are proposed to achieve a competitive decoding speed despite the constraints induced by the genericity and the flexibility. The resulting polar list decoder is about 4 times faster than previous generic software decoders and only 2 times slower than previous non-flexible unrolled decoders. Thanks to the flexibility of the decoder, the fully adaptive SCL algorithm can be easily implemented and achieves higher throughput than any other similar decoder in the literature, up to 425 Mb/s on a single processor core for N = 2048 and K = 1723 at 4.5 dB.

[1]  Gerhard Fettweis,et al.  Benefits and Impact of Cloud Computing on 5G Signal Processing: Flexible centralization through cloud-RAN , 2014, IEEE Signal Processing Magazine.

[2]  Bin Li,et al.  An Adaptive Successive Cancellation List Decoder for Polar Codes with Cyclic Redundancy Check , 2012, IEEE Communications Letters.

[3]  Dirk Wübben,et al.  Cloud technologies for flexible 5G radio access networks , 2014, IEEE Communications Magazine.

[4]  Christophe Jégo,et al.  MIPP: a Portable C++ SIMD Wrapper and its use for Error Correction Coding in 5G Standard , 2018, WPMVP@PPoPP.

[5]  Alexander Vardy,et al.  Increasing the speed of polar list decoders , 2014, 2014 IEEE Workshop on Signal Processing Systems (SiPS).

[6]  Alexander Vardy,et al.  Fast Polar Decoders: Algorithm and Implementation , 2013, IEEE Journal on Selected Areas in Communications.

[7]  Alexander Vardy,et al.  List decoding of polar codes , 2011, 2011 IEEE International Symposium on Information Theory Proceedings.

[8]  Xiaohu You,et al.  Low-latency software successive cancellation list polar decoder using stage-located copy , 2016, 2016 IEEE International Conference on Digital Signal Processing (DSP).

[9]  Takuji Nishimura,et al.  Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator , 1998, TOMC.

[10]  Warren J. Gross,et al.  A Semi-Parallel Successive-Cancellation Decoder for Polar Codes , 2013, IEEE Transactions on Signal Processing.

[11]  Alexander Vardy,et al.  Fast List Decoders for Polar Codes , 2015, IEEE Journal on Selected Areas in Communications.

[12]  Fabrice Guillemin,et al.  Towards the deployment of a fully centralized Cloud-RAN architecture , 2017, 2017 13th International Wireless Communications and Mobile Computing Conference (IWCMC).

[13]  Alexios Balatsoukas-Stimming,et al.  LLR-Based Successive Cancellation List Decoding of Polar Codes , 2013, IEEE Transactions on Signal Processing.

[14]  Peter Trifonov,et al.  Efficient Design and Decoding of Polar Codes , 2012, IEEE Transactions on Communications.

[15]  Vera Miloslavskaya,et al.  Shortened Polar Codes , 2015, IEEE Transactions on Information Theory.

[16]  M. E. Muller,et al.  A Note on the Generation of Random Normal Deviates , 1958 .

[17]  Aijun Liu,et al.  CRC Code Design for List Decoding of Polar Codes , 2017, IEEE Communications Letters.

[18]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[19]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[20]  Navid Nikaein,et al.  Processing Radio Access Network Functions in the Cloud: Critical Issues and Modeling , 2015, MCS '15.

[21]  Kai Chen,et al.  Beyond turbo codes: Rate-compatible punctured polar codes , 2013, 2013 IEEE International Conference on Communications (ICC).

[22]  Frank R. Kschischang,et al.  A Simplified Successive-Cancellation Decoder for Polar Codes , 2011, IEEE Communications Letters.

[23]  Rongke Liu,et al.  A Novel Puncturing Scheme for Polar Codes , 2014, IEEE Communications Letters.

[24]  Warren J. Gross,et al.  Low-Latency Software Polar Decoders , 2015, J. Signal Process. Syst..

[25]  Bertrand Le Gal,et al.  An Efficient, Portable and Generic Library for Successive Cancellation Decoding of Polar Codes , 2015, LCPC.

[26]  Bertrand Le Gal,et al.  Multi-Gb/s Software Decoding of Polar Codes , 2015, IEEE Transactions on Signal Processing.

[27]  Alexander Vardy,et al.  How to Construct Polar Codes , 2011, IEEE Transactions on Information Theory.

[28]  Erik Dahlman,et al.  4G: LTE/LTE-Advanced for Mobile Broadband , 2011 .

[29]  Bertrand Le Gal,et al.  Energy consumption analysis of software polar decoders on low power processors , 2016, 2016 24th European Signal Processing Conference (EUSIPCO).

[30]  David Chase,et al.  Class of algorithms for decoding block codes with channel measurement information , 1972, IEEE Trans. Inf. Theory.

[31]  Erdal Arikan,et al.  Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels , 2008, IEEE Transactions on Information Theory.

[32]  José Nelson Amaral,et al.  Using SIMD registers and instructions to enable instruction-level parallelism in sorting algorithms , 2007, SPAA '07.