一种面向深度神经网络的芯片布图规划方法技术

技术编号:26971259 阅读:23 留言:0更新日期:2021-01-06 00:01
本发明专利技术公开了一种面向深度神经网络的芯片布图规划方法,首先,估计神经网络每个核的面积;其次,根据实际数据和核库,计算参数h’、w’、c’和k’;并对其进行优化,得到神经网络中每一层核对应的符合预设条件的较好的矩形模块形状;然后,采用核贪婪排序算法和核适配增长算法,对矩形模块进行布局,迭代地增加核对应的矩形模块,使得下一个将被布局的模块被放置到使布图规划目标函数最优的地方,直到所有核被分配完,从而获得最终布局方案。本发明专利技术能在有限的资源下,有效提高现有深度神经网络算力。

【技术实现步骤摘要】
一种面向深度神经网络的芯片布图规划方法
本专利技术属于人工智能领域,具体涉及一种面向深度神经网络的芯片布图规划方法。
技术介绍
深度神经网络的实现依赖于大量的计算资源和存储资源,这对神经网络实现带来了诸多挑战。CPU有限的计算单元和串行的执行方式不能提供足够的计算能力,GPU具有并行处理的优点,虽可保证算力,但其功耗大,只能应用于服务器端。随着人工智能逐渐向深度学习领域发展,神经网络的深度不断加深,数据量也呈现几何级增长速度,海量的数据对芯片的计算能力也随之提出了更高的要求,通过改进硬件性能和芯片架构研发人工智能专用芯片成为行业重要的努力方向。晶圆级引擎CerebrasWSE是目前史上最大的人工智能芯片,与其他芯片相比,它包含了更多的个核心(约400000个,排列成633×633的正方形),提供18Gigabytes的片上内存,内存带宽高达9Petabytes/s。它可以在较低的延迟和较少的功耗下实现快速、灵活的计算。WSE的计算资源和存储资源有限,在有限的资源下,实现高性能、低功耗的神经网络加速是当下需解决的技术问题。Cerebras软件平台专门为加速人工智能计算而设计,它主要包括机器学习框架、Cerebras图编译器(CGC)、高性能内核库和内核API以及支持调试和分析的开发工具。对于一个指定的深度神经网络,CGC利用XLA将TensorFlow图编译成一系列专门为给定神经网络模型生成的计算内核,并将其转化为中间表示形式。CGC将中间表示与Cerebras核库中的核进行适配,适配结果是一个描述神经网络拓扑结构的核图。核图由两部分组成,一是罗列指定神经网络中所有核的类型和输入参数,每个核执行神经网络中对应节点的特定计算任务。二是刻画核之间的连通关系,即核图是一个无环有向图。然后,CGC将计算资源分配给核图中的每个核,并将每个核映射到芯片WSE的一个矩形物理区域。最后,将每个网络的通信路径配置到fabric上。上述编译流程中,最关键的部分是将多少计算资源分配给核图中的每个核,即要确定将描述神经网络拓扑结构核图中的每个核映射到WSE上的二维矩形计算模块的形状和位置。核图由两部分组成,一是罗列指定神经网络中所有的核的类型和输入参数,二是刻画核之间的连通关系的连接信息。Cerebras软件平台的核库中主要包括三种类型的核:conv、dblock和cblock,并指定其性能函数。比如核库中卷积核conv的性能函数conv.perf有11个参数,其中(H,W,R,S,C,K,T)是形式参数,它们分别指的是输入图像的高和宽(H,W)、感受野大小(R,S)、输入和输出数据(C,K)和步幅大小T,这些参数作为神经网络的输入,在编译过程中不发生改变。另外四个参数(h’,w’,c’,k’)是执行参数,它们决定核最终布局到WSE上的形状、执行时间和内存,需要通过编译求得。因此要在WSE芯片上进行布局的是形状大小可塑的矩形模块。图库中核dblock的高、宽、时间和内存依赖于卷积核conv1、conv2、conv3的高、宽、时间和内存,核cblock依赖于conv1、conv2、conv3、conv4的。简单地,可以理解为核dblock由3个核conv组成,核cblock由4个核conv组成。本专利技术中要解决的面向神经网络的布图规划问题与传统的芯片布图规划问题不同。在芯片规划中,传统的布图规划决定子电路或模块的外形和布置,以及外部端口、IP或宏模块的位置。传统的布图规划中,给定n个模块B={b1,b2,...,bn}及n个模块的网表,其中模块可以是有固定尺寸和面积的硬模块,也可以是面积固定而长宽比在一定范围内改变的软模块。在布图优化阶段,要求在满足某些物理设计的前提下,为每个模块选择合适的形状和位置,以使得全局边界框面积和总线长的加权和最小化。布图规划中较长的互连线可能会增加信号传播延迟,因此高性能的电路布局应尽可能地缩短互连线的长度。为简化布局总线长的计算,我们将核图中所有相互连接的核的中心之间的曼哈顿距离近似作为总线长。在传统的布图规划问题中,每个模块可布局到的位置坐标是连续的,而本专利技术由于WSE芯片的设计,每个模块可布局到的位置坐标必须是离散的整数点坐标。此外,面向深度神经网络的芯片布图规划问题额外考虑时间、内存和适配器损失等约束。注意到,矩形模块越大,即处理该计算任务的资源越多,从而速度越快。故本专利技术的布图要求在不超过芯片的计算资源和存储资源的前提下,尽可能多的使用计算资源,即最大化布图面积,这与传统的布图规划中最小化全局边界框面积约束不同。从物理设计角度而言,除了面积最大化外,在布图规划过程中,任意矩形模块之间不能有重叠,所有模块须均被放置在芯片内部。
技术实现思路
专利技术目的:为了解决上述问题,本专利技术提供一种面向深度神经网络的芯片布图规划方法,在有限的资源下,提高神经网络算力。技术方案:本专利技术提供一种面向深度神经网络的芯片布图方法,具体包括以下步骤:(1)估计神经网络对应的核图中所有核的面积;(2)根据实际数据和核库,计算在输入图像高度、宽度、特征数和输出四个维度上的资源分配数量h’、w’、c’和k’;(3)针对神经网络中的核全是conv的情况和神经网络中的核部分是dblock部分是cblock的情况,对参数c’,k’进行优化,得到神经网络中每一层核对应的符合预设条件的较好的矩形模块形状;(4)采用核贪婪排序算法确定摆放核图中所有核的摆放顺序;(5)基于步骤(4)中的线性顺序,对步骤(3)获得的矩形模块进行布局:采用核适配增长算法,迭代地增加核对应的矩形模块,使得下一个将被布局的模块被放置到使布图规划目标函数最优的地方,直到所有核被分配完。进一步地,所述步骤(1)的实现过程如下:由核库中核conv的性能函数:Areaconv=height*width=3*h′w′k′(c'+1)≈3*h′w′k′c′得:每个核理想执行时间为myT,则:对于核dblock:对于核cblock:其中,H,W,R,S,C,K,T分别代表输入图像的高和宽、感受野大小、输入和输出数据和步幅大小。进一步地,所述步骤(2)的实现过程如下:计算time的式中有上取整函数ceil,因此有而H,W均为整数;为控制time,考虑让和为整数,先确定参数h’和w’,并取h’和w’的值为H,W的质因数;再由h’和w’去确定c’和k’的值;根据memory确定参数c’和k’,由:R=S∈{1,2,3},粗略地,令可以确定参数:又因为memory<memlimit,得:取:进一步地,所述步骤(3)的实现过程如下:(31)神经网络中的核全是conv的情况:指定神经网络中的核全是conv时,其中间层的层数主要有52层和100层两种结构;若中间层层数是52层时,令若中间层层数是100层,令利用参数h本文档来自技高网
...

【技术保护点】
1.一种面向深度神经网络的芯片布图规划方法,其特征在于,包括以下步骤:/n(1)估计神经网络对应的核图中所有核的面积;/n(2)根据实际数据和核库,计算在输入图像高度、宽度、特征数和输出四个维度上的资源分配数量h’、w’、c’和k’;/n(3)针对神经网络中的核全是conv的情况和神经网络中的核部分是dblock部分是cblock的情况,对参数c’,k’进行优化,得到神经网络中每一层核对应的符合预设条件的较好的矩形模块形状;/n(4)采用核贪婪排序算法确定摆放核图中所有核的摆放顺序;/n(5)基于步骤(4)中的线性顺序,对步骤(3)获得的矩形模块进行布局:采用核适配增长算法,迭代地增加核对应的矩形模块,使得下一个将被布局的模块被放置到使布图规划目标函数最优的地方,直到所有核被分配完。/n

【技术特征摘要】
1.一种面向深度神经网络的芯片布图规划方法,其特征在于,包括以下步骤:
(1)估计神经网络对应的核图中所有核的面积;
(2)根据实际数据和核库,计算在输入图像高度、宽度、特征数和输出四个维度上的资源分配数量h’、w’、c’和k’;
(3)针对神经网络中的核全是conv的情况和神经网络中的核部分是dblock部分是cblock的情况,对参数c’,k’进行优化,得到神经网络中每一层核对应的符合预设条件的较好的矩形模块形状;
(4)采用核贪婪排序算法确定摆放核图中所有核的摆放顺序;
(5)基于步骤(4)中的线性顺序,对步骤(3)获得的矩形模块进行布局:采用核适配增长算法,迭代地增加核对应的矩形模块,使得下一个将被布局的模块被放置到使布图规划目标函数最优的地方,直到所有核被分配完。


2.根据权利要求1所述的面向深度神经网络的芯片布图规划方法,其特征在于,所述步骤(1)的实现过程如下:
由核库中核conv的性能函数:
Areaconv=height*width=3*h′w′k′(c′+1)≈3*h′w′k′c′



得:



每个核理想执行时间为myT,则:



对于核dblock:



对于核cblock:



其中,H,W,R,S,C,K,T分别代表输入图像的高和宽、感受野大小、输入和输出数据和步幅大小。


3.根据权利要求1所述的面向深度神经网络的芯片布图规划方法,其特征在于,所述步骤(2)的实现过程如下:
计算time的式中有上取整函数ceil,因此有而H,W均为整数;为控制time,考虑让和为整数,先确定参数h’和w’,并取h’和w’的值为H,W的质因数;再由h’和w’去确定c’和k’的值;根据memory确定参数c’和k’,由:



R=S∈{1,2,3},粗略地,令



可以确定参数:



又因为memory<memlimit,得:



取:





4.根据权利要求1所述的面向深度神经网络的芯片布图规划方法,其特征在于,所述步骤(3)的实现过程如下:
(31)神经网络中的核全是conv的情况:指定神经网络中的核全是conv时,其中间层的层数主要有52层和100层两种结构;若中间层层数是52层时,令若中间层层数是100层,令利...

【专利技术属性】
技术研发人员:张晓岩郭龙坤孙龙常希文徐楚楚戴国伟王文骐
申请(专利权)人:南京师范大学
类型:发明
国别省市:江苏;32

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

1