概述#
随着 6G 研究势头渐增,以及众多新技术纳入其中,一件事变得清晰,AI/ML 将在新一代 RAN 中占据突出地位。它将在实现从无线单元、基带处理、网络核心(包括系统管理、编排和动态优化流程)到所有网络基础设施部分发挥关键作用。GPU 硬件以及编程框架对于实现软件定义的原生 AI 通信基础设施的愿景至关重要。
AI/ML 在物理层中的应用尤其一直是研究热点。人们非常重视神经网络架构和优化策略,这些策略主要在仿真环境中执行。研究界和商业系统开发人员的下一步是将应用于 Layer-1 的 AI/ML 在空中实时测试平台和运营商网络规模系统中变为现实。
这正是 pyAerial 发挥作用的地方。pyAerial 是物理层组件的 Python 库,可以用作将设计从仿真到实时操作的工作流程的一部分。它有助于端到端验证神经网络集成到 PHY 管道中,并有助于弥合从 TensorFlow/PyTorch 中的训练和仿真世界到空中实时测试平台中的实时操作之间的差距。
pyAerial 库为 NVIDIA cuBB Layer-1 PDSCH 和 PUSCH 管道中的所有信号处理 CUDA 内核提供了一个 Python 可调用、位精确的 GPU 加速库。换句话说,pyAerial Python 类的行为方式与 cuBB 中使用的内核在数值上是相同的,因为 pyAerial 类采用与相应 cuBB 内核完全相同的 CUDA 代码:它就是 CUDA 内核,但具有 Python API。
使用 pyAerial 库组件,可以在 Python 中组合完整的 Layer-1 管道。来自 NVIDIA TensorRT 的用户代码或推理引擎,或自定义 CUDA 代码,可以包含在数据路径中,如图 1 的下半部分所示。这种快速原型设计和验证流程用于数据平面功能性能评估。这是在空中实时 GPU 基站中部署之前验证物理层设计的工作流程中的一步。
pyAerial 还可以与 NVIDIA 数据收集平台 Aerial Data Lake 结合使用。Aerial Data Lake 数据库由来自 7.2x 前传接口的 RF 样本以及 L2 元信息组成,以支持数据库搜索和查询操作。pyAerial 管道可以使用 Data Lake Python API 访问 Aerial Data Lake 数据库中的样本,并将该数据转换为管道中任何功能的训练数据。图 2 说明了从 Data Lake 数据库到 pyAerial 管道的数据入口,以及使用标准 Python 文件 I/O 为软解映射器生成训练数据。
主要功能#
pyAerial 具有以下主要功能
功能 1:高效的 Python,用于快速原型设计 Layer-1 管道
pyAerial 库组件是带有 Python 绑定的 CUDA 内核。Python 的高效环境允许在 Python 中快速组装信号处理管道。Python 的所有分析和可视化方面都可用于性能表征、信号可视化和调试。
功能 2:在空中操作之前模拟物理层中的机器学习
为了实现从 TensorFlow 或 PyTorch 中的模型训练和仿真到空中实时操作的目标,pyAerial 提供了一种方便的方法来验证、评估和基准测试您的物理层,然后再将其部署到 OTA 测试平台中。
功能 3:使用 CUDA 优化内核进行快速仿真
pyAerial 库组件在底层是 CUDA。在 GPU 上进行仿真速度很快。当您仿真编码链时,包括例如 LDPC 解码器,优化的 CUDA 代码正在实现这些计算密集型功能。
功能 4:为 Layer-1 上行链路或下行链路管道中的任何节点生成数据集
pyAerial 旨在与 NVIDIA 数据收集平台 Aerial Data Lake 结合使用。pyAerial 可以访问 Data Lake 数据库中的 RF 样本,并将这些样本转换为上行链路或下行链路管道中所有信号处理功能的训练数据。
功能 5:位精确仿真
由于 pyAerial 是在 CUDA 上运行的 Python,因此您在 BLER 和其他表征指标中观察到的性能与空中实时系统的性能完全相同。
目标受众#
希望将机器学习引入物理层,最终目标是在空中测试平台(如 NVIDIA ARC-OTA 或其他基于 GPU 的基站)上进行基准测试的行业和大学研究人员和开发人员。
价值主张#
神经网络下行链路和上行链路信号处理管道的快速位精确 GPU 加速仿真。实时 Layer-1 的快速原型设计和功能验证,为实时部署做准备。便捷的 Python 环境有助于调试,并提供对管道中所有节点的轻松访问,以便进行可视化和分析。易于使用的 Python 环境,用于生成实时位精确 GPU Layer-1 实现的 BLER 和其他感兴趣的统计信息。将空中捕获的 RF 样本转换为用于训练 Layer-1 功能或多个功能组合的数据。

图 1:使用 pyAerial 验证完整上行链路管道环境中的神经管道。这是在 GPU 基站上进行空中实时操作的验证步骤之一。#

图 2:pyAerial 与 NVIDIA 数据收集平台 Aerial Data Lake 结合使用,为 Layer-1 下行链路或上行链路信号处理管道中的任何节点构建训练数据集。 该示例展示了使用 pyAerial 将空中样本的 Data Lake 数据库转换为神经网络软解映射器的训练数据。数据在解映射器的输入和输出处提取,并存储在数据库中。#
发行说明#
发行版本:24-3
此版本的新增功能
CSI-RS 传输管道
RSRP 以及均衡器前和均衡器后 SINR 估计
载波频率偏移和定时提前估计
CRC 校验
OFDM 衰落信道仿真
支持 PUSCH 接收器管道及其组件的多个 UE 组
改进的 PUSCH 接收器管道及其组件的 API
支持的配置
带有 x86 平台的 AX800、A100X 和 A100 GPU。
CUDA 工具包:12.6.2
GPU 驱动程序:560.35.03
在 Grace Hopper 平台上有限的支持:支持 pyAerial Python 包,但容器不包含 TensorFlow 或 Sionna。因此,例如,只有 Aerial Data Lake 示例笔记本可以在 Grace Hopper 平台上运行。
支持功能的完整列表
cuPHY 库的 Python API。目前包括以下功能
PUSCH 接收器管道
PDSCH 传输管道
CSI-RS 传输管道
信道估计(注意:cuPHY 支持的 RKHS 算法目前未通过 pyAerial API 公开)
噪声和干扰估计
信道均衡和软解映射
RSRP 以及均衡器前和均衡器后 SINR 估计
载波频率偏移和定时提前估计
LDPC 编码
LDPC 解码
LDPC 速率匹配
CRC 校验
SRS 信道估计
TensorRT 推理引擎
OFDM 衰落信道仿真