本技术涉及芯片布局,尤其是一种基于动态梯度优化结合深度强化学习的芯片布局方法。
背景技术:
1、芯片布局是fpga物理设计中的关键环节之一,布局质量十分影响fpga芯片的物理性能。传统fpga芯片布局技术主要采用模拟退火、力导向、粒子群等随机优化方法,存在优化目标不充分、优化效率较低等问题。随着人工智能技术的快速发展,人工智能预测性、自适应性的特性可以进一步提升优化方法的性能,因此基于人工智能的fpga芯片布局优化技术是当前热点技术研究方向。
2、然而,现有基于人工智能的fpga芯片布局优化技术往往需要准备大量训练样本,而不同fpga芯片尺寸、线网数量等属性都存在显著差异,导致准备大量训练样本的技术路径存在一定局限性,实际实现难度较大。
技术实现思路
1、本技术针对上述问题及技术需求,提出了一种基于动态梯度优化结合深度强化学习的芯片布局方法,本技术的技术方案如下:
2、一种基于动态梯度优化结合深度强化学习的芯片布局方法,该芯片布局方法包括:
3、对待布局网表进行初始化布局得到第一次迭代的芯片布局结果,并初始化迭代次数t=1;
4、计算任意第t次迭代的芯片布局结果的多项布局性能指标,并构建得到表征第t次迭代的芯片布局结果的布局性能的状态特征向量statet以及奖励值rt;
5、根据第t次迭代的芯片布局结果的各项布局性能指标结合第t次迭代的权重系数αt计算得到损失函数losst,损失函数losst越小、芯片布局结果的布局性能越优;
6、根据损失函数losst进行梯度下降更新得到第t+1次迭代的芯片布局结果;
7、利用基于深度强化学习的策略网络根据状态特征向量statet更新得到第t+1次迭代的权重系数αt+1,并根据第t+1次迭代的芯片布局结果和权重系数αt+1进入第t+1次迭代,直至达到迭代终止条件时得到最终芯片布局结果;策略网络在迭代过程中利用各次迭代的状态特征向量和奖励值进行训练更新。
8、其进一步的技术方案为,根据损失函数losst进行梯度下降更新得到第t+1次迭代的芯片布局结果,包括:
9、根据第t次迭代的芯片布局结果确定布局神经网络中各个神经元在第t次迭代的网络参数,布局神经网络中的每个神经元对应待布局网表中的一个待布局单元,待布局网表中任意待布局单元j在第t次迭代的芯片布局结果中的布局坐标(xj,yj)作为对应神经元的第t次迭代的网络参数,xj是待布局单元j在水平x方向的布局坐标,yj是待布局单元j在竖直y方向的布局坐标;
10、利用反向传播计算损失函数losst对每个网络参数的偏导数并得到梯度向量,通过梯度下降法更新各个神经元的网络参数得到第t+1次迭代的芯片布局结果。
11、其进一步的技术方案为,任意第t次迭代的芯片布局结果的布局性能指标包括待布局网表中每个线网net的线长指标以及芯片布局结果的密度指标dt,计算得到的损失函数表示对待布局网表中所有线网net的线长指标进行求和;
12、计算损失函数losst对每个网络参数的偏导数包括:
13、计算损失函数losst对待布局网表中任意待布局单元j的水平x方向的布局坐标xj的偏导数以及计算损失函数losst对待布局网表中任意待布局单元j的竖直y方向的布局坐标yj的偏导数其中,是待布局单元j所属的线网ω在第t次迭代的芯片布局结果中的线长指标,线网ω是待布局网表中的其中一个线网。
14、其进一步的技术方案为,计算第t次迭代的芯片布局结果中任意一个线网net的线长指标包括:
15、按照计算得到线网net在水平x方向的横坐标加权平均线长以及,按照计算得到线网net在竖直y方向的纵坐标加权平均线长
16、其中,{net}是线网net中所有待布局单元构成的集合,线网net中的待布局单元n(i)在第t次迭代的芯片布局结果中的布局坐标为(xn(i),yn(i)),xn(i)是线网net中的待布局单元n(i)在水平x方向的布局坐标,yn(i)是线网net中的待布局单元n(i)在竖直y方向的布局坐标;e是自然常数,γ是平滑控制参数。
17、其进一步的技术方案为,
18、
19、其中,{ω}是待布局单元j所属的线网ω包含的待布局单元构成的集合,是线网ω中所有待布局单元在水平x方向的布局坐标的最大值,是线网ω中所有待布局单元在竖直y方向的布局坐标的最大值。
20、其进一步的技术方案为,计算第t次迭代的芯片布局结果的布局密度dt,包括:
21、统计第t次迭代的芯片布局结果中每个布局区域内待布局单元的分布直方图并构造得到空间密度分布图ρ(x,y),x是水平x方向的布局坐标的索引,y是竖直y方向的布局坐标的索引;
22、利用傅里叶变换将空间密度分布图ρ(x,y)转换得到频域密度分布图u和v是频率索引;
23、根据频域密度分布图得到水平x方向的频域场分布以及竖直y方向的频域场分布其中,是拉普拉斯算子,n是空间密度分布图和频域密度分布图的边长,j是虚数单位;
24、利用傅里叶逆变换将水平x方向的频域场分布转换得到水平x方向的布局密度ex(x,y),利用傅里叶逆变换将竖直y方向的频域场分布转换得到竖直y方向的布局密度ey(x,y),则
25、其进一步的技术方案为,芯片布局方法还包括:
26、根据第一次迭代的芯片布局结果的布局性能指标按照计算得到第一次迭代的权重系数α1。
27、其进一步的技术方案为,利用策略网络根据状态特征向量statet更新得到第t+1次迭代的权重系数αt+1包括:利用策略网络根据状态特征向量statet得到第t+1次迭代的控制系数μt+1,并更新得到αt+1=μt+1·αt,其中,控制系数μt+1∈[0.9,1.1];
28、构建得到表征第t次迭代的芯片布局结果的布局性能的状态特征向量statet包括:第t次迭代的芯片布局结果的布局性能特征值、第t次迭代的控制系数μt、第t次迭代的权重系数αt、第t次迭代的特征值改变量;其中,第t次迭代的特征值改变量是第t次迭代的芯片布局结果的布局性能特征值相对于第t-1次迭代的芯片布局结果的布局性能特征值的改变量,μ1=1,第一次迭代的特征值改变量为0。
29、其进一步的技术方案为,得到表征第t次迭代的芯片布局结果的布局性能的奖励值其中,是第t次迭代的芯片布局结果的线长奖励值,是待布局网表中所有线网net在第t次迭代的芯片布局结果中的半周长线长hpwl(net)之和;是第t次迭代的芯片布局结果的密度奖励值,overlap是第t次迭代的芯片布局结果中待布局单元之间的重叠数量;β为奖励平衡参数。
30、其进一步的技术方案为,策略网络基于actor-critic架构采用td3策略梯度算法训练得到。
31、本技术的有益技术效果是:
32、本技术公开了一种基于动态梯度优化结合深度强化学习的芯片布局方法,该方法引入权重系数结合布局性能指标构建损失函数对芯片布局结果进行梯度优化布局,且利用深度强化学习自适应动态更新权重系数,通过一段时间的梯度下降迭代可以对芯片布局结果不断进行更新优化,以此实现芯片智能布局优化,权重系数的引入以及自适应动态更新可以使得芯片进行内缩梯度优化的同时梯度优化目标不陷入局部最优解或产生梯度爆炸,从而进一步提升芯片布局优化性能和效率。
33、由于本技术需要利用损失函数进行梯度优化,针对经典的半周长线长计算函数和密度计算函数不可导的特点,本技术还提供了连续可到的线长指标和密度指标的计算方法。
1.一种基于动态梯度优化结合深度强化学习的芯片布局方法,其特征在于,所述芯片布局方法包括:
2.根据权利要求1所述的芯片布局方法,其特征在于,根据损失函数losst进行梯度下降更新得到第t+1次迭代的芯片布局结果,包括:
3.根据权利要求2所述的芯片布局方法,其特征在于,任意第t次迭代的芯片布局结果的布局性能指标包括待布局网表中每个线网net的线长指标以及芯片布局结果的密度指标dt,计算得到的损失函数表示对待布局网表中所有线网net的线长指标进行求和:
4.根据权利要求3所述的芯片布局方法,其特征在于,计算第t次迭代的芯片布局结果中任意一个线网net的线长指标包括:
5.根据权利要求4所述的芯片布局方法,其特征在于,
6.根据权利要求3所述的芯片布局方法,其特征在于,计算第t次迭代的芯片布局结果的布局密度dt,包括:
7.根据权利要求3所述的芯片布局方法,其特征在于,所述芯片布局方法还包括:
8.根据权利要求1所述的芯片布局方法,其特征在于,利用策略网络根据状态特征向量statet更新得到第t+1次迭代的权重系数αt+1包括:利用策略网络根据状态特征向量statet得到第t+1次迭代的控制系数μt+1,并更新得到αt+1=μt+1·αt,其中,控制系数μt+1∈[0.9,1.1];
9.根据权利要求1所述的芯片布局方法,其特征在于,得到表征第t次迭代的芯片布局结果的布局性能的奖励值其中,是第t次迭代的芯片布局结果的线长奖励值,是待布局网表中所有线网net在第t次迭代的芯片布局结果中的半周长线长hpwl(net)之和;是第t次迭代的芯片布局结果的密度奖励值,overlap是第t次迭代的芯片布局结果中待布局单元之间的重叠数量;β为奖励平衡参数。
10.根据权利要求1所述的芯片布局方法,其特征在于,所述策略网络基于actor-critic架构采用td3策略梯度算法训练得到。