当前位置: 首页 > 专利查询>清华大学专利>正文

面向云端深度学习推理的FPGA虚拟化方法技术

技术编号:24167854 阅读:106 留言:0更新日期:2020-05-16 02:00
本发明专利技术公开了一种面向云端深度学习推理的FPGA虚拟化方法,该方法包括以下步骤:通过向基于指令集架构的深度神经网络加速器架构引入两级指令调度器和硬件资源池,构建基于指令集架构的深度神经网络加速器虚拟化架构;根据基于指令集架构的深度神经网络加速器虚拟化架构,将完整编译流程划分为静态编译和动态编译;在静态编译第一次部署时生成细粒度指令包,当动态编译重配置时,对细粒度指令包进行整合,快速生成需求指令文件。该方法在确保最大化硬件资源利用率的多任务算力资源共享下,实现运行时的快速动态重配置。

FPGA virtualization method for deep learning reasoning in the cloud

【技术实现步骤摘要】
面向云端深度学习推理的FPGA虚拟化方法
本专利技术涉及人工智能虚拟化
,特别涉及一种面向云端深度学习推理的FPGA虚拟化方法。
技术介绍
当前正处于人工智能快速发展的时代,深度学习在各种领域扮演着越来越重要的角色。其中,深度神经网络(DNN)的推理任务占据了云端数据中心的大部分深度学习任务负载。在数据中心中使用传统的通用处理器CPU(中央处理器)已无法满足深度学习巨大的算力需求。因此,现在通常使用专用的硬件平台,比如GPU、FPGA(现场可编程门阵列)和ASIC(特定应用集成电路),来加速深度学习算法。得益于FPGA对于可编程性、性能和功耗的良好平衡,越来越多的云端服务商,如亚马逊、阿里巴巴和百度等,都开始在数据中心中部署FPGA来提供面向DNN推理任务的解决方案。由于云端的DNN应用具有多任务和动态负载的特点,为了提供灵活可重配置的算力资源来匹配云端的应用特性以最大化整体性能和最小化服务成本,一种常用的方法是实现数据中心算力资源的虚拟化。目前面向神经网络应用的虚拟化方案主要有三种:一是多任务共享一块FPGA,通过时分复用的方式在不同任务之间切换。大多数基于指令集架构(ISA)的DNN加速器架构都可以通过这种方式实现计算资源的共享。基于ISA的DNN加速器通过编译器生成不同任务的指令,在运行时切换指令以在同一个硬件架构上实现多任务的时分复用;二是多任务共享一块FPGA,通过空分复用的方式实现多任务的并行。目前基于模板的DNN加速器可以支持空分复用,通过部分重配置的方式将不同的任务加载到FPGA的不同区域。三是共享多块FPGA,即预先将不同的FPGA加载不同DNN的比特流,通过负载平衡的方式将不同DNN的任务请求发送到不同的FPGA。当前工业界最先进的解决方案即是采用了这种方式。这种方式几乎不需要对FPGA进行重配置,一旦某个FPGA的DNN任务确定了,一段时间内便不会再切换,而是通过采用了负载平衡算法的调度器实现DNN任务在多块FPGA的运行时调度。采用这种方案的另一个初衷在于一些神经网络的权重,比如循环神经网络(RNN),无法完整地存储在一块FPGA上,因而需要多块FPGA来存储。但上述提到的面向神经网络应用的虚拟化方法都存在一些问题。第一种情况中基于ISA的DNN加速器的时分复用方式,在大多数情况下用单块FPGA去服务单个神经网络推理任务会导致一定程度的性能过剩和资源浪费,使得云端服务商的维护成本提高;第二种情况中基于模板的DNN加速器,对于每一个新任务的编译流程都涉及到硬件架构的重新生成。而硬件比特流的综合实现流程的时间开销往往在数小时以上,这对于云端神经网络应用在毫秒量级的响应时间是无法接受的;第三种共享多块FPGA的方式,需要提前对云端神经网络的任务负载有个良好的先验才能确保所有FPGA获得一个良好的利用率。此外,随着URAM和3DRAM技术的提出,FPGA的片上存储呈现着逐年增大的趋势,大多数神经网络应用如卷积神经网络(CNN)等,都可以用一块FPGA存下。因此,第三种方案无法确保在任何情况下都能获得最大化的资源利用率。基于此,亟待一种方法解决面向深度学习推理应用的FPGA虚拟化方案中的资源利用率低和重配置开销高的问题。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的目的在于提出一种面向云端深度学习推理的FPGA虚拟化方法,该方法在确保最大化硬件资源利用率的多任务算力资源共享下,实现运行时的快速动态重配置。为达到上述目的,本专利技术实施例提出了面向云端深度学习推理的FPGA虚拟化方法,包括以下步骤:通过向基于指令集架构的深度神经网络加速器架构引入两级指令调度器和硬件资源池,构建基于指令集架构的深度神经网络加速器虚拟化架构;根据所述基于指令集架构的深度神经网络加速器虚拟化架构,将完整编译流程划分为静态编译和动态编译;在所述静态编译第一次部署时生成细粒度指令包,当所述动态编译重配置时,对所述细粒度指令包进行整合,快速生成需求指令文件。本专利技术实施例的面向云端深度学习推理的FPGA虚拟化方法,通过软硬件协同设计的方法,在硬件上对基于ISA的加速器架构进行虚拟化拓展,在软件上对编译流程进行再设计,从而在确保最大化硬件资源利用率的多任务算力资源共享下,实现运行时的快速动态重配置。另外,根据本专利技术上述实施例的面向云端深度学习推理的FPGA虚拟化方法还可以具有以下附加的技术特征:进一步地,在本专利技术的一个实施例中,所述两级指令调度器包括第一级指令调度器和第二指令调度器。进一步地,在本专利技术的一个实施例中,所述第一级指令调度器用于负责任务级的指令缓存与调度、上下文切换的任务级信息收发,并控制管理所述第二级指令调度器。进一步地,在本专利技术的一个实施例中,所述第二级指令调度器用于负责所述硬件资源池中的模块级调度、上下文切换的模块级信息收发和最基本可共享单元的数据同步广播管理。进一步地,在本专利技术的一个实施例中,所述硬件资源池用于两种不同粒度的硬件资源共享,其中,第一种为基于多核架构的粗粒度资源共享,第二种为基于多处理单元的细粒度资源共享。进一步地,在本专利技术的一个实施例中,在所述静态编译第一次部署时,根据最基本可共享单元的硬件架构和并行度参数来生成所述细粒度指令包。进一步地,在本专利技术的一个实施例中,在所述动态编译重配置时,根据动态分配的硬件资源和所述静态编译阶段生成的细粒度指令包,对所述细粒度指令包进行硬件资源绑定、整合和快速性能评估优化,低开销生成部署可用的指令文件。进一步地,在本专利技术的一个实施例中,所述细粒度指令包中每个指令包均根据最基本可共享单元的并行度生成。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为根据本专利技术一个实施例的面向云端深度学习推理的FPGA虚拟化方法流程图;图2为根据本专利技术基于ISA的DNN加速器虚拟化方法中的硬件架构及软件编译,(a)为硬件结构,(b)为软件编译;图3为根据本专利技术基于ISA的DNN加速器虚拟化的硬件架构结构示意图,其中,(a)为原有的面向单任务、静态负载优化的硬件架构,(b)为在原来基础上引入了两级指令调度器和硬件资源池;图4为根据本专利技术基于ISA的DNN加速器虚拟化的软件编译实现流程图,其中,(a)为原有的编译流程,输入为DNN模型,编译器根据DNN模型架构和网络参数生成可用于硬件部署的指令文件,(b)为提出的动态-静态编译流程,两个阶段的编译通过细粒度指令包实现交互,最终实现快速动态编译以满足低开销的运行时动态重配置;图5为根据本专利技术一个具体实施例中静态方案与虚拟化方案在不同任务到达率下的延时性能对比折线图;图6为根据本专利技术一个具体实施例中静态方案和虚拟化方案在不同任务数下的吞吐量对比折线图。具体实施方本文档来自技高网
...

