Raymond Knopp
5e3e8a70ff
addition of aarch64 native implementation for rotate_cpx_vector for the case output_shift=15
2025-09-02 08:28:13 +02:00
Robert Schmidt
cbdcd2d015
Merge remote-tracking branch 'origin/issue-955' into integration_2025_w31 ( !3545 )
...
Fix overflow when negating minimum int16_t value in precoding
This closes #955
It prevents undefined behavior caused by the minimum int16_t value
(-32768) in two's complement representation. Because possible negation
by multiplying with -1 during precoding cause an overflows since +32768
cannot be represented in 16-bit signed integers and end up again in
-32768 because of overflow, here reveald by using the SIMD functions.
Workaround we use a slightly smaller number than 1 in Q15 Format to
prevent this error. Q15 representation of (integer value -32767) -1 +
2^-15 = -0.999969482421875
2025-07-31 15:26:21 +02:00
Mario Joa-Ng
905a8a495e
mod: unit test code to compare CM and SIMD results on both antennas
2025-07-29 15:38:23 +00:00
Laurent THOMAS
f57f6a8d4e
factorize code that initialize all 0xff simd vectors
2025-07-24 13:48:36 +02:00
Matthias Mehlhose
04e35af5a5
mod: remove simde_ prefix and use oai_ prefix instead
2025-04-25 14:48:00 +02:00
Laurent THOMAS
7982a9da41
set correct parameter type, and fuse funcions that do same real/complex vector operations, doing this, fix a lot of unitary multiplications (else there would be numerous cast operations
2025-04-25 14:47:59 +02:00
Laurent THOMAS
95ae7772bf
simplifly, reegroup functions in tools_defs.h
2025-04-25 14:47:59 +02:00
Laurent THOMAS
04fc2fbb2e
make correct description of sub_cpx_vector16 and remove mixed dead code
2025-04-25 14:47:59 +02:00
Laurent THOMAS
4e3fab67a8
remove unused function with duplicated name to another one
2025-04-25 14:47:59 +02:00
HHI
f470ea5946
mod: refactor PHY multiplications
2025-04-25 14:47:59 +02:00
Thomas Schlichter
dd827c7bd8
refactor (co)sinus calculation out of phase_noise() into openair1/PHY/TOOLS/get_sin_cos.c
2025-04-10 12:37:19 +00:00
Laurent THOMAS
43b981247e
error-simd-intrinsic-name
2025-02-04 13:21:43 +01:00
Laurent THOMAS
17bb19c7be
Remove unused LOCALIZATION compile option
2025-01-23 14:10:33 +01:00
Laurent THOMAS
f919246121
remove part of code using _m64 type (so old mmx instructions)
2025-01-14 10:07:59 +01:00
Laurent THOMAS
8f688c0064
replace assert by error logging when we call DFT with impossible size to deal with existing LTE UE
2024-11-08 12:19:23 +01:00
Laurent THOMAS
486cebce06
replace a printf() by a cleaner call to AssertFatal()
2024-11-07 17:08:18 +01:00
Laurent THOMAS
fd83be4e77
change the alignment of OAI mutli-dim arrays from 16 to 32 bytes
2024-11-07 17:08:18 +01:00
Laurent THOMAS
ac06f107dd
add a optimzed complex vector multiplication function
2024-11-07 17:07:50 +01:00
Laurent THOMAS
576d468809
Clean up intermediate DFT macros, remove non-existing DFTs
...
DFT for 9216 and 73728 don't exist and/or assert, so remove them from
the list.
2024-10-30 18:04:43 +01:00
Laurent THOMAS
f1f02ec0a1
use existing functions to retrieve (i)dft enum value
2024-10-29 18:47:15 +01:00
rmagueta
765bb64b5c
Fix SNR based on SRS
2024-10-11 11:12:21 +01:00
Sakthivel Velumani
26b3fcca3b
Remove SIMD operation for DMRS amplitude scaling
...
There was concern that someone in the future might call the function
with the wrong inputs. So, based on the discussion on the MR below
https://gitlab.eurecom.fr/oai/openairinterface5g/-/merge_requests/2916#note_132506
the SIMD for multiplying DMRS vector with amplitude is removed and is
now done with plain C (no SIMD).
The execution time for the function dmrs_amp_mult() in this commit is
10x higher that the previous commit.
2024-09-03 09:21:29 +02:00
Sakthivel Velumani
393363e253
Refactor PUSCH RE mapping
...
RE mapping time is reduced by 10x. Functions are made generic to be
later reused for PDSCH RE mapping at gNB.
2024-09-03 09:21:29 +02:00
Matthias Mehlhose
d055cc0004
remove double define with nr_common.h
2024-08-30 11:49:12 +00:00
Bartosz Podrygajlo
ed05c94c3e
Fix signal_energy_nodc for lengths that are not multiples of 4
2024-07-30 09:44:00 +02:00
Robert Schmidt
ebeb26528a
Merge remote-tracking branch 'origin/NR_PSBCH_MERGE1' into integration_2024_w15
2024-04-15 14:34:36 +02:00
Jaroslava Fiedlerova
de263d4a40
Merge remote-tracking branch 'origin/fft_size_fix_3072' into integration_2024_w15
2024-04-15 08:29:34 +02:00
Robert Schmidt
9a2e080f77
Apply clang-format
2024-04-13 08:54:15 +02:00
Raghavendra Dinavahi
94b23d1eb0
PSBCH RX TX and SLSS search procedures
...
- RX/TX Phy processing accg to 38.211, 38.212 Rel16
- PSBCH simulator used to validate TX/RX phy processing
- PSBCH SLSS Search procedures
- PSBCH SIM also tests SLSS SEARCH
2024-04-12 16:07:00 +02:00
rakesh mundlamuri
47d1f8bb82
harmonizing the IDFT index at different places
2024-04-11 16:47:32 -04:00
francescomani
96ff859cb7
shiftTooManyBitsSigned
2024-04-09 16:53:12 +02:00
Laurent THOMAS
88fb3c3598
change type to c16_t around dmrs computation pieces of code
2024-03-26 20:57:31 +01:00
Laurent THOMAS
39400a458e
change partially pbch detection to c16_t instead of hidden complex in int16_t and int32_t
2024-03-26 20:57:31 +01:00
Laurent THOMAS
18919576b7
rework PUCCH codec with c16_t type, rewrite large parts of functions to make readable code. Not fixed parts that are using SIMD. No change, the code is still same block by block (variable visibility narrowed, declaration can be shifted)
2024-01-04 10:21:15 +01:00
Quency Lin
8c62342335
Feat: Precoding with SIMDe
2023-12-12 15:51:06 +01:00
Quency Lin
b240bc485f
Feat: improve layer mapping by 32 bits assignment
2023-12-07 14:04:06 +01:00
Robert Schmidt
7420de8fc9
Merge remote-tracking branch 'origin/fix-doxygen' into integration_2023_w43
2023-10-30 10:23:45 +01:00
Laurent THOMAS
bba9aac079
fix most of doxygen warnings and errors
2023-10-26 16:47:19 +02:00
rmagueta
e14903cd96
Call __builtin_popcountll function to count the number of bits set in uint64_t variable for polar codes
2023-10-26 12:23:20 +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 THOMAS
206aa36a47
Make read-only globals const, additional fixes
...
- Global variables that are never written to are marked const
- Remove some EXTERN declaration
- Remove unused `log_mem_multi` from logging module
2023-08-18 14:20:37 +02:00
laurent
9121541b3c
only cleaning
2023-07-10 12:00:25 +02:00
Roberto Louro Magueta
917ff8e97b
Remove duplicated code
2023-06-26 12:51:31 +01:00
laurent
b339460666
cleanup only
2023-04-28 16:25:24 +02:00
laurent
b735f8bec6
ubsan fixes
2023-04-19 22:12:08 +02:00
laurent
8a10d1b222
add phy layer variable and persited arrays
2023-04-19 22:12:08 +02:00
Roberto Louro Magueta
6c590b900a
Compute noise variance to be used in MMSE
2023-04-10 10:18:41 +01:00
Roberto Louro Magueta
0ab5b35867
To use c16maddShift(), c32x16maddShift(), c16multaddVectRealComplex(), and c16x32div() functions in nr_pdsch_channel_estimation()
2023-02-27 11:31:51 +01:00
Robert Schmidt
78a675922c
Merge remote-tracking branch 'origin/develop-chModels-Doppler' into integration_2022_wk49
2022-12-07 19:04:43 +01:00
laurent
d74b2bd19f
improve dot_product function
2022-11-28 10:33:47 +01:00