本发明专利技术提供一种平铺加速器资源调度方法及系统,属于资源调度技术领域,包括:接收DNN相关任务的任务请求、DNN工作负载和硬件参数;响应任务请求,基于硬件参数对DNN工作负载在目标平铺加速器上进行调度,调度流程分为自上而下的层间调度和层内调度;所述层间调度采用基于资源分配树表示法的调度方法,确定每一层的计算顺序和分配资源,将计算顺序和分配资源解析为相应的资源分配方案、HW
【技术实现步骤摘要】
一种平铺加速器资源调度方法及系统
[0001]本专利技术所属领域是资源调度
,具体涉及一种平铺加速器资源调度方法与系统。
技术介绍
[0002]现有技术已经通过创建了广泛的深度神经网络(DNN)来解决许多领域的现实问题,例如图像识别、对象检测和自然语言处理。随着对更高精度和更好的复杂场景适应性的追求,深度神经网络越来越深,结构也越来越复杂。
[0003]在这种趋势下,许多规模从几十平方毫米到甚至整个晶圆的大型加速器被开发出来,以加速这种日益复杂的DNN的推理周期。考虑到单个大型HW
‑
tile的利用率和能效较低,这些大型加速器主要采用平铺架构,其中每个HW
‑
tile包括一个处理元件(PE)阵列和一个全局缓冲区,并通过片上网络(NoC)互连。
[0004]然而,平铺架构本身并不能轻易保证高利用率和能效。如何有效地将海量计算和存储资源转化为实际性能仍然是一个悬而未决的挑战。解决这一挑战的关键在于调度,调度可分为层内调度和层间调度。
[0005]层内调度研究如何将单个层映射到一个或多个HW
‑
tile。它的空间已被许多表示法描述,并通过各种方法进行了探索。
[0006]层间调度研究如何在加速器上调度DNN中所有层的计算顺序和分配资源,这也显着影响加速器的能效和性能。例如,Fused
‑
layer为不同的层分配不同的计算资源,并以层流水线(LP)的方式编排层,与逐层计算的基本版本的层顺序(LS)模式相比,DRAM访问减少了95%逐层计算。而且,加速器规模越大,层间调度的影响越大。例如,七巧板提出了优化的LP和LS技术,在32
×
32
‑
tile加速器上实现了67%的节能,而在4
×4‑
tile加速器上节能不到20%。
[0007]尽管层间调度在保持平铺加速器的高利用率和能效方面发挥着越来越重要的作用,但其研究存在重大缺陷:大多数工作继续优化现有的启发式算法模式、LP和LS,但没有提出新的模式,更不用说清楚和系统地定义平铺加速器上的层间调度空间。缺乏对层间调度空间的明确定义极大地限制了优化平铺加速器的性能和能效的机会。此外,缺乏系统的定义阻碍了人们理解不同的层间调度选择如何影响不同的硬件行为以及这些行为如何进一步影响加速器的能效和性能。
[0008]随着DNN加速器规模的不断扩大,研究DNN中各层计算资源分配和各层计算顺序的层间调度对保持DNN推理加速器的高利用率和能效发挥着越来越重要的作用。然而,目前的层间调度主要是基于一些启发式模式进行的。层间调度的空间尚未明确定义,导致优化机会显着受限,并且缺乏对不同层间调度选择及其后果的理解。
技术实现思路
[0009]为了解决现有技术中存在的问题,本专利技术提供了一种平铺加速器资源调度方法及
系统。本方法可以同时实现性能提升1.78倍,能效成本降低13.2%。
[0010]为达到上述目的,本专利技术采用以下技术方案予以实现:
[0011]第一方面,本专利技术提供一种平铺加速器资源调度方法,包括:
[0012]接收DNN相关任务的任务请求、DNN工作负载和硬件参数;
[0013]响应任务请求,基于硬件参数对DNN工作负载在目标平铺加速器上进行调度,调度流程分为自上而下的层间调度和层内调度;所述层间调度采用基于资源分配树表示法的调度方法,确定每一层的计算顺序和分配资源,将计算顺序和分配资源解析为相应的资源分配方案、HW
‑
tiles之间以及HW
‑
tiles和DRAM之间的数据流;所述层内调度将每一层映射到分配的HW
‑
tile组上;
[0014]调度结果经过翻译生成加速器芯片指令。
[0015]作为本专利技术进一步改进,所述资源分配树表示法有三种类型的Nodes:Leaf、S Cut和T Cut;
[0016]每一个Leaf位于资源分配树的末端,表示单层的计算;
[0017]每一个Cut节点位于资源分配树的非末端,表示一层或几层的计算;
[0018]S Cut和T Cut具有两个层次的表示意义;从父节点来看,代表其子节点包含的所有层的处理;从子节点的角度来看,子节点的计算空间资源以及计算时间资源由父节点进行分配;其中S Cut负责计算资源的空间分配,每个S Cut的子节点分配到不同的计算资源,TCut负责计算资源的计算时间分配,其不同的子节点使用同一计算资源的不同时间段;
[0019]每一个资源分配树都代表一个层间调度方案,以层次化的方式对其进行分析,最终解析为具体的每个层的资源分配方案和HW
‑
tile之间以及HW
‑
tile与DRAM之间的数据流。
[0020]作为本专利技术进一步改进,所述每个Node拥有一个或几个层,表示一层或几层的计算顺序;
[0021]每个Node拥有一组HW
‑
tiles,称为HW
‑
tile组,用于计算Node的工作负载;HW
‑
tile组中HW
‑
tile的数量称为HW
‑
tile组大小;
[0022]每个节点都有批大小,是节点对其总批数进行拆分之后每次处理的样本数;
[0023]每个Node包含依赖信息,记录其包含的层在DNN中依赖关系。
[0024]作为本专利技术进一步改进,所述将DNN调度到目标平铺加速器上,通过优化算法探索层间调度空间,基于穷举搜索的方法探索层内调度空间;所述优化算法包括随机搜索、模拟退火或基因算法,每一次迭代需要对树进行操作变化。
[0025]作为本专利技术进一步改进,所述每一次迭代需要对树进行操作变化采用算子包括:
[0026]OP1:随机选择两个相邻的Leaves,然后交换;
[0027]OP2:随机选择一个Leaf并将其移动到另一个共享相同上一级节点或上上级节点的Cut。
[0028]作为本专利技术进一步改进,所述每一次迭代需要对树进行操作变化采用算子包括:
[0029]OP3:随机选择一个Cut,然后随机选择一组连续的子批次构成一个新的Cut;
[0030]OP4:随机选择一个非根Cut并将其删除,然后将其子节点Cut放入其上一级Cut;
[0031]作为本专利技术进一步改进,所述每一次迭代需要对树进行操作变化采用算子包括:
[0032]OP5:随机选择一个Cut并随机增加其子批次编号;
[0033]OP6:随机选择一个Cut并随机减少其子批次编号。
[0034]第二方面,本专利技术提供一种平铺加速器资源调度系统,包括:
[0035]接收模块,用于接收DNN相关任务的任务请求、DNN工作负载和硬件参数;
[0036]调度模块,用于响应任务请求,基于硬件参数对DNN工作负载在目标平铺加速器上进行调度,调度本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种平铺加速器资源调度方法,其特征在于,包括:接收DNN相关任务的任务请求、DNN工作负载和硬件参数;响应任务请求,基于硬件参数对DNN工作负载在目标平铺加速器上进行调度,调度流程分为自上而下的层间调度和层内调度;所述层间调度采用基于资源分配树表示法的调度方法,确定每一层的计算顺序和分配资源,将计算顺序和分配资源解析为相应的资源分配方案、HW
‑
tiles之间以及HW
‑
tiles和DRAM之间的数据流;所述层内调度将每一层映射到分配的HW
‑
tile组上;调度结果经过翻译生成加速器芯片指令。2.根据权利要求1所述的一种平铺加速器资源调度方法,其特征在于,所述资源分配树表示法有三种类型的Nodes:Leaf、S Cut和T Cut;每一个Leaf位于资源分配树的末端,表示单层的计算;每一个Cut节点位于资源分配树的非末端,表示一层或几层的计算;S Cut和T Cut具有两个层次的表示意义;从父节点来看,代表其子节点包含的所有层的处理;从子节点的角度来看,子节点的计算空间资源以及计算时间资源由父节点进行分配;其中,S Cut负责计算资源的空间分配,每个S Cut的子节点分配到不同的计算资源,TCut负责计算资源的计算时间分配,其不同的子节点使用同一计算资源的不同时间段;每一个资源分配树都代表一个层间调度方案,以层次化的方式对其进行分析,最终解析为具体的每个层的资源分配方案和HW
‑
tile之间以及HW
‑
tile与DRAM之间的数据流。3.根据权利要求2所述的一种平铺加速器资源调度方法,其特征在于,所述每个Node拥有一个或几个层,表示一层或几层的计算顺序;每个Node拥有一组HW
‑
tiles,为HW
‑
tile组,用于计算Node的工作负载;HW
‑
tile组中HW
‑
tile的数量为HW
‑
tile组大小;每个节点都有批大小,是节点对总批数进行拆分之后每次处理的样本数;每个Node包含依赖信息,记录包含的层在DNN中依赖关系。4.根据权利要求2所述的一种平铺加速器资源调度方法,其特征在...
【专利技术属性】
技术研发人员:魏宇辰,蔡经纬,彭森,吴作同,
申请(专利权)人:交叉信息核心技术研究院西安有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。