示例#

cuMAC 测试向量生成为 HDF5 文件#

测试向量位于 testVectors 目录中。每个测试向量包含在 cuMAC API 结构 (aerial_sdk/cuMAC/src/api.h) 中定义的参数和数据数组:cumacCellGrpUeStatuscumacCellGrpPrmscumacSchdSol

参数配置可以在 aerial_sdk/cuMAC/examples/parameters.h 文件中指定。

使用 multiCellSchedulerUeSelection 测试平台 (aerial_sdk/cuMAC/examples/multiCellSchedulerUeSelection) 创建 TV

  • DL TV

    ./aerial_sdk/cuMAC/build/examples/multiCellSchedulerUeSelection/multiCellSchedulerUeSelection -t 1
    
  • UL TV

    ./aerial_sdk/cuMAC/build/examples/multiCellSchedulerUeSelection/multiCellSchedulerUeSelection -d 0 -t 1
    

H5 TV 在上次模拟的 TTI 之后创建。假设仿真持续时间足够长,以便调度器算法的性能收敛。

单 TTI 测试#

给定单个 TTI 的相同输入参数,相同调度器算法的 GPU 和 CPU 实现应给出相同的输出解。

两种类型的测试

  • 每个调度器模块测试:DL/UL UE 选择、DL/UL PRG 分配、DL/UL 层选择和 DL/UL MCS 选择

  • 完整的 DL/UL 调度器流水线测试

基于 TV 加载的单 TTI 测试平台 (aerial_sdk/cuMAC/examples/tvLoadingTest)。

构建 cumac 后,使用以下命令检查测试平台的输入参数:./aerial_sdk/cuMAC/build/examples/tvLoadingTest/tvLoadingTest -h

  • 每个调度器模块测试

    • DL UE 选择

      ./aerial_sdk/cuMAC/build/examples/tvLoadingTest/tvLoadingTest -i [path to TV] -g 2 -d 1 -m 01000
      
    • DL PRG 分配

      ./aerial_sdk/cuMAC/build/examples/tvLoadingTest/tvLoadingTest -i [path to TV] -g 2 -d 1 -m 00100
      
    • DL 层选择

      ./aerial_sdk/cuMAC/build/examples/tvLoadingTest/tvLoadingTest -i [path to TV] -g 2 -d 1 -m 00010
      
    • DL MCS 选择

      ./aerial_sdk/cuMAC/build/examples/tvLoadingTest/tvLoadingTest -i [path to TV] -g 2 -d 1 -m 00001
      
    • 可以通过设置输入参数来测试 UL 调度器模块:-d 0

  • 完整的 DL/UL 调度器流水线测试

    • DL/UL 调度器模块按顺序执行:UE 选择 > PRG 分配 > 层选择 > MCS 选择

    • DL 调度器流水线

      ./aerial_sdk/cuMAC/build/examples/tvLoadingTest/tvLoadingTest -i [path to TV] -g 2 -d 1 -m 01111
      
    • UL 调度器流水线

      ./aerial_sdk/cuMAC/build/examples/tvLoadingTest/tvLoadingTest -i [path to TV] -g 2 -d 0 -m 01111
      

通过标准

CPU 和 GPU 计算的解决方案应完全匹配:测试平台返回 1 (PASS) 或 0 (FAIL)

连续时间测试#

在相同的初始状态下,当运行一段时间后,相同调度器算法的 GPU 和 CPU 实现应实现相似的性能曲线。

  • 完整的 DL/UL 调度器流水线测试

    • 连续时间测试平台 (aerial_sdk/cuMAC/examples/multiCellSchedulerUeSelection)

    • 构建 cumac 后,使用以下命令检查测试平台的输入参数

      ./aerial_sdk/cuMAC/build/examples/multiCellSchedulerUeSelection/multiCellSchedulerUeSelection -h
      
    • 无需使用预生成的 H5 TV。所有参数均使用 cuMAC 内部模拟器计算。

    • 可以使用 aerial_sdk/cuMAC/examples/parameters.h 文件指定模拟器配置。

    • DL/UL 调度器模块按顺序执行:UE 选择 > PRG 分配 > 层选择 > MCS 选择

    • DL 调度器流水线测试

      ./aerial_sdk/cuMAC/build/examples/multiCellSchedulerUeSelection/multiCellSchedulerUeSelection
      
    • UL 调度器流水线测试

      ./aerial_sdk/cuMAC/build/examples/multiCellSchedulerUeSelection/multiCellSchedulerUeSelection -d 0
      

通过标准

GPU 和 CPU 调度器实现实现的性能曲线应匹配:测试平台返回 1 (PASS) 或 0 (FAIL)

两种类型的性能曲线

  • 所有小区的总吞吐量

  • 每个 UE 吞吐量的 CDF