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
    +关注

    关注

    1628

    文章

    21722

    浏览量

    602889
  • 封装
    +关注

    关注

    126

    文章

    7863

    浏览量

    142875
  • 深度学习
    +关注

    关注

    73

    文章

    5497

    浏览量

    121094

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

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

收藏 人收藏

    评论

    相关推荐

    清华大学创新领军工程博士团队调研芯和半导体

    近日,清华大学2024级创新领军工程博士团队到今年国家科技进步一等奖获得企业——芯和半导体上海总部参观调研。
    的头像 发表于 12-04 17:15 383次阅读

    博世与清华大学续签人工智能研究合作协议

    近日,博世与清华大学宣布,双方续签人工智能领域的研究合作协议,为期五年。在此期间,博世将投入5000万元人民币。基于2020年成立的清华大学—博世机器学习联合研究中心(以下简称“联合研究中心”),博世和
    的头像 发表于 11-20 11:37 309次阅读

    京微齐力受邀参加2024年清华大学工程博士论坛

    此前,2024年清华大学国家卓越工程师学院工程博士论坛在北京亦庄(北京经济技术开发区)举办。本届论坛以“清亦融创、新质引领”为主题,来自集成电路、生物医药、人工智能等战略性新兴领域500余位清华大学创新领军工程博士生参加。
    的头像 发表于 11-06 10:17 365次阅读

    英诺达与清华大学携手,共促国产EDA进步

    10月30日,英诺达官方微信发布消息称,英诺达与清华大学近期展开合作,共同深化产学研融合。此次合作聚焦于集成电路低功耗设计领域,英诺达团队走进清华大学集成电路学院,为师生们带来了专题授课及深入交流。
    的头像 发表于 10-31 14:15 474次阅读

    清华新力量,沪上芯征程!清华大学上海校友会半导体专委会2024思瑞浦迎新日

    聚焦高性能模拟芯片2024年10月,清华大学上海校友会半导体专业委员会联合思瑞浦共同举办2024年来沪清华校友迎新活动。金秋时节,新一批清华人离开清华园来到上海,希望借此活动助力他们更
    的头像 发表于 10-31 08:09 276次阅读
    <b class='flag-5'>清华</b>新力量,沪上芯征程!<b class='flag-5'>清华大学</b>上海校友会半导体专委会2024思瑞浦迎新日

    FPGA加速深度学习模型的案例

    FPGA(现场可编程门阵列)加速深度学习模型是当前硬件加速领域的一个热门研究方向。以下是一些FPGA
    的头像 发表于 10-25 09:22 210次阅读

    FPGA深度学习能走多远?

    支持不同的数据精度、量化和激活函数等。这种灵活性使其能够适应各种深度学习任务,为不同的应用场景提供定制的解决方案。 • 低功耗:FPGA
    发表于 09-27 20:53

    热烈欢迎清华大学电子工程系学子来武汉六博光电交流实践!

    近日,武汉六博光电技术有限责任公司接到清华大学函件,正式成为清华大学电子工程系武汉实践基地之一。2024年8月1日上午,清华大学电子工程系实践团队一行共计13名学子前往武汉六博光电有限责任公司交流
    的头像 发表于 08-02 08:37 497次阅读
    热烈欢迎<b class='flag-5'>清华大学</b>电子工程系学子来武汉六博光电交流实践!

    易华录无锡数据湖与清华大学苏州汽车研究院(吴江)合作挖掘智能驾驶数据新价值

    智慧交通专家顾问王锐锋出席签约仪式,数字工业中心副主任陈翠翠和无锡数据湖总经理张琦代表双方签署战略合作协议。 清华大学苏州汽车研究院 清华大学苏州汽车研究院成立于2011年,是清华大学第一所面向特定行业的专业
    的头像 发表于 06-18 15:00 908次阅读

    清华大学研发新型仿生三维电子皮肤系统

    在科技日新月异的今天,清华大学再次引领了科研的潮流。6月5日,从清华大学传来喜讯,该校航天航空学院与柔性电子技术实验室的张一慧教授团队,成功研制出了一款具有仿生三维架构的新型电子皮肤系统。这一突破性的科研成果不仅代表了电子皮肤领
    的头像 发表于 06-06 16:37 386次阅读

    清华大学创新领军工程博士团访问摩尔线程

    5月19日,“清华大学创新领军工程博士代表团走进摩尔线程”活动顺利举办。近五十位来自集成电路、能源、航天、通信等重要领域的清华大学工程博士参加了本次活动。
    的头像 发表于 05-20 15:28 428次阅读

    清华大学创新领军工程博士代表团到访摩尔线程,深化产学合作

    5月19日,“清华大学创新领军工程博士代表团走进摩尔线程”活动成功举行。此次活动聚集了五十多位来自集成电路、能源、航天、通信等重要行业的清华大学创新领军工程博士。
    的头像 发表于 05-20 09:21 525次阅读
    <b class='flag-5'>清华大学</b>创新领军工程博士代表团到访摩尔线程,深化产学合作

    直线电机生产厂家谈清华大学获芯片领域重要突破

    设备制造商、医学设备制造商、科研机构以及各大高校。 像大家熟知的清华大学、北京航空航天大学、西安交通大学、哈尔滨工业大学、浙江大学、南京
    的头像 发表于 04-24 08:18 266次阅读
    直线电机生产厂家谈<b class='flag-5'>清华大学</b>获芯片领域重要突破

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

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

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

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