0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开创先河:探索FPGA虚拟化之路

YCqV_FPGA_EETre 来源:FPGA开发圈 2020-06-03 16:36 次阅读

云计算已经成为了一种新的计算范式。对于云计算而言,虚拟化是一项必不可少的技术,通过将硬件资源虚拟化,可以实现用户之间的隔离、系统的灵活可扩展,提升安全性,使得硬件资源可被充分利用。

从 2017 年起,因为FPGA的高可编程性、低延迟、高能效等特点,越来越多的云服务提供商,如 Amazon、阿里云、微软 Azure,都开始在云端提供了赛灵思 FPGA 实例,迈出了云计算发展的重要一步。然而截至目前,FPGA 云服务仍以物理卡的形式、面向单一的静态任务,没有很好的针对云端 FPGA 虚拟化的解决方案。最近,在 FPGA 领域顶级学术会议 FCCM2020 上,清华大学汪玉教授研究小组就这一课题实现了重要突破。

—— 姚颂

赛灵思人工智能业务高级总监

开创先河

探索 FPGA 虚拟化之路

曾书霖:一直以来,我们团队的研究重点都是以移动端神经网络加速器为基础,在此之上思索如何推广到云端数据中心进行扩展。为了适配云端的虚拟化特性,从硬件架构到软件设计都要实现对虚拟化的支持。2019 年我们发现,虽然在 CPUGPU 上针对AI应用已经有很多支持虚拟化的解决方案,但是在 FPGA 领域还缺乏相对成熟的方案。于是,我们决定在 FPGA 上面同时针对深度学习和虚拟化进行研究,力图实现 AI 应用在云端数据中心的高效部署。简单来讲,就是研究如何让多个用户的 AI 应用能够同时在一个 FPGA 上高效、可靠、灵活地运行起来。

举个例子,数据中心工作负载有一个重要特性,就是不仅存在多个用户,而且工作负载是的。针对数据中心多任务和动态负载的特点,深度学习加速器既要能够支持这种多任务并发执行,同时也需要适应快速的动态负载变化。基于这种思考,我们的研究定位于对原有移动端只能支持单任务和静态负载的神经网络加速器进行拓展,使之可以支持多任务并发和动态负载支持的虚拟化加速器设计。

为此,我们通过多核硬件资源池、基于分块 (tilling) 的指令封装、两级静态与动态编译的方式,实现了任务间的分离,同时还能保证快速在线重编程。

在今年5月举行的 FPGA 领域顶级会议 FCCM 2020 上,我们团队发表了针对深度学习加速的 FPGA 虚拟化方案。通常在 FCCM 这样的顶级学术会议,只有评分最高的论文才会被接收,并且接收率只有 20%。因此,论文能被接收对我们团队研究工作是极大的认可与鼓励。这篇论文已经发布在 Arxiv 平台,有兴趣的朋友可以前往下载

https://arxiv.org/abs/2003.12101

痛点驱动

硬件重配置带来的时间及开销压力

曾书霖:在研究中,我们对公有云和私有云两种场景进行了区分(如下图所示)。公有云主要强调用户之间的隔离,包括资源隔离和性能隔离。

私有云(如下图)更像单独为一个企业或用户搭建的服务器,这个服务器要能够支持多个用户或多个任务同时执行,换句话说,就是对硬件资源持续且最大化的性能和资源利用。这种情况下,就要根据不同任务负载情况实现资源的动态划分。因此,随着负载变化愈加频繁,每次负载变化都会导致整个硬件资源的重配置。我们在研究中针对不同场景进行分析,也是为了找到一种途径从而有效降低整体重配置时间。

另一方面,一类神经网络加速器主要是基于HLS开发,它的特点是每一次神经网络模型发生变化时,硬件加速器也会发生相应变化,这就意味着每当用户的任务或负载发生变化,它都需要重新生成一个加速器,即重新利用 Vivado生成一个新的硬件比特流,这方面的时间开销是无法接受的。

与之相比,以赛灵思 DPU 加速器为代表的基于指令集的深度学习加速器,则可以通过指令集方式支持不同神经网络模型。也就是说,当用户任务或者负载发生变化时,无需重新生成硬件比特信息,而只需要利用软件编译器去生成对应指令,但这个过程依然比较慢,且频繁的重配置甚至可能会严重影响用户的任务进度。从这一维度来讲,我们也希望把重配置时间尽可能降低。

Alveo+阿里云

FPGA 虚拟化研究的实验环境

曾书霖:这一研究的最初想法诞生于 2019 年 5 月。在一年的时间里,我们从产生想法到搭建论文框架,再到不断完善,通过团队通力合作逐渐充实论文内容。刚开始我们只考虑了云端场景,针对虚拟化和加速器也只有初步规划,对于真实云端应用的特性并没有太透彻的思考,目前的研究成果都是团队在实际研究中不断梳理总结而成的。

