测试#
基本 cuMAC-CP 独立测试:TestMAC + cuMAC-CP#
配置#
在 cumac_cp.yaml
中,配置 cell_num
和为 cuMAC-CP 预留的 CPU 核心(low_priority_core
、cumac_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_num
、cumac_cp_standalone=1
和为 testMAC 预留的 CPU 核心(low_priority_core
、cumac_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
运行步骤#
为每个小区生成 cuMAC-CP 的 TV。
mkdir $cuBB_SDK/testVectors/cumac
cd $cuBB_SDK/testVectors/cumac
sudo
$cuBB_SDK/build/cuMAC/examples/multiCellSchedulerUeSelection/multiCellSchedulerUeSelection -t 3
先运行 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_cp
和 test_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 可以打印数据缓冲区,但会影响时间和性能,因此仅在调试期间使用。