NetCF总结

NetFC: 在可编程交换机上启用精确浮点运算

NetFC: Enabling Accurate Floating-point Arithmetic on Programmable Switches

NetFC重要性

在现代数据中心中,许多数据密集型的应用(如大数据分析、分布式深度学习、图处理、实时流处理。由于频繁的数据交换)可能会因为大量的网络通信开销而性能下降。减少网络通信成了加速数据密集型应用的关键因素。而网络已经能够提供计算能力。因此,一些传统上在主机端执行的计算任务可以转移到网络设备上。在此过程中,网络流量可以在到达主机之前被网络设备实时拦截和处理。网络内计算的吸引力在于:1、数据传输过程中可以消耗和处理包,这大大减少了网络的开销(如网络排队延迟和IO开销) 2、将计算负载转移到网络上,可以减轻服务器CPU负担(如网内梯度聚合,网络遥测系统)。

挑战

但网络的计算能力非常有限,即使是最先进的可编程交换机也只支持简单的整数算术运算(如加减法)。

传统的浮点运算方法无法直接部署到可编程交换机上,由于

  • 有限的计算能力:可编程交换机只支持一些简单的整数算法。也就是说,浮点数和乘法、除法等算术运算已经超过了交换机的容量
  • 稀缺的片上存储器:交换机的片上内存非常小,所以不可能为浮点运算提供巨大的内存。请注意,必须保留一部分内存用于转发规则存储和查找,这进一步加剧了这个问题。
  • 有限的管道阶段:交换数据平面通常由多个阶段组成,每个阶段都是一个具有一定计算和存储资源的分组处理单元。然而,阶段的数量很少,任何两个依赖的封包处理操作都不能分配到同一个阶段。

这成为了网络内应用程序加速的障碍,因为许多应用程序通常需要处理复杂的浮点数据和算术操作(如乘除法)。以往的研究主要采用两种不同的方式来间接支持浮点运算以克服这一障碍。一种是根据服务器端复杂的协商机制将浮点数转换为整数,但不支持浮点乘法和除法。另一种是将计算任务卸载到交换机的本地CPU,但引入了显著的延迟。目前还缺乏一种可以在可编程交换机上几乎不损失精度的情况下实现实时的网络内浮点算术操作的方案。

可以采用查表法来支持可编程交换机上的浮点运算。直观地说,一种简单而直接的方法是使用一个表来列举所有可能的计算情况。对于一个算术操作,可以使用它的两个操作数作为键来查找表,对应的值就是结果。

然而生成的表太大而无法安装在可编程交换机上,因为它需要遍历所有操作数并枚举它们的各种组合(对于两个16位浮点操作数,大约需要8GB内存)。

方案

为解决表过大,NetFC采用了分治法

在这里插入图片描述

具体来说,它利用对数投影和转换将原始的大表转换为几个小得多的表,这些表使用内置的整数操作(即加减)进行操作。

NetFC进一步采用了缩放因子机制来提高计算精度。因为NetFC使用 ⌊ l o g 2 ( x ) ⌋ \lfloor log2(x)\rfloor log2(x)来近似 l o g 2 ( x ) log2(x) log2(x),这不可避免地会导致准确性损失,因为 l o g 2 ( x ) log2(x) log2(x)的小数部分被忽略了。为了解决这个问题,NetFC利用一个比例因子 k k k l o g 2 ( x ) log2(x) log2(x)相乘,以放大其小数部分并避免被忽略。NetFC还将该比例因子划分到后续步骤中,以保证浮点运算的正确性。

并使用基于前缀的无损压缩方法来减少片上内存的使用。具体来说,对于NetFC中的一个表,可能有许多连续的表项具有相同的值,因此它们对应的键可以被合并。

在这里插入图片描述

开放问题

多个浮点操作

NetFC可以通过顺序部署不同计算类型的查找表来支持多个浮点操作。例如,我们可以顺序地部署加法和乘法查找表,以实现首先是加法,然后是乘法的操作。当然,这将会有更多的阶段。也就是说,NetFC可以为每个数据包支持的浮点操作的数量取决于数据平面的可用阶段。此外,我们还可以进一步利用Barefoot Tofino交换机提供的再循环操作,改变不同浮点操作的顺序。

32位浮点操作

由于片上存储器的限制,目前NetFC的实现不支持32位浮点数。理论上可以采用一种基于泰勒级数的近似方法来减少内存消耗并支持32位浮点操作。我们把它留作以后的工作。

见解

网络内计算是通过将一些任务转移给可编程交换机来减少网络开销的一种新兴趋势。然而,它受限于可编程交换机的有限计算能力(例如浮点运算)。为了解决这一问题,设计了NetFC,一种表查找方法,以实现在网络中几乎不损失精度的动态浮点操作。NetFC采用基于前缀的无损压缩机制来减少内存消耗。实验结果表明,NetFC的平均准确率超过99.94%,而内存消耗仅为448KB。此外,作者将NetFC集成到Sonata中检测Slowloris攻击,显著降低了检测延迟。NetFC有望成为网络内计算的基石。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值