Skip to main content
QUICK REVIEW

[论文解读] Unlocking the Power of Inline Floating-Point Operations on Programmable Switches

Yifan Yuan, Omar Alama|arXiv (Cornell University)|Dec 11, 2021
Parallel Computing and Optimization Techniques被引用 7
一句话总结

该论文提出Fpisa,一种软件定义的浮点数表示方法,通过将浮点数值分解为指数和尾数分量,并利用现有硬件在流水线阶段中处理这些分量,从而在可编程交换机上实现高效的内联浮点运算。Fpisa在分布式训练中实现了高达85.9%的吞吐量提升,在浮点查询处理中实现了2.7倍的吞吐量提升,相较于最先进系统,且仅需极少的硬件修改,这些修改在15-nm工艺中具有可行性。

ABSTRACT

The advent of switches with programmable dataplanes has enabled the rapid development of new network functionality, as well as providing a platform for acceleration of a broad range of application-level functionality. However, existing switch hardware was not designed with application acceleration in mind, and thus applications requiring operations or datatypes not used in traditional network protocols must resort to expensive workarounds. Applications involving floating point data, including distributed training for machine learning and distributed query processing, are key examples. In this paper, we propose FPISA, a floating point representation designed to work efficiently in programmable switches. We first implement FPISA on an Intel Tofino switch, but find that it has limitations that impact throughput and accuracy. We then propose hardware changes to address these limitations based on the open-source Banzai switch architecture, and synthesize them in a 15-nm standard-cell library to demonstrate their feasibility. Finally, we use FPISA to implement accelerators for training for machine learning and for query processing, and evaluate their performance on a switch implementing our changes using emulation. We find that FPISA allows distributed training to use 25-75% fewer CPU cores and provide up to 85.9% better throughput in a CPU-constrained environment than SwitchML. For distributed query processing with floating point data, FPISA enables up to 2.7x better throughput than Spark.

研究动机与目标

  • 为解决可编程交换机中缺乏原生浮点数支持的问题,该问题阻碍了数据中心工作负载(如分布式机器学习训练和查询处理)的加速。
  • 克服现有替代方案(如基于软件的格式转换或专用FPU硬件)带来的高开销,或灵活性差、成本过高的局限性。
  • 设计一种通用、高效且硬件可行的浮点数表示方法(Fpisa),使其可直接在P4可编程交换机上运行,而无需定制ASIC。
  • 通过在修改后的交换机架构上进行硬件综合与仿真,验证Fpisa的可行性和性能优势。

提出的方法

  • Fpisa将32位浮点数分解为独立的指数和带符号尾数分量,并在多个流水线阶段中处理这些分量,以避免多周期瓶颈。
  • 重新利用交换机流水线中现有的面向网络的硬件元件(如移位器和比较器)来实现整数ALU不原生支持的子操作。
  • 首先在通用英特尔Tofino硬件上实现一种近似变体Fpisa-a,以评估基线性能并识别吞吐量和精度的限制。
  • 基于开源Banzai交换机架构,提出最小化、低开销的硬件扩展,以支持全精度、高吞吐量的Fpisa运算。
  • 将所提出的硬件改动在15-nm标准单元库中进行综合,以验证其在面积、功耗和时序方面的可行性。
  • 通过真实工作负载的仿真评估性能:使用Cheetah进行查询处理,使用修改后的Cheetah基准测试进行含FP32数据的分布式训练。

实验结果

研究问题

  • RQ1是否可以仅使用现有硬件组件和软件级分解,在可编程交换机中高效实现浮点运算?
  • RQ2在通用可编程交换机上通过软件定义的表示方法(如Fpisa)实现浮点计算,其性能与精度之间存在怎样的权衡?
  • RQ3如何通过最小化、成本效益高的硬件扩展,在不显著增加面积或功耗的前提下,提升Fpisa的吞吐量和精度?
  • RQ4与现有解决方案相比,Fpisa在多大程度上能够加速真实世界应用(如分布式机器学习训练和浮点数据库查询处理)?
  • RQ5在标准15-nm CMOS工艺中集成Fpisa兼容的硬件扩展是否可行,且开销可接受?

主要发现

  • Fpisa可使分布式训练将CPU核心使用率降低25–75%,在CPU受限环境中实现比SwitchML高达85.9%的吞吐量提升。
  • 在含浮点数据的分布式查询处理中,Fpisa的吞吐量比原生Spark高出最多2.7倍,性能增益与整数数据类型相当。
  • 在英特尔Tofino上实现的初始Fpisa-a版本揭示了由于交换机现有流水线约束,吞吐量和精度存在显著限制。
  • 针对Banzai架构的所提硬件扩展在15-nm标准单元库中可合成实现,对面积、功耗和时序的影响极小。
  • 仿真结果证实,Fpisa可在大规模场景下加速机器学习训练和查询处理工作负载,性能增益与基于整数的加速器一致。
  • Fpisa为专用FPU或基于FPGA的加速器提供了一种通用、可扩展且硬件高效的替代方案,避免了ASIC重新设计带来的高成本和低灵活性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。