Skip to content

NR_PHY: Optimize layer demapping for PDSCH/PUSCH receiver performance#286

Open
rupanjali-ux wants to merge 2 commits into
developfrom
oai_ue_performance_v1
Open

NR_PHY: Optimize layer demapping for PDSCH/PUSCH receiver performance#286
rupanjali-ux wants to merge 2 commits into
developfrom
oai_ue_performance_v1

Conversation

@rupanjali-ux

@rupanjali-ux rupanjali-ux commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

Optimizes layer de-mapping in the NR receiver path and refactors the implementation into a common function shared by both the UE (PDSCH) and gNB (PUSCH) receive paths.

Commit 1: [NR_UE_PDSCH] Optimize PDSCH layer de-mapping

Uses a switch with a LAYER_DEMAPPING(MO) macro for modulation orders 2, 4, 6, and 8. Since the copy size is now known at compile time, the compiler can replace memcpy calls with inline fixed-size vector stores.

Commit 2: [NR_PHY] Common layer de-mapping implementation

Extract a common nr_layer_demapping() function for both UE and gNB. Update the UE and gNB receive paths to use the shared implementation, reducing code duplication while bringing the same optimization to the gNB PUSCH path.

With ./nr_dlsim -s30 -b106 -R106 -n100 -e25 -x2 -y2 -z2 -P, the layer demapping compute time reduces by ~30x.
Develop:
image

Post-optimization:
image

- Use switch on mod_order to make memcpy size a compile-time constant,
  allowing the compiler to inline it as fixed-size vector stores

Signed-off-by: Rupanjali <rupanjali.srivastava@openairinterface.org>
@rupanjali-ux rupanjali-ux changed the title NR_UE_PDLSCH: Optimize layer demapping for PDSCH performance NR_UE_PDSCH: Optimize layer demapping for PDSCH performance Jul 10, 2026
Move layer de-mapping logic into a shared nr_layer_demapping() in
nr_phy_common, callable by both UE PDSCH and gNB PUSCH receivers.

Signed-off-by: Rupanjali <rupanjali.srivastava@openairinterface.org>
@rupanjali-ux rupanjali-ux changed the title NR_UE_PDSCH: Optimize layer demapping for PDSCH performance NR_PHY: Optimize layer demapping for PDSCH/PUSCH receiver performance Jul 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant