Aerial CUDA-Accelerated RAN
Aerial CUDA-Accelerated RAN 24-2.1

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:

Copy
Copied!
            

# 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).

Copy
Copied!
            

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.

Copy
Copied!
            

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

Copy
Copied!
            

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.

Copy
Copied!
            

# 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:

Copy
Copied!
            

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:

Copy
Copied!
            

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

Copy
Copied!
            

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

Previous L2 integration notes
Next Aerial NVIPC
© Copyright 2024, NVIDIA. Last updated on Oct 3, 2024.