CN112183015B - 一种面向深度神经网络的芯片布图规划方法 - Google Patents
一种面向深度神经网络的芯片布图规划方法 Download PDFInfo
- Publication number
- CN112183015B CN112183015B CN202011214871.5A CN202011214871A CN112183015B CN 112183015 B CN112183015 B CN 112183015B CN 202011214871 A CN202011214871 A CN 202011214871A CN 112183015 B CN112183015 B CN 112183015B
- Authority
- CN
- China
- Prior art keywords
- core
- neural network
- cores
- conv
- parameters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 75
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000006978 adaptation Effects 0.000 claims abstract description 5
- 239000010410 layer Substances 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 16
- 238000010586 diagram Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 6
- 238000003062 neural network model Methods 0.000 claims description 4
- 239000011229 interlayer Substances 0.000 claims description 3
- 238000013468 resource allocation Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 8
- 230000003864 performance function Effects 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种面向深度神经网络的芯片布图规划方法,首先,估计神经网络每个核的面积;其次,根据实际数据和核库,计算参数h’、w’、c’和k’;并对其进行优化,得到神经网络中每一层核对应的符合预设条件的较好的矩形模块形状;然后,采用核贪婪排序算法和核适配增长算法,对矩形模块进行布局,迭代地增加核对应的矩形模块,使得下一个将被布局的模块被放置到使布图规划目标函数最优的地方,直到所有核被分配完,从而获得最终布局方案。本发明能在有限的资源下,有效提高现有深度神经网络算力。
Description
技术领域
本发明属于人工智能领域,具体涉及一种面向深度神经网络的芯片布图规划方法。
背景技术
深度神经网络的实现依赖于大量的计算资源和存储资源,这对神经网络实现带来了诸多挑战。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的高、宽、时间和内存依赖于卷积conv核1、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’,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核有三种符合条件的不同形状。
进一步地,所述步骤(4)的实现过程如下:
给定神经网络模型被适配成一个无环有向图,其中的有向边指定了输入信号要传输的方向;一个conv核被放置的顺序直接依赖于与该conv核有连接的有向边;定义新边为连接两个均未被放置的核的有向边;定义终边为由一个已被放置的核指向一个未被放置的核的有向边;要使核图中有连接的核之间的曼哈顿距离尽可能的小,在每次增加核的过程中,终边和新边数量之差Gap最大的核应被选择作为下一个被摆放的核;若Gap最大的核有多个,选取具有最多终边的核;如果终边最多的核仍不止一个,则选取边最少的核;如果仍然有多个选择,则任意选取一个核作为下一个核进行摆放,从而得到给定神经网络中所有核的摆放次序order。
进一步地,所述步骤(5)的实现过程如下:
确定核的摆放次序order后,将第一个核的第一种形状摆放在芯片的左上角,再摆放剩余的核,使得后一个被摆放的核与核图中有连接的且已经被摆放的核之间的曼哈顿距离及当前cost值的加权和最小;全局遍历order中第一个核的所有形状,局部遍历剩余核的形状。
有益效果:与现有技术相比,本发明的有益效果:本发明通过对计算资源的合理分配和布局,从硬件层面上有效提升深度学习算力,对任一指定神经网络的计算起到显著的加速效果,从而达到良好的计算性能;在计算分配方案时具有良好的时间复杂度,平均测试一个神经网络的时间只要0.2秒,优于当前主流方法的平均时间51.6秒;此外,在考虑适配器cost的情况下(即cost的权重非零),本发明最终得到的平均加权值和为22683.75,远远低于当前主流办法的30012.875,所计算解的质量大都优于现存的已知布局方案。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
本实施方式中涉及大量参数,现将各参数作如下说明,如表1所示:
表1参数说明表
核图描述了一组核以及它们之间的有向连接,则其映射到的矩形模块之间也存在有向关系。在芯片的布图规划过程中,长的互连线可能会增加信号传播延迟,因此高性能的电路布局应尽可能地缩短互连线的长度。为简化布局总线长的计算,将所有相互连接的矩形模块的中心之间的曼哈顿距离近似作为总线长,因此核布局问题的一个优化目标是最小化总线长l。其中,在平面上,坐标(x1,y1)的点i与坐标(x2,y2)的j点的曼哈顿距离为:
d(i,j)=|x1-x2|+|y1-y2|.
对于conv核,它的性能函数conv.perf的执行参数(h’,w’,c’,k’)越大,该内核的运行时间就越小。同理,对于另外两种类型的核dblock和cblock的性能函数亦是如此。由性能函数,可以计算得到每个核的运行时间。然而在并行计算中运行时间最长的核决定了引擎的总体性能,因此核布局问题的另一个目标是最小化核的最长执行时间DeltaT。
最后一个影响芯片加速性能的因素是适配器损失值(adapter cost),它表示相邻两核之间数据传输的匹配代价,可以通过判断某些指定执行参数是否相等来近似估计。之所以考虑适配器损失值,是因为执行参数决定核的高度,当相邻核被分配的计算资源是有相同的高度的矩形模块时,可以实现信息传输更加高效。最终我们要得到一个指定神经网络消耗的适配器总个数,adapter cost越小,加速器性能越好。在这里分两种情况:
1)若核图中全是卷积conv核,则比较相邻核之间的执行参数h’,w’,c’是否相同。
2)若核图中是核dblock和cblock的混合,则比较前一个核的h’,w’,c3’与后一个核的h’,w’,c1’是否相同。
为方便衡量布局的加速器的性能,根据实际分别为上述三个主要优化目标指定不同的权重,即对于不同的神经网络,最长核执行时间DeltaT、总线长l和适配器损失cost会被指定不同的权重值。此外也指定每个核的内存上限为memlimit=24576,最终三个优化目标的加权和值越小,则布局的结果对神经网络算力的加速效果越好。
本发明提供一种面向深度神经网络的芯片布图规划方法,具体包括以下步骤:
步骤1:估计神经网络对应的核图中所有核的面积。
由核库中conv核的性能函数:
Areaconv=height*width=3*h′w′k′(c′+1)≈3*h′w′k′c′
为方便面积估计,这里将“≈”视为“=”,则:
从而:
为每个核人为指定一个理想执行时间myT,则:
对于核dblock,conv1、conv2、conv3的h’和w’相同,由height=h′w′c′可知,若使得该dblock核是矩形形状,则必须有c′1=c′2=c′3,则:
故:
同理,对于核cblock,若使得该cblock核是矩形形状,则必须有c′1=c′2=c′3=c′4,且有:
故:
实际上任一指定的神经网络中核的类型只有两种情况,一种全都是conv核,另一种部分是dblock核部分是cblock核。不论是哪种情况,对任意一个神经网络,利用上述推导的Areaconv、Areadblock、Areacblock面积公式,计算得到这个神经网络所有核的面积之和,记为Area。为充分利用芯片的资源,这里设一个参数其中Hw、Ww分别是芯片WSE的高和宽,α可以形象地理解为资源浪费率(总资源÷需要的资源)。根据实际情况,α一定大于1。若α≤1,则说明总资源小于需求资源,此时说明指定的参数myT小了,应适当调大myT的值。但是α的值也不能过大,否则不能充分利用资源,因此也要不断调节myT的值来获取适当的α。
至此,得到指定神经网络中每个核的预估面积。
步骤2:根据实际数据和核库,计算在输入图像高度、宽度、特征数和输出四个维度上的资源分配数量h’、w’、c’和k’。
参数h’和w’的确定基于以下几个观察:
观察1:H=W∈{7,14,28,56,112},C,K∈{64,128,256,512,1024,2048},C,K的值比H,W大很多。因此C,K对于time和memory的贡献更大一些,而H,W相对较小。相应地,c’和k’也应该大一些,否则time和memory会很大。又由于上面预估面积是固定的,因此总体上说,c’和k’的值比h’和w’的值要大。
观察2:计算time的式中有上取整函数ceil,因此有 而H,W均为整数。为控制time,考虑让/>和/>为整数。因此先确定参数h’和w’,并取h’和w’的值为H,W的质因数。然后再由h’和w’去确定c’和k’的值。参数h’,w’效果较好的可能取值如表2所示。
表2为参数h’,w’效果较好的可能取值
根据memory确定参数c’和k’,由:
实际上,R=S∈{1,2,3}。粗略地令:
可以确定参数:
又因为memory<memlimit,得:
取:
至此粗略地得到参数h’,w’,c’,k’的值。
步骤3:针对神经网络中的核全是conv的情况和神经网络中的核部分是dblock部分是cblock的情况,对参数c’,k’进行优化,得到神经网络中每一层核对应的符合预设条件的较好的矩形模块形状。
首先讨论神经网络中的核全是conv的情况。
当指定神经网络中的核全是conv时,其中间层的层数主要有52层和100层两种结构。若中间层层数是52层时,令若中间层层数是100层,令/>此时,利用参数h’,w’,/>k’,求出每个conv核的height和width,并记karea=height*width。
对每个conv核的四个执行参数h’,w’,k’计算出的karea,Areaconv进行比较,如表3所示:
表3为karea,Areaconv面积比较确定conv核的最终参数值
对于指定神经网络中的核全是conv的情况,通过上面比较,每个核只保留两组参数,即每个conv核有两种符合条件的不同形状。因为实际中conv核算出的karea实际面积以及Areaconv估计面积都是比较小的,在这里我们在设置一个界为500,认为Areaconv>500且karea>Areaconv(1+20%)的面积就太大了,直接舍弃。
接着讨论神经网络中的核部分是dblock部分是cblock的情况,讨论过程类似于conv核。当指定神经网络中的核部分是dblock部分是cblock时,其中间层的层数主要有16层和32层两种结构。根据上面得到的参数h’,w’和c’,k’的计算公式:
可以计算得到dblock的参数c1’,c2’,c3’,k1’,k2’,k3’以及cblock的参数c1’,c2’,c3’,c4’,k1’,k2’,k3’,k4’;如表4所示:
表4核dblock和cbblock的参数优化
对每个核dblock的四个执行参数h’,w’,c’,k’计算出该核的height和width,并记karea=height*width。接着对karea,Areadblock进行比较,如表5所示:
表5 karea,Areadblock面积比较确定核dblock的最终参数值
Areadblock是估计面积,karea是优化参数后得到的实际面积。karea的面积最好能够在估计面积Areadblock的附近,可以超过估计面积Areadblock,但是不能过大,设置一个界限,不能超过Areadblock的20%。
(1)如果height>Hw或width>Ww,显然舍弃。事实上,这样的情况是非常少的。
(2)如果karea>Areadblock(1+20%),说明实际面积超过估计面积太多,需要舍弃。
(3)如果karea<Areacblock但没超过Areacblock(1+20%),此时轮流让k’和c’加1,直到karea≥Areacbllock。
如果Areacblock<karea≤Areacblock(1+20%),则可以直接保留这组k’和c’的参数值。
同理,对每个核cblock的四个执行参数h’,w’,c’,k’计算出该核的height和width,并记karea=height*width。接着对karea,Areacblock进行比较,如表6所示:
表6 karea,Areacblock面积比较确定核cblock的最终参数值
对于指定神经网络中的核部分是dblock部分是cblock的情况,通过上面比较,每个核只保留三组参数,即每个dblock核和cblock核有三种符合条件的不同形状。
步骤4:采用核贪婪排序算法确定摆放核图中所有核的摆放顺序。
给定神经网络模型被适配成一个无环有向图,其中的有向边指定了输入信号要传输的方向。一个conv核被放置的顺序直接依赖于与该conv核有连接的有向边。对于这样的有向边定义如下:
·新边:连接两个均未被放置的核的有向边。
·终边:由一个已被放置的核指向一个未被放置的核的有向边。
因为给定的神经网络中,一个核可能指向多个其他的核,也有可能被多个其他核指向,因此,考虑到要使核图中有连接的核之间的曼哈顿距离尽可能的小,在每次增加核的过程中,那些终边和新边数量之差最大的核应被选择作为下一个被摆放的核。称终边和新边数量之差为Gap。若Gap最大的核有多个,选取具有最多终边的核;如果终边最多的核仍不止一个,则选取边最少的核;如果仍然有多个选择,则任意选取一个核作为下一个核进行摆放。这样就得到给定神经网络中所有核的摆放次序order。
步骤5:基于步骤4中的线性顺序,对步骤3获得的矩形模块进行布局:采用核适配增长算法,迭代地增加核对应的矩形模块,使得下一个将被布局的模块被放置到使布图规划目标函数最优的地方,直到所有核被分配完。
确定核的摆放次序order后,将第一个核的第一种形状摆放在芯片的左上角,然后再摆放剩余的核,使得后一个被摆放的核与核图中有连接的且已经被摆放的核之间的曼哈顿距离及当前cost值的加权和最小。由于前面步骤中每个核得到两种或者三种可能的形状(conv核有两种,核dblock、cblock有三种),考虑到程序运行时间,在这里全局遍历order中第一个核的所有形状,局部遍历剩余核的形状。即,假设神经网络中的核全是conv的情况,每个核有两种形状良好的矩形模块。假设该神经网络所有核的摆放次序为order=<conv1,conv2,…,convk>。先将order次序中第一个conv核1的第一种形状放在芯片的左上角,然后先试放第二个conv核2的第一种形状,记录此时conv2中心与conv1中心之间的曼哈顿距离及当前cost值的加权和,记为s1;接着再试放conv2的第二种形状,记录此时conv2中心与conv1中心的曼哈顿距离及当前cost值的加权和,记为s2。比较s1和s2,若s1<s2,则选择conv2的第一种形状,否则选择第二种形状。接着先试放conv3的第一种形状,此时记录conv3与核图中有连接的且已经被布局的核之间的曼哈顿距离及当前cost值的加权和(核图中conv3可能和conv1、conv2均有连接,则需计算conv3中心与conv1、conv2中心的曼哈顿距离及cost值的加权和),接着试放conv3的第二种形状,同时记录曼哈顿距离及当前cost值的加权和,与前者比较,从而确定应放conv3的哪一个形状最好。以此类推,直到摆放conv核k。至此得到摆放conv核1的第一种形状产生的布图方案,不妨设这种方案产生的曼哈顿总距离及cost值的加权和为S1。接下来摆放conv1的第二种形状,局部遍历剩下所有核的形状,记最终方案产生的曼哈顿总距离及cost值的加权和为S2,比较S1和S2,若S1<S2,则选取摆放conv核1的第一种形状产生的布图为最终的布图方案,否则,选择摆放conv核1的第二种形状产生的布图方案。
Claims (4)
1.一种面向深度神经网络的芯片布图规划方法,其特征在于,包括以下步骤:
(1)估计神经网络对应的核图中所有核的面积;
(2)根据实际数据和核库,计算在输入图像高度、宽度、特征数和输出四个维度上的资源分配数量h’、w’、c’和k’;
(3)针对神经网络中的核全是conv的情况和神经网络中的核部分是dblock部分是cblock的情况,对参数c’,k’进行优化,得到神经网络中每一层核对应的符合预设条件的矩形模块形状;
(4)采用核贪婪排序算法确定摆放核图中所有核的摆放顺序;
(5)基于步骤(4)中的线性顺序,对步骤(3)获得的矩形模块进行布局:采用核适配增长算法,迭代地增加核对应的矩形模块,使得下一个将被布局的模块被放置到使布图规划目标函数最优的地方,直到所有核被分配完;
所述步骤(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’,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核有三种符合条件的不同形状。
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所述的面向深度神经网络的芯片布图规划方法,其特征在于,所述步骤(4)的实现过程如下:
给定神经网络模型被适配成一个无环有向图,其中的有向边指定了输入信号要传输的方向;一个conv核被放置的顺序直接依赖于与该conv核有连接的有向边;定义新边为连接两个均未被放置的核的有向边;定义终边为由一个已被放置的核指向一个未被放置的核的有向边;在每次增加核的过程中,终边和新边数量之差Gap最大的核应被选择作为下一个被摆放的核;若Gap最大的核有多个,选取具有最多终边的核;如果终边最多的核仍不止一个,则选取边最少的核;如果仍然有多个选择,则任意选取一个核作为下一个核进行摆放,从而得到给定神经网络中所有核的摆放次序order。
4.根据权利要求1所述的面向深度神经网络的芯片布图规划方法,其特征在于,所述步骤(5)的实现过程如下:
确定核的摆放次序order后,将第一个核的第一种形状摆放在芯片的左上角,再摆放剩余的核,使得后一个被摆放的核与核图中有连接的且已经被摆放的核之间的曼哈顿距离及当前cost值的加权和最小;全局遍历order中第一个核的所有形状,局部遍历剩余核的形状。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011214871.5A CN112183015B (zh) | 2020-11-04 | 2020-11-04 | 一种面向深度神经网络的芯片布图规划方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011214871.5A CN112183015B (zh) | 2020-11-04 | 2020-11-04 | 一种面向深度神经网络的芯片布图规划方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112183015A CN112183015A (zh) | 2021-01-05 |
CN112183015B true CN112183015B (zh) | 2024-04-19 |
Family
ID=73916495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011214871.5A Active CN112183015B (zh) | 2020-11-04 | 2020-11-04 | 一种面向深度神经网络的芯片布图规划方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112183015B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240289602A1 (en) * | 2021-10-12 | 2024-08-29 | Mediatek Inc. | Macro placement using an artificial intelligence approach |
CN114528799B (zh) * | 2022-02-22 | 2023-03-21 | 河南城建学院 | 基于云平台的芯片多端协同设计方法及系统 |
CN117521586B (zh) * | 2023-12-29 | 2024-03-12 | 芯行纪科技有限公司 | 芯片设计的布局规划方法及相关设备 |
CN117952065B (zh) * | 2024-03-27 | 2024-06-11 | 全芯智造技术有限公司 | 用于芯片排版的方法、设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065019A (zh) * | 2011-01-21 | 2011-05-18 | 西安电子科技大学 | 基于区域划分的片上网络快速ip核映射方法 |
CN109587081A (zh) * | 2017-09-29 | 2019-04-05 | 邢筱丹 | 一种基于拓扑划分的片上网络快速映射算法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11315020B2 (en) * | 2018-09-24 | 2022-04-26 | International Business Machines Corporation | Optimized partitioning of multi-layer networks in core-based neurosynaptic architectures |
-
2020
- 2020-11-04 CN CN202011214871.5A patent/CN112183015B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065019A (zh) * | 2011-01-21 | 2011-05-18 | 西安电子科技大学 | 基于区域划分的片上网络快速ip核映射方法 |
CN109587081A (zh) * | 2017-09-29 | 2019-04-05 | 邢筱丹 | 一种基于拓扑划分的片上网络快速映射算法 |
Non-Patent Citations (2)
Title |
---|
一种基于SLP的异构NoC布图优化算法;刘正轩;周一杰;张智慧;成方圆;;信息与电脑(理论版);20190515(09);全文 * |
刘正轩 ; 周一杰 ; 张智慧 ; 成方圆 ; .一种基于SLP的异构NoC布图优化算法.信息与电脑(理论版).2019,(09),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN112183015A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112183015B (zh) | 一种面向深度神经网络的芯片布图规划方法 | |
CN108564168A (zh) | 一种对支持多精度卷积神经网络处理器的设计方法 | |
CN115186821B (zh) | 面向芯粒的神经网络推理开销估计方法及装置、电子设备 | |
CN111814420B (zh) | 基于拓扑优化和启发式搜索的总体布线方法 | |
CN109918199B (zh) | 基于gpu的分布式图处理系统 | |
CN110795908A (zh) | 偏差驱动的总线感知总体布线方法 | |
JPH0325953A (ja) | 自動フロアプラン演算装置 | |
CN109684731B (zh) | 一种高效的详细布线驱动轨道分配方法 | |
Tang et al. | A survey on steiner tree construction and global routing for vlsi design | |
US20120151181A1 (en) | Integrated device, layout method thereof, and program | |
CN114492782A (zh) | 基于强化学习的神经网络的片上核心编译映射方法及装置 | |
Chan et al. | NoCOUT: NoC topology generation with mixed packet-switched and point-to-point networks | |
Huang et al. | Application-specific network-on-chip synthesis with topology-aware floorplanning | |
CN116070682B (zh) | 神经元计算机操作系统的snn模型动态映射方法及装置 | |
CN105528243A (zh) | 一种利用数据拓扑信息的优先级分组调度方法及系统 | |
Yang et al. | Mapping multiple applications with unbounded and bounded number of cores on many-core networks-on-chip | |
Amin et al. | iHPSA: An improved bio-inspired hybrid optimization algorithm for task mapping in Network on Chip | |
Alagarsamy et al. | A self-adaptive mapping approach for network on chip with low power consumption | |
CN115860081A (zh) | 一种芯粒算法调度方法、系统、电子设备及存储介质 | |
CN115983187A (zh) | 基于多策略的考虑总线偏差的层分配方法 | |
Wang et al. | Exploiting dark cores for performance optimization via patterning for many-core chips in the dark silicon era | |
Hsu et al. | Multilayer global routing with via and wire capacity considerations | |
Montone et al. | Wirelength driven floorplacement for FPGA-based partial reconfigurable systems | |
CN113468847A (zh) | 一种基于非整数多倍行高单元的集成电路全局布局方法 | |
CN112989749A (zh) | 一种集成电路版图布线中引脚访问方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |