跳到主要内容
返回时间线
arXiv来源发表:

交换机顺路做信号处理:binDCT 免乘法变换进流水线,分类 MCC 从 0.35 升到 0.42

核心概要

可编程交换机上直接跑 binDCT 块变换,把带噪传感器流在转发路径上先滤波再送进网内机器学习,交换机侧分类 MCC 从 0.35 升到 0.42,与服务器侧持平。

Source-provided article image: Towards Signal Processing In Networks: Multiplierless Block Transforms in Data Plane
Figure 1 · arXiv

深度剖析

信号处理被搬到了可编程交换机的转发路径上,传感器原始流不必先送到边缘或云端服务器再处理。 此前去噪、子带分解和降维这类任务在边缘或云服务器上完成,原始流要全程穿过网络,服务器负载随传感器数量增长。 在 Intel Tofino2 上,该实现通过 Open P4 Studio 编译,满足流水线级数、包头向量和 TCAM 的硬件约束,因而可以线速处理。

块变换被改写成只用加法、减法和移位就能执行的级联操作,从而绕开交换机不支持通用乘法的限制。 直接实现稠密矩阵乘法需要乘法,而可重构匹配表流水线只提供有限级数、有限每级算术能力和受限的跨级数据依赖。 采用基于提升的格形结构,并用 binDCT 把旋转系数近似为二进制分数,八点 binDCT 只用 30 次加法和 13 次移位;随后把信号流图按流水级切分,每级最多保留两个活跃临时值。

在交换机侧对变换系数做掩蔽滤波,能抵消整数量化带来的分类性能损失。 不做滤波时,交换机侧 MCC 为 0.35,低于服务器侧的 0.41,部分原因是输入量化误差会传过 binDCT。 在 Wafer 晶圆制造传感器数据集上,用 Planter 的 Encode-Based 映射在 BMv2 上评估,滤波后 MCC 达到 0.42,与服务器侧数值相同。

启示与展望

该实现面向可编程交换机数据平面,处理对象是传感器时间序列,评估在 Wafer 晶圆制造数据集上完成,分类任务被改写成逐包分类。适合关注网内计算、可编程数据平面和网内机器学习的读者。文中把扩展到 IIR 滤波器列为未来方向。

交换机侧使用整数运算,服务器侧使用浮点运算,两者算术不同;不做滤波时交换机侧 MCC 低于服务器侧,这一差距部分归因于输入量化误差传过 binDCT。滤波后 MCC 与服务器侧持平,但该结论来自 Wafer 数据集上的评估。扩展到 IIR 滤波器需要状态化 ALU 支持融合的读-移位-加-写操作,当前 Tofino 风格的状态化 ALU 不支持。