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有望成为网络内计算的基石。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: wince mcgstpc_net35_setup 是一个 Windows CE 平台上的安装程序,用于安装 Microsoft .NET Compact Framework 3.5 (NETCF 3.5) 运行时环境。 Windows CE 是微软为嵌入式系统开发的一种操作系统,它主要用于一些资源有限的设备,如手持设备、嵌入式设备等。而 .NET Compact Framework(简称。NET CF)则是微软为嵌入式系统开发的一套小型的.NET运行时库。 NETCF 3.5 是在之前版本的基础上进行了升级,提供了一些新的功能和改进,使开发人员能够更轻松地创建可在 Windows CE 平台上运行的应用程序。它支持 Windows CE 5.0、6.0 和 7.0 版本,并且兼容性良好。 安装 mcgstpc_net35_setup 的目的是为了在 Windows CE 设备上安装 NETCF 3.5 运行时环境,以便运行基于.NET框架的应用程序。安装程序会将.NETCF 3.5 的核心文件和库文件拷贝到设备中的指定目录,使得设备能够正确解析和执行由.NET CF 编译的应用程序。 安装.NET CF 3.5 不仅可以提供更好的应用程序兼容性,还可以让开发人员能够使用.NET平台上更丰富的功能和特性来开发应用程序。而且.NET CF 还提供了一些用于简化开发的工具和类库,使开发人员能够更快速、高效地开发出质量更高的应用。 总的来说,wince mcgstpc_net35_setup 是一个用于安装 NETCF 3.5 运行时环境的安装程序, 它可以为 Windows CE 设备提供更好的应用程序兼容性和更丰富的开发功能,使得开发人员能够更方便地创建适用于嵌入式系统的.NET应用程序。 ### 回答2: wince mcgstpc_net35_setup 是一个 Windows CE 操作系统上的安装程序。这个安装程序主要是用于安装 MCSTPC 所需的 .NET Compact Framework 3.5 组件。 在 Windows CE 操作系统上,.NET Compact Framework 是用于开发和运行基于.NET技术的应用程序所必需的一个组件。MCSTPC 是一个应用程序,它可能与 .NET Compact Framework 3.5 兼容。 安装过程中,wince mcgstpc_net35_setup 首先会检查系统是否满足安装要求,如系统的硬件配置和操作系统版本等。如果系统符合要求,安装程序会将.NET Compact Framework 3.5 组件提取到合适的目录,并进行必要的注册,以供 MCSTPC 应用程序调用。 通过安装 wince mcgstpc_net35_setup,用户可以确保系统具备运行 MCSTPC 应用程序所需的环境。当用户运行 MCSTPC 时,其所需的 .NET Compact Framework 3.5 组件会被自动加载和使用。 总之,wince mcgstpc_net35_setup 是一个用于安装 .NET Compact Framework 3.5 组件的 Windows CE 安装程序,其目的是为了提供 MCSTPC 应用程序所需的必备环境。 ### 回答3: wince mcgstpc_net35_setup是指Windows CE操作系统中的一个安装模块,用于在设备上安装和配置Microsoft .NET Compact Framework版本3.5。 Microsoft .NET Compact Framework是一种基于.NET技术的轻量级的应用程序开发框架,旨在在嵌入式和移动设备上开发和运行应用程序。它提供了一系列的类库、工具和运行时环境,使开发人员能够在Windows CE设备上构建功能强大的应用程序。 通过安装wince mcgstpc_net35_setup,用户可以将设备升级到支持.NET Compact Framework 3.5的版本。这将使设备能够运行基于.NET技术开发的应用程序,并利用.NET Compact Framework的功能和特性。 安装和配置wince mcgstpc_net35_setup的过程通常较为简单,用户只需执行一个命令或运行一个安装程序,然后跟随提示完成安装过程。安装完成后,设备将具备.NET Compact Framework 3.5的运行环境,并可以运行相应的应用程序。用户还可以根据需要对.NET Compact Framework进行一些配置,例如选择不同的语言支持、调整内存分配等。 总的来说,wince mcgstpc_net35_setup是用于在Windows CE设备上安装和配置.NET Compact Framework 3.5的工具。通过将设备升级到支持.NET Compact Framework 3.5,用户可以运行更多的应用程序,并享受.NET技术带来的便利和功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值