[论文解读] FOS: A Modular FPGA Operating System for Dynamic Workloads
FOS 是一种模块化的FPGA操作系统,通过模块化编译流程和资源弹性运行时,将硬件与软件组件解耦,实现动态、多租户加速。它将编译时间减少最多2.34倍,更新延迟降低超过100倍,同时支持异构加速器(RTL、C、C++、OpenCL),并透明地在时间和空间域内调度资源,适用于单租户和多租户工作负载,且开销极小。
With FPGAs now being deployed in the cloud and at the edge, there is a need for scalable design methods which can incorporate the heterogeneity present in the hardware and software components of FPGA systems. Moreover, these FPGA systems need to be maintainable and adaptable to changing workloads while improving accessibility for the application developers. However, current FPGA systems fail to achieve modularity and support for multi-tenancy due to dependencies between system components and lack of standardised abstraction layers. To solve this, we introduce a modular FPGA operating system -- FOS, which adopts a modular FPGA development flow to allow each system component to be changed and be agnostic to the heterogeneity of EDA tool versions, hardware and software layers. Further, to dynamically maximise the utilisation transparently from the users, FOS employs resource-elastic scheduling to arbitrate the FPGA resources in both time and spatial domain for any type of accelerators. Our evaluation on different FPGA boards shows that FOS can provide performance improvements in both single-tenant and multi-tenant environments while substantially reducing the development time and, at the same time, improving flexibility.
研究动机与目标
- 为解决当前FPGA系统中硬件、EDA工具和软件组件紧密耦合所导致的模块化、可维护性和多租户支持不足的问题。
- 通过提供针对C、C++、OpenCL和RTL的高级、语言无关的API,抽象FPGA复杂性,提升开发人员的生产力和可访问性。
- 通过支持时间域和空间域多路复用的运行时系统,实现跨多个加速器和用户的动态资源分配。
- 通过解耦外壳和模块编译并支持模块重定位,减少FPGA系统中的编译和更新开销。
- 在无需完整系统重新编译的情况下,支持跨不同开发板和EDA工具版本的异构FPGA环境。
提出的方法
- FOS采用模块化FPGA开发流程,将系统组件(硬件和软件)划分为具有明确定义接口的独立可编译模块。
- 引入解耦编译模型,将外壳和加速器模块分别编译,支持其在不同FPGA平台间的重用和重定位。
- 运行时系统实现资源弹性调度,动态分配FPGA资源于时间域(时间多路复用)和空间域(空间分区)。
- 统一的用户界面抽象了多种语言(C、C++、OpenCL、RTL)的加速器访问,支持以应用为中心的编程。
- 系统支持运行时动态切换和复制加速器,可适应工作负载的变化。
- 开源软件栈配备高级API,使应用开发者能够在静态、单用户动态或多租户动态加速模式下使用FOS。
实验结果
研究问题
- RQ1FPGA系统如何在异构EDA工具、硬件平台和软件栈之间实现模块化和可维护性?
- RQ2模块化FPGA操作系统是否能减少FPGA系统中的编译和更新开销,同时支持动态工作负载?
- RQ3资源弹性运行时系统在时间域和空间域内调度多种加速器(RTL、C、C++、OpenCL)用于单租户和多租户工作负载时,效率如何?
- RQ4FOS在异构CPU-FPGA系统中,对非FPGA专家的开发人员生产力和可访问性提升程度如何?
- RQ5在具有并发异构工作负载的多租户环境中,FOS在性能和可扩展性方面提供了哪些优势?
主要发现
- 与单体FPGA流程相比,FOS将编译时间减少最多2.34倍,更新延迟降低超过100倍。
- 在Ultra-96平台上,系统在最多3个并行部分重配置区域时实现近乎线性的性能扩展,之后由于时间多路复用开销,性能趋于停滞。
- 曼德勃罗、布莱克-斯科尔斯和Sobel应用的执行延迟随着请求数量的增加近乎线性降低,直到达到物理区域数量的上限。
- 在多租户场景中,FOS通过动态重新分配资源,在1-Mandel × 1-Sobel基线配置下实现了46%的性能提升,即使存在冲突的内存访问模式也成立。
- 系统表明,即使单个应用发起贪婪的资源请求,智能的运行时调度仍可实现接近最优的系统性能。
- FOS运行时和抽象层的开销极小,且被动态资源利用和减少重新编译带来的性能增益所覆盖。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。