一直以来,我们实验室的研究都是以赛灵思 FPGA 为基础。在此次研究中,我们使用赛灵思 Alveo U200 数据中心加速器卡搭建了云端加速器的本地环境。同时,我们也用到赛灵思 Virtex UltraScale+ VU9P 实现 FPGA 虚拟化环境,这是一个阿里云 F3 的实例,我们希望除了本地有一个可比拟的环境,在云端也有一个环境去验证我们的设计。

后续计划

完善整个FPGA虚拟化系统演示

曾书霖:未来我们会继续就 FPGA 虚拟化整个课题,对研究以及论文进行系统层面的拓展,我们的目标是继续发表一篇系统领域的期刊论文。目前,整篇论文的工作还是以相对简单的DNN负载在单个 FPGA 上加速器的性能仿真为主,下一步的系统层面拓展会有一个更加复杂的软件栈,除了底层硬件加速器、软件编译器,还会有操作系统通信协议和一些虚拟化容器(container)实现宿主机和用户之间的对接。我们的后续工作包括在软件系统层融合主机端和客户端的通信框架,搭建基础的虚拟化操作系统,并针对整个软件栈从系统的角度进行针对复杂的云端 AI 负载开展一些实验性探究,完善整个 FPGA 虚拟化系统的 demo。

另外,我们还会考虑把研究扩展到大规模的、多块 FPGA 的数据中心场景,从单卡设计拓展到多卡设计。可以预见到的是,在未来研究中随着多卡的引入,我们会面临一些崭新的挑战,而我们也也需要站在更宏观的角度对更多情况进行综合考量,这些对我们团队的科研能力是非常好的锻炼。

FPGA 研究

挑战与机遇并存的新课题

曾书霖:我在赛灵思和收购之前的深鉴科技都有过实习经验,这也使我对 FPGA 和 AI、深度学习有了更深入的体验。在赛灵思实习时,我在负责 FPGA 开发的硬件组,组长给我的任务是学习使用赛灵思的 SDAccel/SDx 工具(现已整合进 Vitis),于是我得以接触到针对云端软件的开发工具,这在我后来进行这一研究以及开展实验起到了非常重要的作用,因为研究过程中的很多工作是围绕 SDx 开展的,并且数据中心里面一个很重要部署的软件就是 SDAccel。

在我看来,FPGA 在未来将是一个与 CPU、GPU 同样必不可少的芯片品类,特别在数据中心场景里将扮演重要角色。未来的数据中心将是异构计算为核心的硬件数据中心,在这种场景下,单独依靠每一个硬件都无法实现整个数据中心性能和能效的最大化,我们必须要综合考虑不同的硬件,以虚拟化思想尝试把所有硬件资源最大化利用起来。业界与学术界此前针对 CPU、GPU 的研究已经较为充分,但对于如何把 FPGA 性能与能效最大化以及如何与其他硬件相结合,以实现一个支持智能应用的异构系统,还有很大的空间可以发展,当然同时也是一个颇具挑战性的课题领域。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1628

    文章

    21725

    浏览量

    602908
  • 云计算
    +关注

    关注

    39

    文章

    7773

    浏览量

    137338

原文标题:AI 观察室 | 无需实体 FPGA 也能 AI 部署?听听清华汪玉研究团队怎么说

