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

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

3天内不再提示

清华大学提出了针对深度学习加速的FPGA虚拟化方案

YCqV_FPGA_EETre 来源:FPGA开发圈 2020-04-30 16:19 次阅读

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

从2018年起,因为FPGA的高可编程性、低延迟、高能效等特点,越来越多的云服务提供商,如Amazon、阿里云、微软Azure,都开始在云端提供了Xilinx FPGA实例,迈入了云计算发展的重要一步。但到目前为止,FPGA云服务都还是以物理卡的形式、面向于单一的静态任务,还没有很好的针对于云端FPGA虚拟化的解决方案。

为了解决这一问题,清华大学汪玉教授研究小组提出了针对深度学习加速的FPGA虚拟化方案,通过多核硬件资源池、基于分块 (tilling) 的指令封装、两级静态与动态编译的方式,来实现任务间的分离,同时保证快速的在线重编程;深度学习加速器的基础设计则基于汪玉教授小组2017年的Angel-Eye工作。相关论文也将在5月初举办的FPGA领域顶级会议FCCM2020进行在线报告。

如果想亲手测试的小伙伴,也可以根据github中的说明,连接服务器进行体验:

https://github.com/annoysss123/FPGA-Virt-Exp-on-Aliyun-f3

总体介绍

如图1 (a) 所示,云端的FPGA一般为VU9P等资源比较多的FPGA芯片,可以同时支持多路的计算,因而是可以虚拟化的。公有云的虚拟化一般采用物理资源隔离,或者性能隔离的方式给不同用户分配计算资源,前者给不同用户分配完全不同的计算资源,后者使用动态重配置等方式使得多用户与多任务的情况下总体性能最大化。本项研究中,作为对照的基本设计,是在FPGA上部署一个大核,以时分复用 (TDM) 的方式让多个用户使用;而虚拟化设计则是选择空分复用 (SDM) 的方式来共享同一块FPGA的计算资源。

图1:基于指令集的虚拟化方法:(a) 针对公有云的硬件架构;(b) 针对私有云的编译器设计

而如图1 (b) 所示,在私有云的情况下,我们希望使得系统总的性能最优。如果FPGA允许多个用户使用,在新的用户申请资源后,系统需要给新用户分配硬件资源——如果需要重新烧写FPGA,或者重新编译生成指令,则切换的时间成本很高。为了让云端的虚拟化FPGA,可以更加灵活快速的支持动态的深度学习推理应用,本项虚拟化设计的编译器上分为了静态与动态的两个阶段:首先在离线部署阶段,先生成一些列指令的打包 (instruction frame package, IFP) ; 在运行时,则根据不同用户硬件资源分配的需求,给不同的核分配IFP,来实现快速的在线重配置。在这种情况下,在线编译器只需要处理较少的运行时信息,可以将重配置的时间降低到1ms左右。

图2. 基于FPGA的虚拟化深度学习加速器硬件架构

硬件与编译器设计

为了实现虚拟化方案,如图2所示,在硬件方面也需要和传统的深度学习加速器有很大的不同。为了能够实现FPGA的空分复用,该设计采用了多核资源池的设计,每个用户会被分配并且独占一定数量的小计算核。传统的指令分发模块 (IDM) 只是用来实现单核的指令分发与依赖性管理,为了能支持虚拟化,需要将IDM分为两级:

第一级IDM包括Instr Mem, Instr Decoder,Content-Switch Controller, 以及Multi-Core Sync. Controller四个模块。Instr Mem从DDR中取指并且缓存在片上,Instr decoder将指令分发到各个第二级IDM。Content-Switch Controller可以记录当前神经网络运行到哪一层,可以在任务切换时让计算核直接在已有的中间结果上运算。而Multi-Core Sync. Controller则是产生同步信号,让同一个用户分配的多个核的计算同步。

第二级IDM则负责每个核内的计算调度,Context-SwitchController模块根据上下文信息控制计算的重新开始,System Sync. Controller则在多核的计算同一个神经网络时,获取全局同步信号,用来控制该计算核与其他核的计算是同步的。

图3. 基于FPGA的虚拟化深度学习加速任务编译流程,左为静态编译,右为动态编译

