Commit Graph
165 Commits
Author SHA1 Message Date
Jaroslava Fiedlerova 432fee1a6e Configure T2 EAL Parameters via Command Line
- Introduced command line and configuration options to set up PCI address, CPU cores used by DPDK, and DPDK file prefix for T2 offload.
- Made the dpdk_dev parameter (for setting the PCI address of the T2) mandatory.
- Configure dpdk_dev in the CI test cases.
2024-06-27 14:53:17 +02:00
Jaroslava Fiedlerova fe0d70e8f3 Replace bbdev TEST_ASSERTs by OAI macro AssertFatal()
- Replaced bbdev TEST_ASSERTs with the OAI macro AssertFatal() to harmonize error handling.
- Removed unused functions and macros from nrLDPC_offload.h.
2024-06-27 14:47:32 +02:00
Jaroslava Fiedlerova 6bec8779c6 Enhance T2 Offload for gNB and UE
- Reworked nrLDPC_decoder_offload.c to process all segments in a TB with a single call to LDPCdecoder() or LDPCencoder().
- Perform CRC checks on the T2.
- Modified nr_ulsch_decoding (gNB decoder) to:
  - Count processed segments.
  - Properly perform CRC checks.
- Created a constant NR_LDPC_MAX_NUM_CB to define the maximum number of codeblocks.
- Conditional library loading:
  - On gNB: Load ldpc_t2 library if offload is enabled using the --ldpc-offload-enable flag.
  - On UE: Load both ldpc_t2 and ldpc libraries since only encoder offload is supported.
- General cleanup of nrLDPC_decoder_offload.c for improved readability and maintainability.
- Modified the structure of LDPC encoder/decoder/offload parameters:
  - Introduced a structure for code block (CB) related parameters.
  - Removed parameter E from the encoder and offload parameter structures for clarity.
  - Replaced E with perCB->E_cb in the UE encoder code.
2024-06-27 14:40:41 +02:00
Jaroslava Fiedlerova 87242ca92a Merge remote-tracking branch 'origin/fix_cppcheck' into integration_2024_w15 2024-04-12 09:18:07 +02:00
Jaroslava Fiedlerova 3c3c1e6fe6 T2 related modifications of CMakeLists and documentation
- Modify T2 PCI adr for CI T2 test setup
- Set PKG_CONFIG_PATH env var manually if needed (DPDK lib installed into custom path)
2024-04-11 15:34:43 +02:00
francescomani 9cc53a43b1 invalidPrintfArgType_uint 2024-04-09 16:44:56 +02:00
francescomani 686da85d05 invalidPrintfArgType_sint 2024-04-09 16:44:56 +02:00
Jaroslava Fiedlerova b166286a78 Use clang format 2024-01-25 17:21:32 +01:00
Jaroslava Fiedlerova bec8ebc311 Perform interleaving on the T2 card
- UE and gNB encoder modification
- update T2 related doc
2024-01-25 17:21:32 +01:00
Jaroslava Fiedlerova aa9cd6394a T2: Enable LDPC encoding offload for all MCS
- Rate matching performed by card
- Due to rate matching on card, small TBs are encoded correctly, so the
  limitation of encoding small TBs in CPU can be lifted (all TBs encoded
  on T2), see a later commits
