Romain Beurdouche
6b660e4091
fix(nrLDPC_decoder): Cleaning LDPC iteration accounting in NR
...
The idea is to make LDPC iteration accounting more standard from a C coding perspective by making two changes:
1. Now the iteration counter starts at 0 for the first iteration and goes up to max_ldpc_iterations - 1 for the last iteration.
If it is equal to max_ldpc_iterations, it means that decoding failed.
2. A chain of useless returns in the UE DLSCH decoding call chain was removed.
2025-03-10 15:11:19 +00:00
Romain Beurdouche
b6bedf1216
fix(nrLDPC_decoder): fix numIter increment
...
The logs of `./nr_ulsim -n100 -m19 -s12 -S12 -z2 -L4` were showing that sometimes the decoding of one segment was failing while the CRC check succeeded.
This was happening because the iteration counter `numIter` was not properly managed so that when the last iteration was successful to decode the segment
still `numIter` at the exit was equal to `numMaxIter` plus 1 so that decoding was considered to have failed.
In other words the last iteration if it occured was always wasted.
This commit offers to solve this problem by simply moving the iteration counter increment at the end of the iteration loop
while remaining careful at fixing the tests relying on this counter.
2025-03-06 13:03:14 +00:00
Romain Beurdouche
9586db6bfd
fix(nrLDPC_decoder): Rename E in Kprime in segment decoder parameters to comply with standard naming
2025-01-10 08:54:37 +00:00
Laurent THOMAS
99ca87a1c1
Refactor LDPC API to make common API with various implementations
2023-11-28 09:37:37 +01:00
Raymond Knopp
a7bc282302
First-level of support for new aarch64 machines
...
Testing on Neoverse N1 (Ampere 3GHz). Tested only on a subset of phy-simulators.
- Changes:
- use SIMDE consistently
- adaptations of LDPC decoder generator for ARMv8 performance
- SIMDe modifications of Intel CRC to allow for aarch64 build.
optimizations for 128-bit to improve performance of LDPC encode/decode
on aarch64 (Neoverse 1)
- added BG2 files for 128-bit ldpc encoder (aarch64)
- testing on Xeon
- testing on x86
- minor changes to build/run on x86
- change in crc.h after returning to aarch64
- removed some warning in ldpc decoder generator for x86_64
- char
- Delete irrelevant constants
- Correctly declare variables
- Define stdbool for all architectures
- Remove definition of _MM_SHUFFLE and use SIMDE_MM_SHUFFLE
- Remove commented code
- Fix CMakeLists.txt
- Include SIMDE avx2 functions in tools_defs.h
2023-09-13 17:19:20 +02:00
laurent
615324294b
ldpc check based on crc
2023-06-12 10:24:57 +02:00
Laurent THOMAS
3645c96c09
remove generic thread pool abort
2023-06-12 10:24:37 +02:00
Bruno Mongazon-Cazavet
fe1dc24e28
Add Intrinsics usage by SIMDE
2022-09-28 18:21:19 +02:00
Raymond Knopp
f6bb869c0b
fixed AVX2 issue for cnProc code generator. Some cleanup in formatting and deleting unused files.
2022-06-12 23:23:07 +02:00
Robert Schmidt
dde6d61dd4
Dynamically create LDPC decoder headers when building ldpc libs
2022-06-09 15:03:13 +02:00
Raymond Knopp
63b28d3610
clean up (removal) of ldpc generated files on repository
2022-05-03 21:26:18 +02:00
Raymond Knopp
8506307ef0
Merge remote-tracking branch 'origin/develop' into ldpc-decoder-codegen
...
Conflicts:
cmake_targets/build_oai
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_init_mem.h
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_types.h
openair1/PHY/NR_REFSIG/ptrs_nr.c
2022-05-02 22:41:48 +02:00
Sakthivel Velumani
a8a5897a98
Cherry pick ldpc-decoder-crc-check
...
commit: 3cfefe3c6f7b2854a14d94fb7072ece2ff4c5c0a
2022-01-20 21:08:44 +05:30
Raymond Knopp
1f9900ba61
LDPC decoder generator cleanup
2022-01-19 23:01:27 +01:00
Raymond Knopp
7d9b3464a8
Merge branch 'ldpc-decoder-codegen' of https://gitlab.eurecom.fr/oai/openairinterface5g into ldpc-decoder-codegen
...
Conflicts:
cmake_targets/CMakeLists.txt
cmake_targets/ldpctest_BG_1_Zc_384_rate_1-3_block_length_8448_maxit_5.txt
openair1/PHY/CODING/nrLDPC_decoder.c
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h_native_memcpy
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_avx2
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/bnProc_gen_avx512
2022-01-05 14:55:13 +01:00
Raymond Knopp
13b8abc310
Merge branch 'develop' into ldpc-decoder-codegen
...
Conflicts:
cmake_targets/CMakeLists.txt
cmake_targets/build_oai
openair1/PHY/TOOLS/time_meas.h
2021-12-24 18:19:13 +01:00
Sy
cd2b80e6c2
some cleanup
2021-12-22 22:36:42 +01:00
Sy
5521e34360
my Internship project
2021-11-25 17:34:02 +01:00
frtabu
41ba9a5afb
Fix rebasing problems
2021-10-27 14:42:12 +02:00
Eurecom
c834f40186
Merge remote-tracking branch 'origin/develop' into bandwidth-testing
...
Conflicts:
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.h
executables/softmodem-common.h
openair1/PHY/MODULATION/slot_fep_nr.c
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
openair1/PHY/NR_TRANSPORT/pucch_rx.c
openair1/SCHED_NR/fapi_nr_l1.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SIMULATION/TOOLS/abstraction.c
openair1/SIMULATION/TOOLS/random_channel.c
openair2/LAYER2/NR_MAC_UE/mac_proto.h
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2021-09-05 15:37:11 +02:00
Raymond Knopp
8e4763bf94
small change in ulsch_decoder to allow segment even if parity-check fails but CRC passes.
2021-09-04 21:36:41 +02:00
Laurent THOMAS
fcda7b97fe
add sanitize option, merge develop
2021-03-19 12:21:04 +01:00
Raymond Knopp
3bc433a5f8
bugfix from type in last commit
2020-08-27 07:18:49 +02:00
Sy
845a226410
optimized 5G NR LDPC decoder
2020-07-06 02:34:12 +02:00
Sy
559e8fdcd2
degradation of performance in BLER fixed | bnProc & bnProcPc unrolled | small improvement in times
2020-07-01 18:37:52 +02:00
Sy
0f704894f4
degradation of performance in BLER corrected | bnProc & bnProcPc unrolled
2020-07-01 14:12:53 +02:00
Sy
5e5bc1a9e3
Effective management of all values of Z (lifting size) and all R (coding rate) for BG1 & BG2 |
...
some improvement in decoding time | (bnProcPc reduces 2x)
2020-06-27 02:07:13 +02:00
Sy
394f0deb1b
bnProcPc and bnProc unrolled | BN treatment, small improvement in times at the expense of degraded performance in BLER , reordering of generated files
2020-06-19 23:38:37 +02:00
Raymond Knopp
55e32f6e8c
removed unnecessary include files
2020-06-06 10:57:33 +02:00
Sy
9b11d0b593
full version of the optimized 5NR LDPC decoder
2020-06-03 22:51:05 +02:00
Sy
301317eca6
full version of the optimized 5NR LDPC decoder
2020-06-03 19:04:20 +02:00
Raymond Knopp
a6af0d99ce
minor fix for AVX2/AVX512 switch
2020-06-02 13:19:35 +02:00
matzakos
956d9aa1d8
added selection between AVX2 and AVX512
2020-06-02 12:06:38 +02:00
Raymond Knopp
8663ee697e
chages in AVX512 code generator. Yields small improvement compared to AVX2, BLER performance is still degraded.
2020-06-01 14:40:11 +02:00
Sy
5e5e487e4c
Test for avx512
2020-05-29 11:58:55 +02:00
Sy
bdd12a3396
Testing for avx512
2020-05-27 13:41:57 +02:00
Sy
bfad636369
Testing for avx512
2020-05-26 16:50:32 +02:00
Sy
00a8df6f8f
generated CN processing files according to the values of Z | version for AVX2 and AVX512| BG1 & BG2
2020-05-25 14:34:07 +02:00
Sy
a1b81d9475
generated files for CN processing according to the values of Z | version for AVX2 and AVX512
2020-05-23 22:07:22 +02:00
Sy
140fa111c4
file generated for CN processing according to the values of Z | version for AVX2 and AVX512
2020-05-23 21:39:17 +02:00
Sy
71a8d19b7d
use of avx2 & avx512 at CN Processing level
2020-05-18 13:58:44 +02:00
Sy
e785891fb1
integration of the generated file (nrLDPC_cnProc_BG1_Z384_13 with the LDPC decoder at the base
2020-05-07 16:28:01 +02:00
Raymond Knopp
7491e23dbd
Merge remote-tracking branch 'origin/develop' into NR_RRCConfiguration
2020-03-15 18:13:11 +01:00
frtabu
8928cfe57d
move ldpc coder/decoder into a shared lib dymically loaded. Also fix a record player bug
2020-03-11 17:32:13 +01:00
Raymond Knopp
d554707919
Merge remote-tracking branch 'origin/develop-nr' into NR_RRCConfiguration
...
Conflicts:
cmake_targets/CMakeLists.txt
executables/nr-gnb.c
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_types.h
openair1/PHY/INIT/nr_init_ue.c
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
openair1/PHY/NR_UE_TRANSPORT/nr_prach.c
openair2/COMMON/rrc_messages_types.h
openair2/GNB_APP/gnb_config.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/nr_rrc_defs.h
openair2/RRC/NR/rrc_gNB.c
2019-10-10 12:29:20 +02:00
Sebastian Wagner
03da0a5ed8
CI: fixing compilation warning in phy simulators
...
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr >
2019-10-05 11:24:03 +02:00
Raymond Knopp
b2bdf7eb9a
temporary commit
2019-09-11 10:57:31 +02:00
Hongzhi Wang
39fa3e001c
adding ldpc decoder code rate adaptation
2019-03-04 16:54:56 +01:00
Sebastian Wagner
eb5c33ded1
WIP: Replacing buffers, ldpctest passes, free does not work, TODO: implementation into softmodem
2018-12-07 18:18:17 +01:00
Florian Kaltenberger
5144d1f50b
disabling profiling for LDPC decoder as this seems to cause a segfault in ldpctest (although I am pretty sure this fixes just the symptoms and not the real cause)
2018-11-23 16:44:55 +01:00