摘要
在现代云环境中,网络速度飞速提升,因此智能网卡(SmartNIC)被引入以卸载网络处理任务,甚至是应用程序逻辑。然而,像 BlueFiled - 2 这样的典型多核智能网卡,其嵌入式 CPU 的内存带宽和计算能力有限,仅能处理控制平面任务。另一方面,热门的云应用不断演进,智能网卡中数量有限的固定硬件引擎无法满足云应用的需求。因此,智能网卡程序员希望使用可编程数据路径加速器(DPA)来以线速处理网络流量。然而,目前尚无研究揭示现有 DPA 的性能特征。

为此,我们首次对最新的 DPA 增强型 BF3 智能网卡进行了架构特性分析。我们的评估结果表明,BF3 的 DPA 性能远不如非数据路径的 Arm 处理器和主机 CPU。不过,我们仍发现 DPA 具有三个独特的架构特性,这些特性能够释放 DPA 的性能潜力。具体而言,我们展示了如何利用 DPA 在计算、网络和内存子系统方面的三个架构特性。然后,我们为程序员提出了三条重要准则,以充分释放 DPA 的潜力。为了证明我们方法的有效性,我们针对每条准则进行了详细的案例研究。在我们对键值聚合服务的案例研究中,通过使用我们的准则优化内存组合,吞吐量最高提升了 4.3 倍。
相关研究
据我们所知,本文首次对 DPA 增强型智能网卡进行了基准测试。
智能网卡的特性分析
以往的研究从不同角度对智能网卡进行特性分析。iPipe [46] 从计算能力、内存、流量控制和主机通信等方面对片上系统(SoC)智能网卡进行了特性分析。基于评估结果,iPipe 提出了一个基于 Actor 的框架,用于将分布式应用卸载到智能网卡上。相比之下,我们从架构角度对连接 BF3 的服务器中的不同 CPU 进行特性分析,并探究 DPA 独特架构特性可能产生的影响。Wei 等人 [70] 从通信路径的角度对非数据路径的 BlueField - 2 智能网卡进行特性分析,并同时使用多个通信路径来提高分布式系统的吞吐量。相比之下,我们关注连接 BF3 的服务器中 CPU 的架构差异,并根据架构特性优化卸载性能。Sun 等人 [65] 使用高级应用对非数据路径的 BlueField - 2 进行评估,并建议将智能网卡用作新的端点以提供水平扩展能力。Liu 等人 [45] 对 BlueField - 2 非数据路径的 Arm 处理器的网络和计算能力进行了特性分析。Michalowicz 等人 [51] 主要就非数据路径的 Arm 处理器的计算能力对 BlueField - 2 和 BlueField - 3 进行了比较。DPUBench [68] 是一个由应用驱动的可扩展基准测试套件,用于全面评估数据处理单元(DPU)。相比之下,我们从架构角度专注于对 BlueField - 3 的 Arm 处理器和 DPA 进行特性分析。
智能网卡卸载
将主机工作负载卸载到智能网卡上这一话题最近在学术界和工业界都受到了广泛关注。许多先前的研究将主机任务卸载到基于现场可编程门阵列(FPGA)或片上系统(SoC)的智能网卡上。对于基于 FPGA 的智能网卡,Tonic [4] 实现了可编程传输协议;hXDP [9] 卸载了 eBPF 处理;PANIC [43] 解决了多租户环境下的性能隔离和公平性问题;FlowBlaze [59] 实现了在 FPGA 上进行有状态的网络数据包处理;FpgaNIC [69] 支持数据 / 控制平面卸载,以实现高效的 GPU - 智能网卡协同处理;SmartDS [79] 将解聚存储工作负载卸载到 FPGA 上 。对于基于 SoC 的智能网卡,Floem [58] 将键值存储和实时数据分析等应用卸载到智能网卡上;FairNIC [23] 解决了性能隔离和公平性问题;Xenic [63] 将分布式事务卸载到智能网卡上。这些研究利用智能网卡来缓解 CPU 压力,但都没有对 DPA 增强型智能网卡进行全面研究。
结论
像 BlueFiled - 2 这样的典型多核智能网卡,其嵌入式 CPU 仅能处理控制平面任务,无法直接处理不断演进的热门云应用产生的网络流量。因此,与智能网卡相关的研究需要一种可编程数据路径加速器(DPA)来以线速处理网络流量。然而,目前尚无研究揭示 DPA 的性能特征。我们首次对最新的 DPA 增强型 BF3 智能网卡进行了架构特性分析。我们发现 DPA 具有三个独特的架构特性,这些特性能够释放 DPA 的潜力。我们为程序员提出了三条开创性的准则,以充分释放 DPA 的潜力。为了证明我们方法的有效性,我们针对每条准则进行了详细的案例研究。
RC4ML实验室与阿里云存储团队、威斯康辛刘铭老师合作的新一代智能网卡架构性能基准测试框架代码已开源至https://github.com/RC4ML/BenchBF3。
全球DPU/智能网卡生态图:
一、投资篇:

