Tests#

Basic cuMAC-CP Standalone Test: TestMAC + cuMAC-CP#

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#

  1. 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
  1. 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

Other Configurations for Test and Debug#

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.