为了让同一个神经网络可以动态分配到不同计算核上计算,需要将总的计算任务切成块(Tilling),这也是神经网络加速器设计中的一个重要思路。我们可以从多个不同维度去对神经网络进行切块,比如feature map的height维度,但是这会让指令之间的依赖性更加复杂,因此,本项研究中选择了feature map的width和outputchannel两个维度去进行切块。

如图3所示,左侧就展示了,我们对于一个神经网络的第i层,在height和outputchannel两个维度进行切块,每一块的一系列指令封装成一个IFP;经过一个简单的latency simulator,可以得到每一块的指令总执行时间T_1到T_N (或T_M) 。Allocator模块则会根据不同切块的计算延时,将计算任务均匀地分配到当前用户所有的多个计算核上,实现负载均衡,从而使得总体延迟最短。

实验结果

为了衡量本虚拟化方案的效果,研究小组分别使用了Xilinx Alveo U200板卡、Xilinx VU9P FPGA (阿里云上实例)、以及nVidia TeslaV100 GPU运行Inception v3, VGG16, MobileNet, ResNet50等四种不同的神经网络作为测试。硬件资源使用情况如Table 1所示。

首先,我们需要衡量虚拟化方案带来的额外编译与任务切换的成本。如Table2所示,可以看到,静态编译大约耗费14.7-46.8秒,而运行时的动态编译大约耗时0.4-1.5ms。再加上下发指令文件到计算核并开始计算的时间,总体的动态重构成本在0.45-1.70ms,相对于静态编译可以忽略不计,实时的切换成本很低。

一个好的虚拟化方案,应该让用户获得的性能和计算资源的多少成线性。一方面,我们希望不同用户在分配到了同样的计算资源,可以获得同样的计算性能。另一方面,我们希望同样的用户,在获得更多的计算资源时,获得的性能能够随着计算资源数量线性增长。

图4.FPGA平台与GPU平台在不同神经网络下性能隔离与理想情况的偏离

假设有4个用户,每个用户在获得25%,50%, 75%, 或者100%的计算资源情况下,我们希望性能与获得资源的是成比例的。图4展示了不同计算资源情况下,每个用户获得的计算性能相对于线性关系的偏离,如对于ResNet50,在分配50%计算资源的情况下,4个用户在采用GPU虚拟化方案实际性能有10.3%的差异,而FPGA方案则只有0.1%的性能差异。可以看到,FPGA虚拟化方案的性能隔离明显更好,同样计算资源可以获得一致的计算性能。

图5. 在不同tilling策略下,计算性能随着并行度的增长情况

由于FPGA虚拟化方案是由多个小核实现的,我们也会关心性能是否随着分配的计算核的数量可以线性增长。图5展示了使用FPGA虚拟化方案,在不同神经网络、在不同tilling策略下,随着计算核数量增加的计算性能提升情况。红线表示,如果直接使用一个大核,可以取得的性能,而“Multi-core-opt”表示从width和output channel两个维度根据延迟进行优化选择的策略。对于Inception v3和VGG16网络,多核的性能损失相对于单个大核只有 0.95%和3.93%;而对于MobileNet,多核性能则与单个大核性能有了31.64%的损失,主要原因是对于MobileNet,存储带宽影响更大,多核还是增加了带宽需求。我们也可以发现在如VGG16这样可并行程度较高的神经网络上,该方案取得了良好的线性度。而对于Inceptionv3以及MobileNet这样瓶颈主要在存储带宽的情况,哪怕是单个大核的情况,相对于纯线性增加,性能还是会有一定的损失,原因也是存储带宽的限制。

图6. 不同方案在多任务情况下的总吞吐量

