An Efficient, Portable and Generic Library for Successive Cancellation Decoding of Polar Codes

  • Adrien Cassagne
  • Bertrand Le Gal
  • Camille Leroux
  • Olivier Aumage
  • Denis Barthou
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9519)


Error Correction Code decoding algorithms for consumer products such as Internet of Things (IoT) devices are usually implemented as dedicated hardware circuits. As processors are becoming increasingly powerful and energy efficient, there is now a strong desire to perform this processing in software to reduce production costs and time to market. The recently introduced family of Successive Cancellation decoders for Polar codes has been shown in several research works to efficiently leverage the ubiquitous SIMD units in modern CPUs, while offering strong potentials for a wide range of optimizations. The P-EDGE environment introduced in this paper, combines a specialized skeleton generator and a building blocks library routines to provide a generic, extensible Polar code exploration workbench. It enables ECC code designers to easily experiments with combinations of existing and new optimizations, while delivering performance close to state-of-art decoders.


Error correction codes Polar codes Successive cancellation decoding Generic programming Code generation Domain specific language SIMDization 



This study has been carried out with financial support from the French State, managed by the French National Research Agency (ANR) in the frame of the “Investments for the future” Programme IdEx Bordeaux - CPU (ANR-10-IDEX-03-02). The authors would also like to thank Guillaume Berhault for the helpful discussions.


  1. 1.
    Alamdar-Yazdi, A., Kschischang, F.: A simplified successive-cancellation decoder for polar codes. IEEE Commun. Lett. 15(12), 1378–1380 (2011)CrossRefGoogle Scholar
  2. 2.
    Arikan, E.: Channel polarization: a method for constructing capacity-achieving codes for symmetric binary-input memoryless channels. IEEE Trans. Inf. Theory 55(7), 3051–3073 (2009)CrossRefMathSciNetGoogle Scholar
  3. 3.
    Berrou, C., Glavieux, A., Thitimajshima, P.: Near shannon limit error-correcting coding and decoding: Turbo-codes. 1. In: IEEE International Conference on Communications, 1993. ICC 1993 Geneva. Technical Program, Conference Record, vol. 2, pp. 1064–1070, May 1993Google Scholar
  4. 4.
    Gallager, R.G.: Low-density parity-check codes (1963)Google Scholar
  5. 5.
    Giard, P., Sarkis, G., Thibeault, C., Gross, W.: Fast software polar decoders. In: 2014 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 7555–7559, May 2014Google Scholar
  6. 6.
    Gottschling, P., Wise, D.S., Joshi, A.: Generic support of algorithmic and structural recursion for scientific computing. Int. J. Parallel, Distrib. Syst. (IJPEDS) 24(6), 479–503 (2009)CrossRefMathSciNetzbMATHGoogle Scholar
  7. 7.
    Le Gal, B., Leroux, C., Jego, C.: Software polar decoder on an embedded processor. In: Proceedings of the IEEE International Workshop on Signal Processing Systems (SIPS 2014), pp. 1–6. Belfast, October 2014Google Scholar
  8. 8.
    Le Gal, B., Leroux, C., Jego, C.: Multi-gb/s software decoding of polar codes. IEEE Trans. Sig. Process 63(2), 349–359 (2015)CrossRefGoogle Scholar
  9. 9.
    MacKay, D.J.: Good error-correcting codes based on very sparse matrices (1999)Google Scholar
  10. 10.
    Puschel, M., Moura, J., Johnson, J., Padua, D., Veloso, M., Singer, B., Xiong, J., Franchetti, F., Gacic, A., Voronenko, Y., Chen, K., Johnson, R., Rizzolo, N.: Spiral: code generation for DSP transforms. Proc. IEEE 93(2), 232–275 (2005)CrossRefGoogle Scholar
  11. 11.
    Sarkis, G., Giard, P., Thibeault, C., Gross, W.: Autogenerating software polar decoders. In: 2014 IEEE Global Conference on Signal and Information Processing (GlobalSIP), pp. 6–10 (2014)Google Scholar
  12. 12.
    Sarkis, G., Giard, P., Vardy, A., Thibeault, C., Gross, W.: Fast polar decoders: algorithm and implementation. IEEE J. Sel. Areas Commun. 32(5), 946–957 (2014)CrossRefGoogle Scholar
  13. 13.
    Shannon, C.: A mathematical theory of communication. Bell Syst. Tech. J. 27(379–423), 623–656 (1948)CrossRefMathSciNetGoogle Scholar
  14. 14.
    Spampinato, D.G., Püschel, M.: A basic linear algebra compiler. In: Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization, pp. 23:23–23:32, CGO 2014. ACM, New York (2014).
  15. 15.
    Stroustrup, B.: The C++ Programming Language, 4th edn. Addison-Wesley Professional, Boston (2013)Google Scholar
  16. 16.
    Treibig, J., Hager, G.: Introducing a performance model for bandwidth-limited loop kernels. CoRR abs/0905.0792 (2009).
  17. 17.
    Walter, J., Koch, M.: ublas.
  18. 18.
    Whaley, R.C., Petitet, A., Dongarra, J.: Automated empirical optimizations of software and the atlas project 27(1–2), 3–35 (2001)Google Scholar
  19. 19.
    Williams, S., Waterman, A., Patterson, D.: Roofline: an insightful visual performance model for multicore architectures. Commun. 52(4), 65–76. ACM (2009).

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Adrien Cassagne
    • 1
    • 2
  • Bertrand Le Gal
    • 1
  • Camille Leroux
    • 1
  • Olivier Aumage
    • 2
  • Denis Barthou
    • 2
  1. 1.IMSUniversity of Bordeaux, INPBordeauxFrance
  2. 2.Inria/LabriUniversity of Bordeaux, INPBordeauxFrance

Personalised recommendations