A GPU Implementation of Belief Propagation Decoder for Polar Codes
Bharath Kumar Reddy L. and Nitin Chandrachoodan
Indian Institute of Technology Madras
Nov 6, 2012
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 1 / 29
A GPU Implementation of Belief Propagation Decoder for Polar Codes - - PowerPoint PPT Presentation
A GPU Implementation of Belief Propagation Decoder for Polar Codes Bharath Kumar Reddy L. and Nitin Chandrachoodan Indian Institute of Technology Madras Nov 6, 2012 Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 1 / 29 Outline
Indian Institute of Technology Madras
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 1 / 29
1
2
3
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 2 / 29
1
2
3
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 3 / 29
Channel capacity polarization as a function of channel instance.
Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels”, IEEE Trans. Info. Theory, 2009 Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 4 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 5 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 5 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 6 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 6 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 7 / 29
+ + + + + + + + + + + + + + + + + + + + + + +
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 8 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 9 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 10 / 29
1
2
3
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 11 / 29
Bit Reversal SHUFFLE UPDATE RE- SHUFFLE Bit Reversal
L R Error Count
Compute Intensive
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 12 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 13 / 29
LL1 R1 LL2 R2 L1 RR1 L2 RR2
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 14 / 29
LL1 R1 LL2 R2 L1 RR1 L2 RR2
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 14 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 15 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 15 / 29
1536 128 = 8 (12 > 8)
1536 256 = 6
1536 512 = 3
1536 1024 = 1
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 16 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 17 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 17 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 18 / 29
GPU Polar Codes Nov 6, 2012 18 / 29
0.5 1 1.5 2 2.5 3 3.5 10
−6
10
−5
10
−4
10
−3
10
−2
10
−1
10 FER for codelength 1024 Eb/N0(dB) FER
10 iterations 15 iterations 20 iterations 25 iterations 30 iterations 35 iterations 100 iterations
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 19 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 20 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 20 / 29
1
2
3
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 21 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 22 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 23 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 24 / 29
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 25 / 29
2The CPU code was executed on a single core using the general compiler optimizations. O3 flag was used Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 26 / 29
0.5 1 1.5 2 2.5 3 3.5 10
−6
10
−5
10
−4
10
−3
10
−2
10
−1
10 FER for codelength 256 Eb/N0(dB) FER
10 iterations 15 iterations 20 iterations 25 iterations 30 iterations 35 iterations 100 iterations
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 27 / 29
0.5 1 1.5 2 2.5 3 3.5 10
−6
10
−5
10
−4
10
−3
10
−2
10
−1
10 FER for codelength 512 Eb/N0(dB) FER
10 iterations 15 iterations 20 iterations 25 iterations 30 iterations 35 iterations 100 iterations
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 28 / 29
0.5 1 1.5 2 2.5 3 3.5 10
−6
10
−5
10
−4
10
−3
10
−2
10
−1
10 FER for codelength 2048 Eb/N0(dB) FER
10 iterations 15 iterations 20 iterations 25 iterations 30 iterations 35 iterations 100 iterations
Bharath et al. (IIT Madras) GPU Polar Codes Nov 6, 2012 29 / 29