Skip to content

LDPC encoding/decoding offload to the T2 card

Jaroslava Fiedlerova requested to merge t2-offload-mr into develop

This MR consists of 3 main parts:

  • removal of the T1 related code
  • cleanup and refactor of the LDPC encoder/decoder interface between OAI main code and the CPU, GPU, FPGA
  • add LDPC encoder/decoder offload to the T2 card with DPDK/bbdev API

Verification of the T2 LDPC encoder/decoder functionality with OAI:

  • physical simulators --> OK
    • tested with nr_ulsim and nr_dlsim for different MCS, SNR and TB size
  • rfsim (without retransmissions) --> OK
    • test setup: single OAI UE, 40 MHz BW, DDSUU
    • ping, UL&DL UDP and TCP iperf test - similar throughput results as for OAI CPU encoder/decoder
  • OTA --> occasional blocking of the card
    • test setup: single UE (Quectel RM500Q), USPR N310, 60 MHz BW, DDSUU
    • ping, UL&DL UDP and TCP iperf test
    • tested for 2000s, separately with UL TCP iperf and DL TCP iperf without blocking of the card

Current issues and limitations (to be addressed in future commits/MRs):

  • T2 LDPC encoder used for MCS > 2, not functional for MCS < 2.
  • Card gets stuck after an unparedictable amount of time.
    • blocking in the decoder function, reset of the card required
    • reproducable in rfsim (with retransmissions only), OTA single and multi UE scenario
  • T tracer dependency issue

fatal error: T_IDs.h: No such file or directory

  • ldpctest with cuda fails

GPUassert: invalid argument /home/oaicicd/jaroslava/test_t2/openair1/PHY/CODING/nrLDPC_decoder_LYC/nrLDPC_decoder_LYC.cu 481

Edited by Jaroslava Fiedlerova

Merge request reports