82 Commits
Author SHA1 Message Date
Raymond Knopp 0dcea09e87 bugfix for arm-v8x/v9 2025-10-09 16:04:45 +02:00
Laurent THOMAS e056acc896 use c16_t type for pm weights, as it is already same type
simplify SIMD version of precoder
2025-10-09 16:04:43 +02:00
Raymond Knopp fb47748fae fixed precoder_simd after CI run (test for n_layers=1) failed 2025-10-09 16:01:09 +02:00
Raymond Knopp 264f7cb817 aarch64 optimizations for precoding, more complete timing reporting in
nr_dlsim
2025-10-09 16:01:09 +02:00
Raymond Knopp e44d498cba optimization of DLSCH precoding for AVX2 2025-10-09 16:01:09 +02:00
Raymond Knopp 34ba85f3b1 precoder optimizations for AVX512 2025-10-09 16:01:09 +02:00
Laurent THOMAS 912463f752 modulation LUTs size was wrong, and remove inconsistent test of SSE2 enable 2025-09-25 09:29:44 +02:00
Laurent THOMAS 82931c8f01 fix printf() format errors 2025-09-09 18:04:26 +02:00
Matthias Mehlhose 7d27592b4f Initial unit test to refactor and fix nr_layer_precoder_simd function (See #955) 2025-07-29 15:35:24 +00:00
Laurent THOMAS ce7bdf71e9 fix simde lacking refix 2025-02-17 11:06:08 +01:00
Raymond Knopp 1d538592fe fixed compilation warnings and minor errors for aarch64 2025-02-12 11:59:52 +01:00
Laurent THOMAS 3edd989aff simplify nr_layer_mapping(), and use all simd sizes for the tail 2025-02-12 11:59:52 +01:00
Laurent THOMAS 9004787171 group two symbol loops to make one with smaller tsack size and smaller variables 2025-02-12 11:59:52 +01:00
Laurent THOMAS 2fad8796b1 clean no_ptrs_dmrs_case() 2025-02-12 11:51:28 +01:00
Laurent THOMAS 889b4b00e3 SIMD optimizations for Neon/AVX2/AVX512 in the PDSCH transmit path 2025-02-12 11:51:28 +01:00
Laurent THOMAS 43b981247e error-simd-intrinsic-name 2025-02-04 13:21:43 +01:00
Robert Schmidt da7a028a3f Merge remote-tracking branch 'origin/logs-refactor-orange' into integration_2024_w44 (!3078)
Simplify logs in gNB&UE

- reduce the amount of printf() that outputs useless info
- in MAC, PHY, NGAP, RRC, mark some "important" UE events with LOG_A for
  better visibility -> can put log_config.global_log_level analysis to
  only see important stuff
- in RRC, use some macro to consistently print logs
- track the cellID of a UE in RRC
2024-11-01 11:58:47 +01:00
Laurent THOMAS f1f02ec0a1 use existing functions to retrieve (i)dft enum value 2024-10-29 18:47:15 +01:00
Robert Schmidt 68f8ef7c7a Reduce amount of logs in L1/L2
This commit removes many logs that just show memory addresses, indices,
etc., which, I presume, do not mean anything to the "average user" and
developers alike.
2024-10-29 16:36:13 +01:00
Sakthivel Velumani 2b7e0a0519 Change loop order to maximize cache hit
It is better to write to memory that are grouped together to reduce
probability of cache miss. This simple change improved the function's
execution speed by 70%.

Removed the unnecessary memset for the buffer.
2024-09-03 09:18:26 +02:00
Robert Schmidt 9e0bcb7fe4 nr_modulation(): make non-changing input parameter const ptr 2024-07-26 12:04:35 +02:00
Raghavendra Dinavahi 798ceeeef2 SL PSBCH: MAC->PHY cfg, PSBCH scheduler + supporting functions + enable system testing & scope
- Phy config update and Sidelink frame parameters initialisation
	- PSBCH scheduler to trigger TX PSBCH/RX PSBCH actions
	- Sidelink indication with rx ind to trigger send SL-MIB to MAC
	- Enable Scope for PSBCH use -d or --dqt
	- Enable system testing of PSBCH for example using RFSIMULATOR:

		- UE1 is a SYNCRONISATION SOURCE UE which transmits PSBCH

		  started using command -
		  sudo ./nr-uesoftmodem --sl-mode 2 --sync-ref 4 --rfsim --rfsimulator.serveraddr server

		- UE2 syncs onto UE1 during sidelink search, gets the timing and continues to receive PSBCH

		  started using command -
		  sudo ./nr-uesoftmodem --sl-mode 2 --rfsim --rfsimulator.serveraddr 127.0.0.1

		- In the default use case 2 Sidelink SSBs sent over 16 frames.

		- In case SL-SSB configuration needs to be changed use -O option in the above command like

		-O ../../../targets/PROJECTS/NR-SIDELINK/CONF/sidelink_preconfig_1txpool.conf
2024-06-21 09:40:16 +02:00
Raymond Knopp e3aff6c37b fix in nr_modulation.c: avoid fail for 64QAM and G < 192 bits
Adds a check for these short payloads and handle correctly
2024-05-24 09:25:44 +02:00
Jaroslava Fiedlerova 9d2ad34b1b Merge remote-tracking branch 'origin/improve-layer-mapping' into integration_2024_w15 2024-04-12 16:54:50 +02:00
Laurent Thomas be3452a10e Reduce stack memory size for layer mapping
Delete small pieces of dead code
2024-04-12 11:14:08 +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
Laurent THOMAS a95dffc80e delete dead files 2024-03-26 20:57:31 +01:00
Laurent THOMAS 88fb3c3598 change type to c16_t around dmrs computation pieces of code 2024-03-26 20:57:31 +01:00
francescomani c8afb25d3b moving generation of precoding matrices at MAC and trying to adapt to SCF (1st version) 2024-01-19 09:21:08 +01:00
Quency Lin fcb23b441a Refactor: Do SIMD precoding in a function
Use blend instead of set and extract to rearrange, faster
Use 256 SIMD for every 2 RB, use 128 SIMD for ARM and last RB
2023-12-14 11:31:10 +01:00
Quency Lin b240bc485f Feat: improve layer mapping by 32 bits assignment 2023-12-07 14:04:06 +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 THOMAS 4c3d8e7581 fix-mem-overflow_64qam
fix the 64QAM modulator case, that process 192 bits per iteration, then 24 bits per iteration of the tail bits, then added the last two symboles processing (no odd number of symbols case)
2023-08-23 11:14:42 +02:00
Robert Schmidt 555a54f85e Add Sidelink (SL) carrier frequency
1. Adding a "SL" frequency for Sidelink mode. The
   importance of this variable is to ensure that
   when we are in mode 1 (UE+UE+gNB), that the slot
   configuration and frequencies do not overlap. This
   SL frequency is important for rotation and allows
   us to utilize the OFDM modulation and demodulation
   functions that already exist in OAI.
2. Adding sl_mode to the command line for proper UE
   deployment when in SL mode. sl_mode can be set to 0,
   1, or 2. sl_mode 0 indicates no-Sidelink at all,
   mode 1 is gNB, UE, and UE (3GPP defines mode numbers).
   sl_mode 2 indicated UE to UE communications with no
   gNB at all.
3. New functions for calculating the carrier frequency
   for SL mode.
2023-06-16 11:11:44 +02:00
laurent b339460666 cleanup only 2023-04-28 16:25:24 +02:00
Sakthivel Velumani 44906a236c Changed buffer alloc and symb rotaion logs to debug 2023-03-07 16:54:25 -05:00
Bruno Mongazon-Cazavet fe1dc24e28 Add Intrinsics usage by SIMDE 2022-09-28 18:21:19 +02:00
francescomani 166aae35ab fixes to get 100MHz working with 2 layers 2022-08-16 11:18:00 +02:00
luis_pereira87 48019c33f4 Minor optimization in function init_symbol_rotation 2022-08-01 11:20:55 +01:00
laurent 017fd225bc fix ubsan detected errors 2022-07-20 10:40:32 +02:00
laurent df1cffbc7f fix bug introduced by avx2 rotate_cpx change to c16_t 2022-06-29 16:52:47 +02:00
Thomas Schlichter 729cf143e0 Merge remote-tracking branch 'origin/develop' into support-15-kHz-SCS 2022-04-01 10:28:11 +02:00
Thomas Schlichter 88c0028757 Merge remote-tracking branch 'origin/develop' into support-15-kHz-SCS 2022-03-24 11:39:22 +01:00
francescomani 12f9dd95eb Merge remote-tracking branch 'origin/develop' into nr_mimo_precoding_codebook_I 2022-03-22 09:44:40 +01:00
Thomas Schlichter 4a90091095 fix init_timeshift_rotation() 2022-03-14 16:39:17 +01:00
francescomani 0e106543ef clean up of ulsch ue structures 2022-01-25 18:54:33 +01:00
sfn e993a59d22 Make use of gNB precoding matrix for PDSCH layer precoding 2021-11-29 12:14:33 +01:00
Thomas Schlichter 5c6865fbc6 5G NR: simplify init_timeshift_rotation()
Only Ncp1 is used, so get rid of the second timeshift_symbol_rotation array.
Also simplify the computation of "t0 * Tc * f".
2021-04-26 16:09:32 +02:00
Sakthivel Velumani 215f263a69 Making sample offset as cmd line parameter
for gNB its in L1 section of config file
for UE its a cmd line paramenter
2021-04-26 03:09:17 +02:00