{"id":44787067,"url":"https://github.com/NVlabs/neural_rx","last_synced_at":"2026-02-28T23:00:42.672Z","repository":{"id":255634335,"uuid":"844740484","full_name":"NVlabs/neural_rx","owner":"NVlabs","description":"Real-Time Inference of 5G NR Multi-user MIMO Neural Receivers","archived":false,"fork":false,"pushed_at":"2025-12-11T10:04:57.000Z","size":21677,"stargazers_count":88,"open_issues_count":1,"forks_count":18,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-01-31T01:44:57.299Z","etag":null,"topics":["5g-nr","deep-learning","mimo","receiver"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NVlabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-08-19T22:01:24.000Z","updated_at":"2026-01-28T15:34:16.000Z","dependencies_parsed_at":"2024-09-06T12:38:09.317Z","dependency_job_id":null,"html_url":"https://github.com/NVlabs/neural_rx","commit_stats":null,"previous_names":["nvlabs/neural_rx"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NVlabs/neural_rx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVlabs%2Fneural_rx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVlabs%2Fneural_rx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVlabs%2Fneural_rx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVlabs%2Fneural_rx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NVlabs","download_url":"https://codeload.github.com/NVlabs/neural_rx/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVlabs%2Fneural_rx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29954583,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T22:53:01.873Z","status":"ssl_error","status_checked_at":"2026-02-28T22:52:50.699Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["5g-nr","deep-learning","mimo","receiver"],"created_at":"2026-02-16T10:00:19.648Z","updated_at":"2026-02-28T23:00:42.662Z","avatar_url":"https://github.com/NVlabs.png","language":"Jupyter Notebook","funding_links":[],"categories":["Radio Access Network"],"sub_categories":["PHY"],"readme":"\u003c!-- SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION \u0026 AFFILIATES. All rights reserved.\nSPDX-License-Identifier: LicenseRef-NvidiaProprietary\n\nNVIDIA CORPORATION, its affiliates and licensors retain all intellectual\nproperty and proprietary rights in and to this material, related\ndocumentation and any modifications thereto. Any use, reproduction,\ndisclosure or distribution of this material and related documentation\nwithout an express license agreement from NVIDIA CORPORATION or\nits affiliates is strictly prohibited. --\u003e\n\n# Real-Time Inference of 5G NR Multi-user MIMO Neural Receivers\n\nThe code in this repository allows to design, train, and evaluate [neural\nreceivers](https://developer.nvidia.com/blog/towards-environment-specific-base-stations-ai-ml-driven-neural-5g-nr-multi-user-mimo-receiver/)\nusing the [NVIDIA® Sionna™ link-level simulation\nlibrary](https://nvlabs.github.io/sionna/) and TensorFlow. Further, trained\nreceivers can be prepared for real-time inference via [NVIDIA®\nTensorRT™](https://developer.nvidia.com/tensorrt).\n\n[\u003cp align=\"center\"\u003e\u003cimg src=\"misc/nrx_overview.png\" height=400\u003e\u003c/p\u003e](notebooks/jumpstart_tutorial.ipynb)\n\nThe following features are currently supported:\n\n- 5G NR compliant Multi-user MIMO PUSCH receiver\n- Training pipeline using 3GPP compliant channel models\n- TensorRT / ONNX model export for real-time inference\n- Support for varying number of PRBs, users, and different MCS schemes per user\n- End-to-end learning of custom constellations for [pilotless communications](https://arxiv.org/pdf/2009.05261) [3]\n- Site-specific training using ray-tracing based channel simulations from [SionnaRT](https://nvlabs.github.io/sionna/api/rt.html) as done in [2]\n\nWe recommend starting with the [Jumpstart NRX Tutorial notebook](notebooks/jumpstart_tutorial.ipynb) for a detailed introduction and overview of the project.\n\nThe basic neural receiver architecture is introduced and described in [a Neural Receiver for 5G NR Multi-user MIMO](https://arxiv.org/pdf/2312.02601) [1].\nThe real-time experiments and the site-specific training is described in [Design of a Standard-Compliant Real-Time\nNeural Receiver for 5G NR](https://arxiv.org/abs/2409.02912) [2].\n\nDemos of this receiver architecture have been shown at [Mobile World Congress 2023](https://www.youtube.com/watch?v=BQyxBYzdg5k) and [Mobile World Congress 2024](https://www.keysight.com/us/en/assets/3124-1306/demos/6G-AI-Neural-Receiver-Design.mp4).\n\nFor further details regarding solutions for deployment in an actual Radio Access Network (RAN), we recommend registering for the [NVIDIA 6G Developer Program](https://developer.nvidia.com/6g-program).\n\n[\u003cp align=\"center\"\u003e\u003cimg src=\"misc/nrx_bler_results.png\" height=400\u003e\u003c/p\u003e](notebooks/jumpstart_tutorial.ipynb)\n\n## Summary\n\nWe introduce a neural network (NN)-based multi-user multiple-input\nmultiple-output (MU-MIMO) receiver with full 5G New Radio (5G NR) physical\nuplink shared channel (PUSCH) compatibility based on graph and convolutional\nneural network (CGNN) components. The proposed architecture can be easily\nre-parametrized to an arbitrary number of sub-carriers and supports a varying\nnumber of users without the need for any additional re-training. The receiver\noperates on an entire 5G NR slot, i.e., it processes the entire received\northogonal frequency division multiplexing (OFDM) time-frequency resource grid\nby jointly performing channel estimation, equalization, and demapping. We show\nthe importance of a carefully designed training process such that the trained\nreceiver does not overfit to a specific channel realization and remains\nuniversal for a wide range of different unseen channel conditions. A particular\nfocus of the architecture design is put on the real-time inference capability\nsuch that the receiver can be executed within 1 ms latency on an NVIDIA A100\nGPU.\n\n[\u003cp align=\"center\"\u003e\u003cimg src=\"misc/nrx_latency.png\" height=450\u003e\u003c/p\u003e](notebooks/real_time_nrx.ipynb)\n\n## Setup\n\nRunning this code requires [Sionna 0.18](https://nvlabs.github.io/sionna/).\nTo run the notebooks on your machine, you also need [Jupyter](https://jupyter.org).\nWe recommend Ubuntu 22.04, Python 3.10, and TensorFlow 2.15.\n\nFor [TensorRT](https://developer.nvidia.com/tensorrt), we recommend version 9.6 and newer.\nFor [ONNX](https://onnx.ai/) exporting, the Python package `onnx==1.14` is required (`onnx==1.15` does not work due to a known bug).\n\n## Structure of this repository\n\nThis repository is structured in the following way:\n- [config](config/) contains the system configurations for different experiments\n- [notebooks](notebooks/) contains tutorials and code examples\n- [scripts](scripts/) contains the scripts to train, evaluate and debug the NRX\n- [utils](utils/) contains the NRX definition and all Python utilities\n- [weights](weights/) contains weights of pre-trained neural receivers for different configuration files\n- [results](results/) contains pre-computed BLER performance results\n\nThe following two folders will be generated locally:\n- `logs` contains log files of the training\n- `onnx_models` contains exported ONNX neural receiver models\n- `data` contains a ray tracing-based dataset of channel realizations for site-specific evaluation\n\nWe recommend starting with the [Jumpstart NRX Tutorial notebook](notebooks/jumpstart_tutorial.ipynb) for a detailed introduction and overview of the project.\n\n## References\n\n[1] S. Cammerer, F. Aït Aoudia, J. Hoydis, A. Oeldemann, A. Roessler, T. Mayer, and A. Keller, \"[A Neural Receiver for 5G NR Multi-user MIMO](https://arxiv.org/pdf/2312.02601)\", IEEE Workshops (GC Wkshps), Dec. 2023.\n\n[2] R. Wiesmayr, S. Cammerer, F. Aït Aoudia, J. Hoydis, J. Zakrzewski, and A. Keller, \"[Design of a Standard-Compliant Real-Time Neural Receiver for 5G NR](https://arxiv.org/abs/2409.02912)\", arxiv preprint, 2024.\n\n[3] F. Aït Aoudia and J. Hoydis, \"[End-to-end Learning for OFDM: From Neural Receivers to Pilotless Communication](https://arxiv.org/pdf/2009.05261)\", IEEE Trans on Wireless Commun., 2021.\n\n## License\n\nCopyright \u0026copy; 2024, NVIDIA Corporation. All rights reserved.\n\nThis work is made available under the [NVIDIA License](LICENSE.txt).\n\n# Citation\n\n```\n@software{neural_rx,\n    title = {Real-time 5G NR Multi-user MIMO Receivers},\n    author = {Sebastian Cammerer, Reinhard Wiesmayr, Fayçal Aït Aoudia, Jakob Hoydis, Tommi Koivisto, Jakub Zakrzewski, Ruqing Xu, Pawel Morkisz, Chris Dick, and Alexander Keller},\n    note = {https://github.com/NVlabs/neural-rx},\n    year = 2024\n}\n```\n\n# Acknowledgement\n\nThis work has received financial support from the European Union under\nGrant Agreement 101096379 (CENTRIC). Views and opinions expressed are\nhowever those of the author(s) only and do not necessarily reflect those of the\nEuropean Union or the European Commission (granting authority). Neither the\nEuropean Union nor the granting authority can be held responsible for them.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNVlabs%2Fneural_rx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNVlabs%2Fneural_rx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNVlabs%2Fneural_rx/lists"}