文章出处:【微信号:FPGA-EETrend,微信公众号:FPGA开发圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    深入KVM虚拟之构建高效、可扩展的虚拟环境

    目录 KVM虚拟 创建虚拟机 报错解决 虚拟介绍 kvm介绍 KVM部署(基于CentOS7) KVM管理界面安装 KVM web界面管
    的头像 发表于 11-26 17:22 225次阅读
    深入KVM<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>之构建高效、可扩展的<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>环境

    虚拟数据恢复—误还原Vmware虚拟机快照的数据恢复案例

    虚拟数据恢复环境: 一台虚拟机从物理机迁移到ESXI虚拟平台,迁移完成后做了一个快照。虚拟
    的头像 发表于 11-12 12:23 142次阅读

    虚拟数据恢复—XenServer虚拟机数据恢复案例

    服务器虚拟数据恢复环境: 某品牌720服务器中有一组通过同品牌、型号为H710P的RAID卡+4块STAT硬盘组建的RAID10磁盘阵列。上层部署XenServer虚拟平台。1台
    的头像 发表于 11-08 10:32 137次阅读
    <b class='flag-5'>虚拟</b><b class='flag-5'>化</b>数据恢复—XenServer<b class='flag-5'>虚拟</b>机数据恢复案例

    emc虚拟技术的应用场景

    在当今的数字化时代,企业面临着数据爆炸式增长和业务需求不断变化的挑战。为了应对这些挑战,企业需要灵活、高效且可扩展的IT基础设施。EMC虚拟技术正是在这样的背景下应运而生,它通过将物理资源抽象
    的头像 发表于 11-01 15:26 315次阅读

    虚拟数据恢复——Hyper-V虚拟机数据恢复案例

    虚拟数据恢复环境: Windows Server操作系统服务器上部署Hyper-V虚拟机环境。虚拟机的硬盘文件和配置文件存放在一台存储中,该存储上有一组由4块硬盘组建的raid5阵
    的头像 发表于 10-25 09:26 175次阅读
    <b class='flag-5'>虚拟</b><b class='flag-5'>化</b>数据恢复——Hyper-V<b class='flag-5'>虚拟</b>机数据恢复案例

    云计算中的虚拟技术应用

    云计算中的虚拟技术是一种将计算机物理实体(如服务器、存储设备、网络设备)通过软件技术划分为多个虚拟实体的技术,每个虚拟实体可以独立运行操作系统和应用程序。以下是关于云计算中
    的头像 发表于 10-24 09:22 546次阅读

    华纳云:OpenStack是虚拟管理平台吗?其工作原理是什么?

    OpenStack 就是一个虚拟管理平台吗?这样说并不准确。它们存在很多相似性,但并非完全相同。的确,OpenStack 和虚拟管理平台都位于
    的头像 发表于 09-23 14:20 292次阅读

    虚拟数据恢复—EXSI虚拟机误还原快照如何恢复数据?

    虚拟技术原理是将硬件虚拟供不同的虚拟机使用,一台物理机上可以有多台虚拟机。人为误操作或者物理
    的头像 发表于 09-09 11:56 359次阅读
    <b class='flag-5'>虚拟</b><b class='flag-5'>化</b>数据恢复—EXSI<b class='flag-5'>虚拟</b>机误还原快照如何恢复数据?

    什么是虚拟机?什么是虚拟

    在日新月异的科技世界中,虚拟技术如同一座桥梁,连接着现实与数字的鸿沟,为我们打开了全新的计算维度。虚拟机,这一概念,自其诞生以来,就以其独特的魅力和强大的功能,深深地影响了软件开发、系统测试和云计算等多个领域。即使目前你还不了
    的头像 发表于 09-04 14:55 837次阅读

    虚拟数据恢复—XenServer虚拟平台数据恢复案例

    虚拟数据恢复环境: 某品牌R720服务器,4块STAT硬盘通过H710P阵列卡组建了一组raid10磁盘阵列。服务器上部署XenServer虚拟平台,
    的头像 发表于 07-30 13:18 255次阅读
    <b class='flag-5'>虚拟</b><b class='flag-5'>化</b>数据恢复—XenServer<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>平台数据恢复案例

    探索虚拟线程:原理与实现

    虚拟线程的引入与优势 在Loom项目之前,Java虚拟机(JVM)中的线程是通过java.lang.Thread类型来实现的,这些线程被称为平台线程。 然而,平台线程的创建和维护在资源使用上存在显著
    的头像 发表于 06-24 11:35 286次阅读
    <b class='flag-5'>探索</b><b class='flag-5'>虚拟</b>线程:原理与实现

    惊艳慕尼黑上海光博会!开创行业先河的数字激光光斑首次演示

    近年来,"内卷"现象在激光行业中愈演愈烈。激光技术,这本该引领现代制造业前行的利剑,如今却似乎陷入了自我较量的泥沼。 尤其在 激光切割 领域,众多厂商在激烈的同质竞争中迷失方向,陷入了无休止的内耗
    的头像 发表于 03-22 10:53 2313次阅读
    惊艳慕尼黑上海光博会!<b class='flag-5'>开创</b>行业<b class='flag-5'>先河</b>的数字激光光斑首次演示

    存储虚拟有哪些常见类型?有什么优点?

    存储虚拟是一种将多个存储设备的物理存储资源抽象出来、将它们集中在一起并将它们呈现为单个逻辑存储单元的技术。此过程简化了存储管理,提高了资源利用率,并实现了跨各种存储设备(例如硬盘驱动器、固态驱动器
    的头像 发表于 03-07 16:47 1166次阅读

    虚拟软件栈有哪些防御措施

    虚拟软件栈是一种在物理服务器上运行多个虚拟机的技术,可以提高服务器资源的利用率和灵活性。然而,虚拟软件栈也带来了新的安全风险,因此需要采
    的头像 发表于 01-25 11:27 751次阅读

    超融合和虚拟的区别

    超融合和虚拟是当今IT领域非常热门的两个概念,它们都是为了提高数据中心的效能和灵活性,但在实现方式和功能上存在一些区别。本文将详细讨论超融合和虚拟的定义、原理、特点、优缺点以及它们
    的头像 发表于 01-15 10:36 4215次阅读