Skip to content

Parallelize the Compensation, LLR, layer de-mapping, and unscrambling with symbol

Tsung Yu Chan requested to merge pusch-llr-parallelize into develop

In this MR, we parallelize Rb extraction, Compensation, LLR, layer de-mapping, and unscrambling by symbol. This feature we develop on pusch-parallelization branch. I split this feature to this branch for a merge request

  • Improve the performance of Rb extraction, Compensation, LLR, layer de-mapping, and unscrambling
  • Run nr_ulsim with -C, when the number of threads equal to the symbol with data can get the most enhanced improvement
  • Modify the nr_ulsim performance output

The following is the performance between this MR version and the develop branch (2023.w37). In this MR version, PUSCH Symbol Processing includes the Rb extraction, Compensation, LLR, layer de-mapping, and unscrambling

QAM develop (us) MR (us) improved (MR / develop)
QPSK 810.26 164.69 20.32 %
16QAM 1134.06 199.58 17.60 %
64QAM 1253.03 217.01 17.32 %
256QMA 1215.6 240.02 19.75 %
  • QPSK sudo ./nr_ulsim -P -U0,1,1,2 -R273 -r273 -z8 -n500 -b14 -C14 -m4
    • SNR -2
    • RX PUSCH Initialization time 37.36 us
    • RX PUSCH Symbol Processing time 127.33 us
    • Total: 164.69 us
  • 16QAM sudo ./nr_ulsim -P -U0,1,1,2 -R273 -r273 -z8 -n500 -b14 -C14 -m12 -s2
    • SNR 2
    • RX PUSCH Initialization time 51.81 us
    • RX PUSCH Symbol Processing time 147.77 us
    • Total: 199.58 us
  • 64QAM sudo ./nr_ulsim -P -U0,1,1,2 -R273 -r273 -z8 -n500 -b14 -C14 -m23 -s10
    • SNR 10.4
    • RX PUSCH Initialization time 58.37 us
    • RX PUSCH Symbol Processing time 158.64 us
    • Total: 217.01 us
  • 256QAM sudo ./nr_ulsim -P -U0,1,1,2 -R273 -r273 -z8 -n500 -b14 -C14 -m23 -q1 -s23
    • SNR 20
    • RX PUSCH Initialization time 70.75 us
    • RX PUSCH Symbol Processing time 169.27 us
    • Total: 240.02 us

——————————————————————————————————————————————————————————————————

  • QPSK sudo ./nr_ulsim -P -U0,1,1,2 -R273 -r273 -z8 -n500 -b14 -C14 -m4
    • SNR -2
    • ULSCH rbs extraction time 16.94 us (12 symbols)
    • ULSCH channel compensation time 15.64 us (12 symbols)
    • ULSCH mrc computation 29.52 us (12 symbols)
    • ULSCH llr computation 2.63 us (12 symbols)
    • ULSCH layer demapping 20.91 us
    • ULSCH unscrambling 12.59 us
    • Total: 810.26 us
  • 16QAM sudo ./nr_ulsim -P -U0,1,1,2 -R273 -r273 -z8 -n500 -b14 -C14 -m12 -s2
    • SNR 2
    • ULSCH rbs extraction time 17.16 us (12 symbols)
    • ULSCH channel compensation time 46.61 us (12 symbols)
    • ULSCH mrc computation 22.17 us (12 symbols)
    • ULSCH llr computation 3.35 us (12 symbols)
    • ULSCH layer demapping 38.12 us
    • ULSCH unscrambling 24.46 us
    • Total: 1134.06 us
  • 64QAM sudo ./nr_ulsim -P -U0,1,1,2 -R273 -r273 -z8 -n500 -b14 -C14 -m23 -s10
    • SNR 10.2
    • ULSCH rbs extraction time 17.37 us (12 symbols)
    • ULSCH channel compensation time 48.05 us (12 symbols)
    • ULSCH mrc computation 23.43 us (12 symbols)
    • ULSCH llr computation 8.02 us (12 symbols)
    • ULSCH layer demapping 53.05 us
    • ULSCH unscrambling 37.54 us
    • Total: 1253.03 us
  • 256QAM sudo ./nr_ulsim -P -U0,1,1,2 -R273 -r273 -z8 -n500 -b14 -C14 -m23 -q1 -s23
    • SNR 20
    • ULSCH rbs extraction time 17.34 us (12 symbols)
    • ULSCH channel compensation time 47.86 us (12 symbols)
    • ULSCH mrc computation 22.66 us (12 symbols)
    • ULSCH llr computation 3.41 us (12 symbols)
    • ULSCH layer demapping 71.68 us
    • ULSCH unscrambling 48.68 us
    • Total: 1215.6 us
Edited by Tsung Yu Chan

Merge request reports