Running cuBB End-to-End Perf tests#
Prerequisites#
The following instructions assume the system configuration and Aerial cuBB installation are done. If not, see the cuBB Install Guide to complete the installation or upgrade process.
It also assume that test vectors and launch patterns has been generated, see Generating TV and Launch Pattern Files
The steps below will build the code on the DU and RU Compute nodes, scripts will probe the hardware on the DU and RU and patch the configuration files for selected test case. The settings will be saved in a configuration file named test_config_summary.sh.
Test Configuration#
When running the tests on DU and RU, configuration information needs to be shared between the compute nodes. The configuration is stored in the file test_config_summary.sh
$cuBB_SDK/testBenches/phase4_test_scripts/test_config_summary.sh
The test_config_summary.sh has three sections. The first section containes hardware information about the DU. The second section has hardware information about the RU, and the last section has information about the test_case.
The first section is generated by the setup1_DU.sh script, the second section is generated by the setup2_RU.sh script, and the last section is generated by the test_config.sh script.
Step 1: Build and prepare DU Compute node#
Build the project using the instructions below.
The build_aerial_sdk.sh script is used to generate and build the project. By default, it uses the Ninja generator (-g 1). If you want to use Unix Makefiles instead, use the -g 0 option with the script.
If you want to enable MODCOMP, use the –modcomp 1 or -m 1 option with the script.
To rebuild the project, use: cmake –build $BUILD_DIR if using Ninja generator. If you are using Unix Makefiles, run make -j 48.
$cuBB_SDK/testBenches/phase4_test_scripts/build_aerial_sdk.sh
Then probe the DU node (NIC interface, CPU core assignment). Use option (-m 1) to allocate additional cores needed for muMIMO
$cuBB_SDK/testBenches/phase4_test_scripts/setup1_DU.sh -m 1
cat $cuBB_SDK/testBenches/phase4_test_scripts/test_config_summary.sh
Step 2: Build and prepare O-RU Compute node#
Build the project using the instructions below.
$cuBB_SDK/testBenches/phase4_test_scripts/build_aerial_sdk.sh
Copy and Paste the content of the test_config_summary.sh from DU Compute node to the RU Compute node.
cat > $cuBB_SDK/testBenches/phase4_test_scripts/test_config_summary.sh
Probe the RU node and append information to the test_config_summary.sh file
$cuBB_SDK/testBenches/phase4_test_scripts/setup2_RU.sh
cat $cuBB_SDK/testBenches/phase4_test_scripts/test_config_summary.sh
Step 3: Prepare the Test Setup#
Make sure the content of test_config_summary.sh is the same on both RU node and DU node.
Copy the content of the test_config_summary.sh from RU and paste it back to DU
cat > $cuBB_SDK/testBenches/phase4_test_scripts/test_config_summary.sh
Run the test Setup on both DU and RU
This step is to set various test parameters such as test pattern, number of cells, test duration, etc. For more information about different options, use -h or –help. To use the default settings, run the command by specifying only the test pattern without any additional options.
This step can be run either inside or outside the container. In the latter case, the yq tool must be installed on the host, and cuBB_SDK must be set to point to the local repository directory.
To enable mod comp scheme, use ‘-o 4’ option with the script.
$cuBB_SDK/testBenches/phase4_test_scripts/test_config.sh '<test pattern>' --num-cells='<number of cells>'
Step 4: Run the RU-Emulator (On RU compute node)#
$cuBB_SDK/testBenches/phase4_test_scripts/run1_RU.sh
Step 5: Run the cuphycontroller (On DU compute node)#
$cuBB_SDK/testBenches/phase4_test_scripts/run2_cuPHYcontroller.sh
Step 6: Run the testMAC (On DU compute node)#
$cuBB_SDK/testBenches/phase4_test_scripts/run3_testMAC.sh
Example Performance test configuration#
For our performance profiling, we use test pattern 69b with 6 cells, we use 480000 ns for testMAC enqueue time, and modulation compression enabled:
$cuBB_SDK/testBenches/phase4_test_scripts/test_config.sh 69b -o 4 --num-cells 6 -s 480000
Note
Test patterns 66c and 67c can be tested with max 3 cells.
Test patterns 69, 69a, 69b can be tested with max 6 cells with modulation compression enabled.
Test patterns 71 can be tested with max 1 cell with modulation compression enabled.