2024-01-25 17:21:11 +01:00
Jaroslava Fiedlerova c66b09c8a3 T2: Fix buffer overflow and HARQ codeblock ID out of range
- set size of buffers to max E
- change HARQ codeblock offset calculation for T2
- add constant for maximum code block size - max E
2023-12-21 11:19:13 +01:00
Jaroslava Fiedlerova 7c5b945766 Set RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE based on harq_to_be_cleared value 2023-11-28 09:37:37 +01:00
laurent 7bb529dcdf fix redundant member in ldpc decoder struct 2023-11-28 09:37:37 +01:00
Jaroslava Fiedlerova cf97acb8c7 Add T2 LDPC encoding/decoding offload 2023-11-28 09:37:37 +01:00
Laurent THOMAS 99ca87a1c1 Refactor LDPC API to make common API with various implementations 2023-11-28 09:37:37 +01:00
Jaroslava Fiedlerova e945b260f8 Remove T1 decoding offload 2023-11-28 09:37:37 +01:00
Raphael Defosseux 80c2bc3fcb fix(arm-build): immintrin.h is not available
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2023-10-20 11:36:39 +02:00
Tsung-Yu Chan 1f2098fcce feat / work with cross-compile
can compile the target ldpc_generators and generate_T with cross-compiler
2023-09-13 17:20:08 +02:00
Laurent THOMAS 5c7c51089b remove useless macro, the SIMD instruction is used in other places 2023-09-13 17:20:08 +02:00
Laurent THOMAS a62641f9f3 remove race condition on norm128 global 2023-09-13 17:20:04 +02: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
Vijay Chadachan 836469e849 CPPCHECK fixes for printf issues
Fix for following CPPCheck warnings
- invalidPrintfArgType
Rebased with latest develop branch w21.
Reverted modifications unrelated to printf issues.
2023-06-01 12:07:26 +02:00
laurent 1fefd730d6 fix ldpc ubsan 2023-04-17 09:30:47 +02:00
Jaroslava Fiedlerova 79f8d16da6 Rename T1 offload lib and conditional compilation 2023-02-18 11:56:31 +01:00
Robert Schmidt 75e542c6ad Restore LDPC decdoer documentation 2023-01-12 18:02:45 +01:00
francescomani bfd819c5b4 fix NR_LDPC_NUM_BN_GROUPS_BG2_R15 2022-12-09 13:59:12 +01:00
Bruno Mongazon-Cazavet fe1dc24e28 Add Intrinsics usage by SIMDE 2022-09-28 18:21:19 +02:00
Hongzhi Wang 31acfdea58 Merge branch 'develop' into ldpc_offload_t1_mr
Conflicts:
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
2022-08-18 17:38:55 +02:00
laurent 017fd225bc fix ubsan detected errors 2022-07-20 10:40:32 +02:00
Hongzhi Wang e8fc4da2b6 update offload decoder license and notes 2022-06-22 17:26:30 +02:00
Hongzhi Wang fb9be23057 adding bbdev license 2022-06-22 10:03:55 +02:00
Hongzhi Wang 445f1d42a0 Merge branch 'develop' into ldpc_offload_t1_mr
Conflicts:
	openair1/SIMULATION/NR_PHY/ulsim.c
2022-06-22 09:26:58 +02:00
Hongzhi Wang b7295ab45f Merge branch 'develop' into ldpc_offload_t1_mr
Conflicts:
	executables/nr-gnb.c
	openair1/PHY/CODING/nrLDPC_defs.h
	openair1/PHY/INIT/nr_init.c
	openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
	openair1/SCHED_NR/phy_procedures_nr_gNB.c
	openair1/SIMULATION/NR_PHY/ulsim.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2022-06-17 14:49:54 +02:00
Robert Schmidt 0a74c23c8a Disable Asan in LDPC decoder generator executables
The CI compiles the physims using Asan. This in turn compiles Asan into
the LDPC decoder generator files. Since they are run during build, there
are two options:

1) trigger the build using capability SYS_PTRACE to allow running asan
   when executing the generators.
2) disable asan in the generators.

The first option seems not feasible, as the compilation of the ldpctest
does not succeed (in fact, for a reason I don't understand, ninja seems
to trigger linking and is then blocked indefinitely). Therefore, this
commit simple disables asan in the generators.
2022-06-14 12:30:12 +02:00
Raymond Knopp 7387721ecf Merge branch 'ldpc-decoder-codegen' of https://gitlab.eurecom.fr/oai/openairinterface5g into ldpc-decoder-codegen 2022-06-12 23:24:11 +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 169f42a365 Prevent #define name clash
The files openair1/PHY/CODING/nrLDPC_cnProc.h and
openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h have the same name,
and also the same include guard/define. This commit renames the define
in the latter to prevent this name clash.
2022-06-12 16:32:46 +02:00
Robert Schmidt 6900f2bc88 Add License to LDPC decoder generator files 2022-06-12 16:29:49 +02:00
Robert Schmidt f7ab71763d Remove old way of generating LDPC decoders 2022-06-09 15:03:13 +02:00
Robert Schmidt dde6d61dd4 Dynamically create LDPC decoder headers when building ldpc libs 2022-06-09 15:03:13 +02:00
Robert Schmidt 7b68c48618 Make LDPC generator output directory prefix configurable 2022-06-09 15:03:13 +02:00
Robert Schmidt 250043655a Remove some variables from LDPC generated code to avoid warnings 2022-06-09 15:03:13 +02:00
Laurent THOMAS e3747ea06b Fix small bugs in nrLDPC_tools, remain some warnings to fix 2022-06-09 10:01:45 +02:00
Robert Schmidt aed83c91de Create header for LDPC bnProc BG2 files 2022-06-09 09:25:57 +02:00
Raymond Knopp bf5389936d added deletion/creation of ldpc_gen_files directory and subdirectories 2022-05-03 22:09:46 +02:00
Raymond Knopp 3ecfead572 added script to generate ldpc decoder files 2022-05-03 22:03:19 +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