The 3GPP channel model is the gold standard for channel modeling used in the design and simulation of wireless systems. A high-level language implementation of this channel model typically results in high memory consumption and long execution times. This is an open-source package for a CUDA-accelerated implementation of the 3GPP Spatial Channel Model defined in TR 38.901, which relaxes both these constraints. The reference document for the implementation of the 3GPP channel model is Version 4 of the Release 19 channel model defined in https://www.3gpp.org/ftp/Specs/archive/38_series/38.901/38901-j40.zip.
To develop a high-performance, GPU-accelerated 3GPP channel model implementation using highly optimized CUDA C/C++ kernels, with the following design objectives:
- CUDA C++ for heavy computation
- GPU acceleration for large-scale simulations
- Nanobind for Python bindings
- Python-first user experience
- Modular architecture
- Future extensibility toward Digital Twins, NTN, and Near field MIMO systems.
The primary users will be Python developers who interact with high-level APIs, while the computational backend remains in CUDA/C++. For more please check the release notes of each release.
- Programming Language:
- C++20 + CUDA
- Build:
- CMake
- GPU:
- cuBLAS
- cuSOLVER
- cuRAND
- Thrust
- CUB
- cuFFT
- Python:
- pybind11 (or nanobind)
- Visualization:
- Matplotlib
- Plotly
- Testing:
- GoogleTest
- PyTest
- Validation:
- Compare against results submitted by other companies for channel calibration.
I am an independent researcher from India and am not supported by any external funding agency. If you find this work useful, please consider citing it in your publications.
Vikram Singh, "
cu3GPP38.901: A GPU-Accelerated 3GPP TR 38.901 Channel Generator using highly memory optimized CUDA C/C++ kernels" arXiv:26xx.yyyyy [cs.IT]
Feature requests, suggestions, and contributions are always welcome. If there is a capability that you would like to see in this project, please open a feature request or get in touch with me directly. I would also be delighted to collaborate with researchers and developers working on related problems. Every contribution, no matter how small, can benefit a much larger community. A feature developed for a specific use case today may become valuable to hundreds of researchers and engineers tomorrow.
Thank you for supporting open research and open-source development.