测试#

基本 cuMAC-CP 独立测试:TestMAC + cuMAC-CP#

配置#

cumac_cp.yaml 中,配置 cell_num 和为 cuMAC-CP 预留的 CPU 核心(low_priority_corecumac_cp_recv 线程核心、woker_cores)。示例

# 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

test_cumac_config.yaml 中,配置 cumac_cell_numcumac_cp_standalone=1 和为 testMAC 预留的 CPU 核心(low_priority_corecumac_recv/cumac_sched/cumac_builder 线程核心)。

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

test_mac_config.yaml 中,配置 test_cumac_config_file: test_cumac_config.yaml 以启用 cuMAC-CP 测试。

# Set to yaml file like test_cumac_config.yaml to enable cuMAC-CP test

test_cumac_config_file: test_cumac_config.yaml

运行步骤#

  1. 为每个小区生成 cuMAC-CP 的 TV。

mkdir $cuBB_SDK/testVectors/cumac

cd $cuBB_SDK/testVectors/cumac

sudo
$cuBB_SDK/build/cuMAC/examples/multiCellSchedulerUeSelection/multiCellSchedulerUeSelection -t 3
  1. 先运行 cumac_cp,然后运行 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

测试结果#

将在 cumac_cptest_mac 控制台输出中看到吞吐量。

cumac_cp 控制台输出示例

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 控制台输出示例

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

用于测试和调试的其他配置#

在 TestMAC 中选择 cuMAC 模块#

在 test_cumac_config.yaml 中,配置 task_bitmask 以选择要启用的 cuMAC 模块。示例

  • 0x1 – 仅第一个模块 multiCellUeSelection。

  • 0xF – 所有 4 个模块

# CUMAC task bitmask: b0 - multiCellUeSelection; b1 - multiCellScheduler; b2 - multiCellLayerSel; b3 - mcsSelectionLUT
task_bitmask: 0xF

启用 INFO 级别日志后,将能够在 /tmp/cumac_cp.log 中看到任务位掩码和任务处理时间日志 (grep “finish” cumac_cp.yaml)

在 cuMAC-CP 中启用缓冲区转储#

配置 debug_option 可以打印数据缓冲区,但会影响时间和性能,因此仅在调试期间使用。