赛灵思人工智能业务高级总监开创先河:探索FPGA虚拟化之路(组图)

创思维 2021-11-24

云计算已经成为一种新的计算范式。对于云计算来说,虚拟化是必不可少的技术。通过虚拟化硬件资源,实现用户隔离,系统灵活扩展,提高安全性,充分利用硬件资源。

自 2017 年以来,由于 FPGA 的高可编程性、低延迟和高能效,越来越多的云服务提供商,如亚马逊、阿里云和微软 Azure,开始在云中提供 Xilinx FPGA。例子已经在云计算的发展中迈出了重要的一步。但是,目前FPGA云服务仍然是物理卡的形式,面向单一的静态任务,云FPGA虚拟化还没有很好的解决方案。近日,在FPGA FCCM2020领域的顶级学术会议上,清华大学王宇教授的研究团队在该课题上取得了重要突破。—— 姚松,赛灵思人工智能业务高级总监

先锋:探索FPGA虚拟化之路

曾树林:我们团队的研究重点一直是基于移动神经网络加速器。在此之上虚拟化与云计算,我们考虑如何将其扩展到云数据中心进行扩展。为了适应云的虚拟化特性,从硬件架构到软件设计都必须实现对虚拟化的支持。2019年我们发现,虽然已经有很多解决方案支持CPU和GPU上的AI应用虚拟化,但FPGA领域还缺乏相对成熟的解决方案。因此,我们决定在FPGA上同时进行深度学习和虚拟化的研究,努力实现AI应用在云数据中心的高效部署。简单来说就是研究如何让多用户的AI应用高效运行,

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

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

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

网页链接

痛苦驱动:硬件重新配置带来的时间和开销压力

曾树林:在我们的研究中,我们区分了公有云和私有云场景(如下图)。公有云主要强调用户之间的隔离,包括资源隔离和性能隔离。

私有云(如下图所示)更像是为企业或用户单独构建的服务器。该服务器必须能够同时支持多个用户或多个任务。换句话说,就是硬件资源的持续和最大化的性能和资源利用率。. 在这种情况下,需要根据不同的任务负载情况实现资源的动态划分。因此,随着负载变化越来越频繁,每次负载变化都会导致整个硬件资源的重新配置。在我们的研究中,我们分析了不同的场景,以找到一种有效减少整体重新配置时间的方法。

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

相比之下,以赛灵思 DPU 加速器为代表的基于指令集的深度学习加速器可以通过指令集支持不同的神经网络模型。也就是说,当用户任务或负载发生变化时,不需要重新生成硬件位信息,只需要使用软件编译器生成相应的指令即可,但是这个过程还是比较慢的,频繁的重新配置可能甚至严重影响用户任务的进度。从这个维度,我们也希望尽可能减少重新配置的时间。

Alveo+阿里巴巴云:FPGA虚拟化研究的实验环境

曾树林:这项研究的最初想法诞生于2019年5月,一年来,通过团队的合作,我们逐渐丰富了论文的内容,从产生想法到搭建论文框架,再到持续改进。一开始我们只考虑了云场景,只有虚拟化和加速器的初步规划。我们没有深入思考真正的云应用的特点。目前的研究成果是团队在实际研究中总结出来的。

我们实验室的研究一直基于 Xilinx FPGA。在本研究中,我们使用 Xilinx Alveo U200 数据中心加速器卡为云加速器构建本地环境。同时,我们还使用Xilinx Virtex UltraScale+ VU9P 来实现FPGA 虚拟化环境。这是阿里云F3的一个例子。我们希望除了在本地有一个类似的环境,我们在云端也有一个环境来验证我们的设计。

后续计划:完成整个FPGA虚拟化系统的演示

曾树林:未来我们会继续扩展FPGA虚拟化整个课题的研究和论文。我们的目标是继续在系统领域发表期刊论文。目前,整个论文的工作主要是在单个FPGA加速器上对一个比较简单的DNN负载进行性能仿真。下一步系统级扩展会有更复杂的软件栈,除了底层的硬件加速器、软件编译器,还有操作系统、通信协议,以及一些虚拟化的容器(containers)来实现之间的连接主机和用户。我们的后续工作包括在软件系统层集成主机和客户端的通信框架,构建基本的虚拟化操作系统,

此外,我们还将考虑将研究扩展到大规模、多块FPGA数据中心场景,从单卡设计到多卡设计。可以预见,随着多卡在未来研究中的引入,我们将面临一些全新的挑战,也需要从更广阔的角度综合考虑更多的情况。这些都会影响我们团队的科学研究。能力是一种很好的锻炼。

FPGA研究:挑战与机遇并存的新课题

曾树林:在被收购之前,我在赛灵思和神剑科技有过实习经历,这也让我对FPGA、AI、深度学习有了更深的体会。在 Xilinx 实习期间,我在负责 FPGA 开发的硬件组。组长给了我学习使用Xilinx的SDAccel/SDx工具(现已集成到Vitis)的任务,让我接触到了云软件开发工具,对我后来的研究和实验起到了非常重要的作用,因为在研究过程中很多工作都是围绕着SDx进行的,而数据中心部署的一个非常重要的软件就是SDAccel。

在我看来,FPGA将成为未来CPU和GPU不可或缺的芯片类别,尤其在数据中心场景中将发挥重要作用。未来的数据中心将以异构计算为核心的硬件数据中心。在这种情况下,仅仅依靠每一块硬件是无法实现整个数据中心的性能和能效最大化的。我们必须综合考虑不同的硬件来进行虚拟化尝试,以最大限度地利用所有硬件资源。工业界和学术界此前对CPU和GPU进行了较多的研究,但如何最大限度地发挥FPGA的性能和能效,以及如何与其他硬件结合,实现支持智能应用的异构系统,还有很大的空间。可以开发,

关于王宇的研究团队

曾树林2018年毕业于清华大学电子工程系,目前在清华大学电子工程系攻读博士学位。2017年加入清华大学王宇教授课题组。研究方向包括深度学习加速器、软硬件协同加速、异构系统虚拟化设计。

清华大学王宇老师,电子工程系教授,博士生导师,国家杰出青年科学基金获得者虚拟化与云计算,IEEE/ACM高级会员,深鉴科技联合创始人。长期带领团队从事节能电路和系统的研究,包括针对应用领域的定制加速器、类脑计算和内存计算的研究。

关于姚松

姚松现任赛灵思人工智能业务高级总监,负责公司人工智能业务在全球领域的拓展和生态建设。在加入 Xilinx 之前,姚松是神剑科技(于 2018 年 7 月并入 Xilinx)的联合创始人兼 CEO。他带领团队自主研发了高效的深度学习平台,致力于为该中心等行业提供集算法、软件、芯片于一体的人工智能解决方案。

清华大学电子工程系主任王宇教授与紫光国谈合作

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权本站发表,未经许可,不得转载。

分享:

扫一扫在手机阅读、分享本文