最后,研究也测试了多用户、多任务的情况,性能以整个芯片总的throughput来衡量。如图6所示,从浅到深的柱状图分别代表虚拟化方案、计算核为单独任务优化的虚拟化方案、每个任务单独一个计算核、整芯片部署一个大核四种情况,在同时支持不同数量任务下的总性能。FPGA上共部署了16个计算核、因而可以支持最多16个任务同时运行。可以看到,在任务不多的时候 (1,2,4个) ,每个任务单独一个计算核没办法充分利用总的计算资源,因而总的性能较弱,而虚拟化方案可以实现好得多的性能,在任务数多起来以后,单个大核因为同时只能运行一个任务,总的性能得不到提升。而两种虚拟化方案,随着总任务数的提升,性能在稳步提升,在同时运行16个任务时,性能与每个core支持一个任务相同,都达到芯片的最大吞吐。

可以看到,该项研究提出的虚拟化方案,在性能隔离、性能scalability、多任务扩展等情况都有不错的表现,任务切换成本只有大约1ms的情况,单任务的性能损失在1%-4%左右,多任务的情况相对于静态的单核方案与静态的多核方案,分别可以实现1.07-1.69倍与1.88-3.12倍的性能提升。该篇论文也已经刊登在在arxiv平台:https://arxiv.org/abs/2003.12101,欢迎感兴趣的读者点击“查看原文”下载

在未来,Xilinx技术社区也将带来更多最新的FPGA领域的研究进展。

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

    关注

    1601

    文章

    21296

    浏览量

    593081
  • 封装
    +关注

    关注

    123

    文章

    7262

    浏览量

    141075
  • 深度学习
    +关注

    关注

    73

    文章

    5232

    浏览量

    119889

原文标题:抢先目睹 | 清华大学汪玉团队FCCM20最新研究解析

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

