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层,令 利用参数h’,w’, k’,求出每个conv核的height和width,并记karea=height*width;每个核conv的四个执行参数h’,w’, k’计算出的karea,Areaconv进行比较:保留两组参数,即得到每个conv核有两种符合条件的不同形状;
(32)神经网络中的核部分是dblock部分是cblock的情况:当指定神经网络中的核部分是dblock部分是cblock时,其中间层的层数主要有16层和32层两种结构;计算得到dblock的参数c1’,c2’,c3’,k1’,k2’,k3’以及cblock的参数c1’,c2’,c3’,c4’,k1’,k2’,k3’,k4’;
对每个核dblock的四个执行参数h’,w’,c’,k’计算出该核的height和width,并记karea=height*width;
对karea,Areadblock进行比较:对每个核cblock的四个执行参数h’,w’,c’,k’计算出该核的height和width,并记karea=height*width;
对karea,Areacblock进行比较:对于指定神经网络中的核部分是dblock部分是cblock的情况,每个核只保留三组参数,即得到每个dblock核和cblock核有三种符合条件的不同形状。
5.根据权利要求1所述的面向深度神经网络的芯片布图规划方法,其特征在于,所述步骤(4)的实现过程如下:
给定神经网络模型被适配成一个无环有向图,其中的有向边指定了输入信号要传输的方向;一个核conv被放置的顺序直接依赖于与该conv核有连接的有向边;定义新边为连接两个均未被放置的核的有向边;定义终边为由一个已被放置的核指向一个未被放置的核的有向边;要使核图中有连接的核之间的曼哈顿距离尽可能的小,在每次增加核的过程中,终边和新边数量之差Gap最大的核应被选择作为下一个被摆放的核;若Gap最大的核有多个,选取具有最多终边的核;如果终边最多的核仍不止一个,则选取边最少的核;如果仍然有多个选择,则任意选取一个核作为下一个核进行摆放,从而得到给定神经网络中所有核的摆放次序order。
6.根据权利要求1所述的面向深度神经网络的芯片布图规划方法,其特征在于,所述步骤(5)的实现过程如下:
确定核的摆放次序order后,将第一个核的第一种形状摆放在芯片的左上角,再摆放剩余的核,使得后一个被摆放的核与核图中有连接的且已经被摆放的核之间的曼哈顿距离及当前cost值的加权和最小;全局遍历order中第一个核的所有形状,局部遍历剩余核的形状。