cuMAC-CP#

CUDA RAN MAC 调度器控制平面 (cuMAC-CP) 是一个进程,提供 5G/6G L2(MAC 调度器功能)和 Aerial cuMAC 库之间的接口,调度器功能在 GPU 上加速。它接受每个小区的 L2/MAC 调度请求,转换为 cuMAC 任务并调用 cuMAC 库 API 在 GPU 上处理。处理完成后,它通过每个小区的响应消息将调度结果返回给 L2/MAC。

以下是 cuMAC-CP 架构图。

../../../_images/cumac-cp-arch.png

cuMAC-CP 有 1 个接收线程和多个工作线程,这些线程需要绑定到专用 CPU 核心。线程模型如下所示。CPU 核心数量可通过 yaml 文件配置(24-2 版本每个核心仅支持 1 个工作线程)。

../../../_images/cumac-cp-thread-model.png

接收线程为每个时隙分配一个 cumac_task 对象和必要的数据缓冲区。一旦 cuMAC-CP 从 L2/MAC 接收到所有小区的调度请求消息,接收线程将它们组装成小区组,填充 cumac_task 对象并将其推送到无锁任务队列中,然后增加信号量以通知工作线程。

所有工作线程在初始化后都在同一个信号量上等待。每次信号量被接收线程增加时,一个工作线程将获得信号量,将 cuMAC 任务出队并调用 cuMAC 库 API 进行处理。处理完成后,工作线程创建每个小区的响应消息并将它们发送到 L2。以下是程序流程图。

../../../_images/cumac-cp-program-flow-chart.png