开发者社区> 问答> 正文

什么是FPGA 虚拟化技术?

已解决

什么是FPGA 虚拟化技术?

展开
收起
阿阿里云 2022-04-05 09:38:45 1325 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    将 FPGA 的高性价比算力通过云输出,使得 FPGA 的算力普惠化、平民化,这 是 FPGA as a Service 的核心出发点和立足点。同时,云上使用 FPGA 与 FPGA 的传统 使用方式也有着非常大的区别。FPGA as a Service 的核心就是 FPGA 虚拟化技术。

    目前 FPGA 虚拟化技术还在发展初期,近几年随着云计算和 AI 技术的发展,才逐渐成为工业和学术领域研究的热点。关于 FPGA 虚拟化技术的介绍文献也比 较少,关于 FPGA 虚拟化技术的发展历史,目前比较全面的总结可以参考 2018 年由 Manchester 大学学生发表的一篇 IEEE 论文A Survey on FPGA Virtualization,文 中提到早在 2004 年由 Plessl 和 Platzner 发表的一篇论文Virtualization of Hardware- Introduction and Survey 中提到过 FPGA 虚拟化技术的概念,将 FPGA 虚拟化技术分 为时域划分(Temporal Partitioning)、虚拟化执行(Virtualized Execution)和虚拟机(Virtual Machines)三种。

    时域划分早期主要解决设备容量问题,是将大规模的应用设计拆分为几个小设 计,然后将每个设计烧写在单个 FPGA 上顺序执行。时域划分技术如图 3-35 所示, 主要包括网表划分、数据流图划分和 CDFG 划分。随着数据量和计算复杂度的增加, 单片 FPGA 已经无法满足一个应用的需求,需要多片 FPGA 并行完成,虚拟化技术逐 渐打破了时间和空间维度的限制,就像大型数据中心的应用场景:多片 FPGA 并行执 行同一个任务,并可以及时切换到下一个任务。

    虚拟化执行是把一个应用分成几个有关联的任务,并通过一个抽象层来管理和调 度它们,其目的是在一定程度上实现设备无关性(Device Independence),从而解决资 源管理和安全隔离问题,还可以提高开发效率,比较典型的例子是“PipeRench”项 目,此项目成功研发了“Kilocore”芯片,它内置了一个 PowerPC 处理器,实现了硬 件虚拟化,并可以动态配置,从而解决 FPGA 的资源限制问题。

    虚拟机通过一个抽象架构来描述应用从而彻底实现设备无关性。起初,虚拟机的 概念用来表示 FPGA 的静态架构,譬如 Shell 或者 vFPGA 的 Hypervisor,并不是我们 现在理解的虚拟机概念。现在的 FPGA Overlay 技术是应用比较广泛的 FPGA 虚拟化 方法之一,它是位于 FPGA 硬件层之上、并连接顶层应用的虚拟可编程架构,实现了 对 FPGA 底层硬件资源的抽象化和虚拟化。FPGA Overlay 的具体实现方式有很多种, 这里不详细介绍,其主要目的是为上层用户提供他们熟悉的编程架构与接口,比如通 过 C 语言等高层语言对 Overlay 中的通用处理器等进行编程,而无须担心具体的硬件 电路实现,这点类似 HLS。Overlay 实现了 FPGA 的硬件无关性,便于应用设计在不 同 FPGA 架构间移植。另外,用户可以选择只编译自己改动的逻辑部分,在很大程度 上缩短了 FPGA 的编译时间,也方便对应用进行调试和修改。但是在实际开发中,由 于其引入的 Overlay 层并不能完全隐藏 FPGA 结构,而且此技术没有业界统一标准, 所以会来带额外的开发难度和成本。

    3-35.png

    《弹性计算:无处不在的算力》电子书可以通过以下链接下载:https://developer.aliyun.com/topic/download?id=7996"

    2022-04-05 12:02:54
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
虚拟化异构计算产品发布 立即下载
基于虚拟化的CI CD流程与基础架构建设 立即下载
移动虚拟化:360分身大师那些事 立即下载