Tests
Configurations
In cumac_cp.yaml
, configure cell_num
and free CPU cores
(low_priority_core
, cumac_cp_recv
thread core, woker_cores
) for
cuMAC-CP. Example:
# CPU core shared by all low-priority threads
low_priority_core: 19
recv_thread_config:
name: cumac_cp_recv
cpu_affinity: 25
sched_priority: 95
# cuMAC task worker cores
worker_cores: [31, 32, 33, 34, 35, 36, 37, 38]
# Total cell number
cell_num: 8
In test_cumac_config.yaml
, configure cumac_cell_num
,
cumac_cp_standalone=1
and free CPU cores for testMAC (low_priority_core
,
cumac_recv/cumac_sched/cumac_builder
threads cores).
recv_thread_config:
name: cumac_recv
cpu_affinity: 43
sched_priority: 95
sched_thread_config:
name: cumac_sched
cpu_affinity: 39
sched_priority: 96
builder_thread_config:
name: cumac_builder
cpu_affinity: 39
sched_priority: 95
# Run test_mac + cumac_cp only without depending on L1
cumac_cp_standalone: 1
In test_mac_config.yaml
, configure test_cumac_config_file: test_cumac_config.yaml
to enable cuMAC-CP test.
# Set to yaml file like test_cumac_config.yaml to enable cuMAC-CP test
test_cumac_config_file: test_cumac_config.yaml
Run Steps
Generate per cell TVs for cuMAC-CP.
mkdir $cuBB_SDK/testVectors/cumac
cd $cuBB_SDK/testVectors/cumac
sudo
$cuBB_SDK/build/cuMAC/examples/multiCellSchedulerUeSelection/multiCellSchedulerUeSelection -t 3
Run cumac_cp first and then run test_mac.
# 1. Run cumac_cp
sudo $cuBB_SDK/build/cuMAC-CP/cumac_cp
# 2. Run test_mac
sudo $cuBB_SDK/build/cuPHY-CP/testMAC/testMAC/test_mac F08 8C_60c
Test Results
Will see throughput in cumac_cp
and test_mac
console outputs.
cumac_cp
console output example:
16:11:36.999875 WRN 27518 0 25 [CUMCP.HANDLER] Cell 0 | CUMAC 2000 | ERR 0 | Slots 4000
16:11:36.999876 WRN 27518 0 25 [CUMCP.HANDLER] Cell 1 | CUMAC 2000 | ERR 0 | Slots 4000
16:11:36.999877 WRN 27518 0 25 [CUMCP.HANDLER] Cell 2 | CUMAC 2000 | ERR 0 | Slots 4000
16:11:36.999877 WRN 27518 0 25 [CUMCP.HANDLER] Cell 3 | CUMAC 2000 | ERR 0 | Slots 4000
16:11:36.999877 WRN 27518 0 25 [CUMCP.HANDLER] Cell 4 | CUMAC 2000 | ERR 0 | Slots 4000
16:11:36.999877 WRN 27518 0 25 [CUMCP.HANDLER] Cell 5 | CUMAC 2000 | ERR 0 | Slots 4000
16:11:36.999877 WRN 27518 0 25 [CUMCP.HANDLER] Cell 6 | CUMAC 2000 | ERR 0 | Slots 4000
16:11:36.999877 WRN 27518 0 25 [CUMCP.HANDLER] Cell 7 | CUMAC 2000 | ERR 0 | Slots 4000
test_mac
console output example:
16:11:37.000364 WRN 27533 0 39 [CUMAC.HANDLER] Cell 0 | CUMAC 2000 | ERR 0 | INV 0 | Slots 4000
16:11:37.000364 WRN 27533 0 39 [CUMAC.HANDLER] Cell 1 | CUMAC 2000 | ERR 0 | INV 0 | Slots 4000
16:11:37.000364 WRN 27533 0 39 [CUMAC.HANDLER] Cell 2 | CUMAC 2000 | ERR 0 | INV 0 | Slots 4000
16:11:37.000364 WRN 27533 0 39 [CUMAC.HANDLER] Cell 3 | CUMAC 2000 | ERR 0 | INV 0 | Slots 4000
16:11:37.000365 WRN 27533 0 39 [CUMAC.HANDLER] Cell 4 | CUMAC 2000 | ERR 0 | INV 0 | Slots 4000
16:11:37.000365 WRN 27533 0 39 [CUMAC.HANDLER] Cell 5 | CUMAC 2000 | ERR 0 | INV 0 | Slots 4000
16:11:37.000365 WRN 27533 0 39 [CUMAC.HANDLER] Cell 6 | CUMAC 2000 | ERR 0 | INV 0 | Slots 4000
16:11:37.000365 WRN 27533 0 39 [CUMAC.HANDLER] Cell 7 | CUMAC 2000 | ERR 0 | INV 0 | Slots 4000
Select cuMAC Modules in TestMAC
In test_cumac_config.yaml, configure task_bitmask to select cuMAC modules to be enabled. Example:
0x1 – only the first module multiCellUeSelection.
0xF – all the 4 modules
# CUMAC task bitmask: b0 - multiCellUeSelection; b1 - multiCellScheduler; b2 - multiCellLayerSel; b3 - mcsSelectionLUT
task_bitmask: 0xF
When enabled INFO level log, will be able to see task bitmask and task processing timing log in /tmp/cumac_cp.log (grep “finish” cumac_cp.yaml)
Enable Buffer Dumping in cuMAC-CP
Configure debug_option can print data buffers but will impact timing and performance, so only use it during debug.