收藏 人收藏

    评论

    相关推荐

    清华大学研发成功大规模干涉-衍射异构集成芯片——太极

    4月12日公布,清华大学研发出太极芯片,实现了每瓦160TOPS的高性能通用智能计算,这是该校电子工程系与自动化系共同攻克的难题。
    的头像 发表于 04-12 15:50 142次阅读

    清华大学突破性成果!全球首个无串扰量子网络节点诞生

    清华大学交叉信息研究院的段路明教授课题组长期以来进行了创新性的研究,并提出使用同种离子的双类型量子比特来实现量子网络节点的方案
    的头像 发表于 01-24 16:07 539次阅读

    清华大学研究小组开发出了创新性的超分子忆阻器纳米RRAM

    其中,电阻式随机存取存储器(RRAM)依靠改变电阻水平来存储数据。最近发表在《Angewandte Chemie》杂志上的一项研究详细介绍了清华大学李原领导的研究小组的工作,他们开创了一种制造超分子忆阻器的方法,而忆阻器是构建纳米随机存取存储器的关键部件之一。
    的头像 发表于 12-06 16:05 384次阅读
    <b class='flag-5'>清华大学</b>研究小组开发<b class='flag-5'>出了</b>创新性的超分子忆阻器纳米RRAM

    清华大学开发出超高速光电计算芯片,性能是商用芯片的3000倍!

    针对这一难题,清华大学自动化系戴琼海院士、吴嘉敏助理教授与电子工程系方璐副教授、乔飞副研究员联合攻关,提出了一种“挣脱”摩尔定律的全新计算架构:光电模拟芯片,算力达到目前高性能商用芯片的3000余倍。
    的头像 发表于 10-31 18:00 953次阅读
    <b class='flag-5'>清华大学</b>开发出超高速光电计算芯片,性能是商用芯片的3000倍!

    清华大学研发光电融合芯片,算力超商用芯片三千余倍

    清华大学官方消息,在计算能力方面,清华大学攻关团队创造性地提出的计算框架光电深度融合,从最本质的物理原理出发,电磁波传播的空间为基础的光计算和基尔霍夫定律为基础的纯结合了模拟电子计算
    的头像 发表于 10-31 11:18 593次阅读

    清华大学团队在超高性能计算芯片领域取得新突破

    清华大学团队在超高性能计算芯片领域取得新突破,相关研究发表在Nature上。
    的头像 发表于 10-29 09:20 617次阅读
    <b class='flag-5'>清华大学</b>团队在超高性能计算芯片领域取得新突破

    我国芯片突破!清华大学全球首枚!

    10月10日消息,据清华大学公众号,近日,清华大学集成电路学院教授吴华强、副教授高滨基于存算一体计算范式,研制出全球首颗全系统集成的、支持高效片上学习(机器学习能在硬件端直接完成)的忆
    的头像 发表于 10-14 08:11 349次阅读
    我国芯片突破!<b class='flag-5'>清华大学</b>全球首枚!

    存算一体芯片新突破!清华大学研制出首颗存算一体芯片

    这几天清华大学又火出圈了。但这次并不是因为招生抢人和饭堂,而是清华大学的芯片研发团队研制出全球首颗全系统集成的存算一体芯片。这是我国、乃至全世界对半导体行业的又一重大突破。 这个芯片由清华大学
    的头像 发表于 10-11 14:39 674次阅读

    清华大学重磅消息:全球首颗!我国芯片领域取得重大突破

    想象一下,一枚芯片上集成了记忆和计算的能力,在保护用户隐私同时,还具备了类似人脑的自主学习,能耗仅为先进工艺下专用集成电路系统的1/35,听起来是不是很神奇? 据清华大学公众号10月9日消息,近期
    的头像 发表于 10-11 08:39 450次阅读
    <b class='flag-5'>清华大学</b>重磅消息:全球首颗!我国芯片领域取得重大突破

    2023年开放原子校源行(清华大学站)成功举行

    清华大学举办了以“聚缘于校,开源共行”为主题的2023年开放原子校源行活动。该活动由开放原子开源基金会和清华大学共同主办,得到工信部的大力支持。活动吸引了政府部门、行业协会、全国高校、科技企业
    的头像 发表于 08-01 16:10 289次阅读
    2023年开放原子校源行(<b class='flag-5'>清华大学</b>站)成功举行

    直播预告|开放原子校源行(清华大学站)

    校源行(清华大学站)活动将在清华大学蒙民伟音乐厅举办。本次活动拟通过邀请政府领导、知名高校嘉宾、头部科技企业、权威主流媒体代表共聚校园共话开源,集中展示“开放原子校源行”公益项目进展及成果,在高校学子中推广优秀开源项目
    的头像 发表于 06-26 21:55 318次阅读
    直播预告|开放原子校源行(<b class='flag-5'>清华大学</b>站)

    基于FPGA深度学习CNN加速器设计方案

    因为CNN的特有计算模式,通用处理器对于CNN实现效率并不高,不能满足性能要求。 因此,近来已经提出了基于FPGA,GPU甚至ASIC设计的各种加速器来提高CNN设计的性能。
    发表于 06-14 16:03 1596次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>深度</b><b class='flag-5'>学习</b>CNN<b class='flag-5'>加速</b>器设计<b class='flag-5'>方案</b>

    国仪量子携手清华大学!《如何精准测孔?》系列讲座开讲

    5月31日,清华大学分析中心磁共振实验室举行的《如何精准测孔?》系列讲座正式开讲,国仪精测总经理夏攀分享了《材料孔径精确测定要点及测试实例分析》报告,线上线下近60余位相关领域的研究人员参加并进
    的头像 发表于 06-09 10:28 390次阅读
    国仪量子携手<b class='flag-5'>清华大学</b>!《如何精准测孔?》系列讲座开讲

    清华大学在超快激光微纳制造领域获得新进展

    近日,清华大学机械系在超快激光微纳制造领域获得新进展,提出了基于超快激光等离激元分子调节实现自下而上的微纳功能器件加工制造策略,并揭示了激光诱导等离激元与材料的非线性作用机理,利用超快激光激发纳米腔等离激元效应
    的头像 发表于 05-31 14:38 572次阅读
    <b class='flag-5'>清华大学</b>在超快激光微纳制造领域获得新进展

    纵目科技与清华大学共同成立智能辅助驾驶系统联合研究中心

    今日,纵目科技宣布与国内顶尖学府——清华大学共同成立智能辅助驾驶系统联合研究中心(以下简称“联合研究中心”),并在清华园内举办了隆重的揭牌仪式。清华大学教授、副校长曾嵘、中国工程院院士、清华大
    的头像 发表于 05-31 09:52 319次阅读
    纵目科技与<b class='flag-5'>清华大学</b>共同成立智能辅助驾驶系统联合研究中心