ACCL+: an FPGA-Based Collective Engine for Distributed Applications——论文泛读

OSDI 2024 Paper 论文阅读笔记整理

问题

FPGA在云部署中越来越普遍[16,81],如智能NIC[29,35,64,67103]、流处理器[31,32,55,68]和分布式加速器[15,41,61,65,86,93115]。可以使用FPGA到FPGA的直接通信来构建高效的分布式系统。然而,使用FPGA设计分布式应用程序是困难的,它需要FPGA上与数据中心基础设施兼容的网络栈,以及更高层次的抽象,例如集体通信,以实现更复杂的交互模式。集体通信是并行计算和分布式系统中的一种通信模式,涉及多个进程之间的数据交换和同步操作。集体通信操作通常由消息传递接口(MPI)等库提供,允许多个进程进行协同工作,而不需要每个进程独立地进行点对点通信。

最近的方法[10,18,60,70,72100]侧重于虚拟化FPGA资源以抽象数据移动,缺乏对网络的支持。这迫使利用FPGA的分布式应用程序依赖CPU进行通信[22,92116],从而增加了FPGA之间数据传输的延迟。直到最近,FPGA才有了本机网络支持[14,45,56,87,95]。但这些系统缺乏集体通信,限制了它们在更大的分布式用例中的适用性。

挑战

为FPGA实现高性能和多功能的集体抽象面临几个挑战:

  • 支持多种传输协议。这源于对特定应用解决方案的需求,并确保FPGA、CPU和加速器共存的混合环境中的互操作性。适应各种通信协议对于将基于FPGA的组件与系统的其他部分无缝集成至关重要。现有的工作[25,26,36,44,73,84,85,101,104,112]通常是针对FPGA直接相互连接而不通过数据中心分组交换网络连接的场景。在这些方法中,通信是通过低级链路层协议进行的,这导致了数据中心规模的可扩展性和集成挑战。

  • 集体实施的灵活性。一个关键的挑战是在硬件中提供灵活的设计,允许在运行时选择不同的集合和算法。当前的解决方案[26,45]通常将所有可能的集合模块直接集成到FPGA硬件中,导致对静态原语的更高需要数小时的重新编译。替代方法,例如在FPGA上使用嵌入式微控制器(uC)[89]的集体,以牺牲性能为代价提供了更大的灵活性。

  • 跨应用程序和平台的可移植性。可移植性是一个关键挑战,因为FPGA用于各种配置。图1a显示了FPGA集体通信库(CCL)作为FPGA加速器之间直联网络,还演示了以FPGA为中心的应用程序的分区内存模型[54,59,60],如果数据来自CPU内存(虚线),则需要显式内存副本。图1b说明了CCL作为具有共享虚拟内存的CPU应用程序的集体卸载引擎[62,70,75106]。这引发了应该向应用程序提供哪些通信模型的问题。接口应该支持消息传递,即MPI,在内存缓冲区之间进行通信;还是流式传输,在流式传输中通过连续的数据流进行通信。

本文方法

本文提出了FPGA上的自适应集体通信库ACCL+。

  • 可跨不同平台,支持UDP、TCP以及RDMA,使FPGA应用程序能够启动FPGA到FPGA的直接集体通信。可以作为CPU应用程序的集体卸载引擎,将CPU从网络任务中解放。

  • 提供了具有显式缓冲区分配的类MPI集体API和具有直接通道到通信层的流式集体API。

  • 为了实现可移植性,采用了模块化的系统架构,将特定于平台的IO管理和运行时与集体实现解耦,并结合了特定于平台和网络协议的适配器和驱动程序。

  • 为了灵活性,开发了独立于平台和协议的集体卸载引擎,支持在不重新编译硬件的情况下修改集体实现。

开源代码:GitHub - Xilinx/ACCL: Alveo Collective Communication Library: MPI-like communication operations for Xilinx Alveo accelerators 【可能是】

在具有100 Gb/s网络的FPGA集群上评估了ACCL+,并将其性能与RDMA上的软件MPI进行了比较。结果表明,ACCL+在基于FPGA的分布式应用中具有显著优势,在CPU应用中具有竞争力。

通过两个用例展示了ACCL+的双重作用:作为分布式基于CPU的向量矩阵乘法的集体卸载引擎,以及作为设计完全基于FPGA的分布式深度学习推荐推理的组件。

总结

针对基于FPGA的通信库,现有方法不能支持多种传输协议、灵活性不足、可移植性不足。本文提出FPGA上的自适应集体通信库ACCL+。包括四个技术:(1)可跨不同平台,支持UDP、TCP以及RDMA,使FPGA应用程序能够启动FPGA到FPGA的直接集体通信。可以作为CPU应用程序的集体卸载引擎,将CPU从网络任务中解放。(2)提供了具有显式缓冲区分配的类MPI集体API和具有直接通道到通信层的流式集体API。(3)为了可移植性,采用了模块化的系统架构,将特定于平台的IO管理和运行时与集体实现解耦,并结合了特定于平台和网络协议的适配器和驱动程序。(4)为了灵活性,开发了独立于平台和协议的集体卸载引擎,支持在不重新编译硬件的情况下修改集体实现。

相关推荐
有Li2 天前
关注与优化:用于骨龄评估的交互式关键点定位与颈椎定量分析|文献速递-深度学习人工智能医疗图像
论文阅读·医学生
AustinCyy2 天前
【论文笔记】DOC: Improving Long Story Coherence With Detailed Outline Control
论文阅读·nlp
weixin_443290693 天前
【论文阅读-Part1】PIKE-RAG: sPecIalized KnowledgE and Rationale Augmented Generation
大数据·论文阅读
行秋5 天前
安路Anlogic FPGA下载器的驱动安装与测试教程
fpga
不解风水5 天前
【论文阅读】一种基于经典机器学习的肌电下肢意图检测方法,用于人机交互系统
论文阅读·人机交互
爱补鱼的猫猫5 天前
17、CryptoMamba论文笔记
论文阅读
大熊背5 天前
《Fast Automatic White Balancing Method by Color Histogram Stretching》论文笔记
论文阅读·白平衡
CV-杨帆6 天前
论文阅读 arxiv 2024 MemGPT: Towards LLMs as Operating Systems
论文阅读
AAA锅包肉批发6 天前
论文阅读:Aircraft Trajectory Prediction Model Based on Improved GRU Structure
论文阅读·深度学习·gru
星夜Zn6 天前
Nature论文-预测和捕捉人类认知的基础模型-用大模型模拟人类认知
论文阅读·人工智能·大语言模型·nature·认知建模·统一认知模型