Code base for Building Massive MIMO Baseband Processing on a Single-Node Supercomputer.
- cmake >= 3.27
- gcc >= 13 (with C++20 support)
- cuda toolkit >= 12.4
- python >= 3.9
- MATLAB >= 2024b
- Access to NVIDIA Aerial source code (Aerial-cuBB-source-23.03.0-Rel-23-3.66-x86_64.tar.gz)
- gdrcopy
Note: We don't have right to release Aerial's source code, even partially. In order to run the code, please first apply NVIDIA Aerial developer program to get Aerial's code.
You should apply patches to Aerial library and don't forget to modify cuda architecture in cuBB/cuPHY/CMakeLists.txt.
# inside the project folder
mkdir build && cd build
cmake ..
make -j- Generate data
For example, to generate 64x16 (antennas x users) uplink & downlink data,
# inside the project folder
python generate_data.py --build ./build/ --ants 64 --users 16 --ofdm 1200 --sg 16- Run test
We provide a set of unit tests to test whether our code is able to run on your machine.
# inside the project folder
cd build
ctest- Run code
To run the code,
# inside the build folder
./mega -ants 64 -users 16 -ofdm 1200 -sg 16 --upPlease make sure the generated data put in the same folder with the source code. Or use -dir to specify the data path.
To run benchmarks in the paper, take a look at benchmark folder