【技术保护点】
1.一种面向云端深度学习推理的FPGA虚拟化方法,其特征在于,包括以下步骤:/n向基于指令集架构的深度神经网络加速器架构引入两级指令调度器和硬件资源池,以构建基于指令集架构的深度神经网络加速器虚拟化架构;/n根据所述基于指令集架构的深度神经网络加速器虚拟化架构,将完整编译流程划分为静态编译和动态编译;以及/n在所述静态编译第一次部署时生成细粒度指令包,当所述动态编译重配置时,对所述细粒度指令包进行整合,快速生成需求指令文件。/n

【技术特征摘要】
1.一种面向云端深度学习推理的FPGA虚拟化方法,其特征在于,包括以下步骤:
向基于指令集架构的深度神经网络加速器架构引入两级指令调度器和硬件资源池,以构建基于指令集架构的深度神经网络加速器虚拟化架构;
根据所述基于指令集架构的深度神经网络加速器虚拟化架构,将完整编译流程划分为静态编译和动态编译;以及
在所述静态编译第一次部署时生成细粒度指令包,当所述动态编译重配置时,对所述细粒度指令包进行整合,快速生成需求指令文件。


2.根据权利要求1所述的面向云端深度学习推理的FPGA虚拟化方法,其特征在于,所述两级指令调度器包括第一级指令调度器和第二指令调度器。


3.根据权利要求2所述的面向云端深度学习推理的FPGA虚拟化方法,其特征在于,所述第一级指令调度器用于负责任务级的指令缓存与调度、上下文切换的任务级信息收发,并控制管理所述第二级指令调度器。


4.根据权利要求2所述的面向云端深度学习推理的FPGA虚拟化方法,其特征在于,所述第二级指令调度器用于负责所述硬件资...

【专利技术属性】
技术研发人员:曾书霖戴国浩汪玉杨华中
申请(专利权)人:清华大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1