LDPC encoding/decoding offload to the T2 card
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