一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于深度强化学习的FPGA布线器布线方法及系统

2022-11-23 15:41:16 来源:中国专利 TAG:

一种基于深度强化学习的fpga布线器布线方法及系统
技术领域
1.本发明属于fpga布线器相关技术领域,尤其涉及一种基于深度强化学习的fpga布线器布线方法及系统。


背景技术:

2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.fpga(field programmable gate array)即现场可编程门阵列,是一种半定制化电路,被称为“万能芯片”。fpga诞生于上世纪80年代,在当时并未受到广泛关注,直到90年代的中后期,在不断探索和研发中,fpga中加入了数字信号处理、嵌入式模块以及其他高端技术,开始受到fpga从业者的广泛关注。直至今天,随着数字集成电路的发展,fpga逐渐占据市场,并始终处于快速增长的阶段。
4.fpga的eda流程主要包含功能定义、设计输入、功能仿真、综合优化、布局布线、时序仿真、板级仿真以及对芯片编程和最终调试等步骤。其中布局布线是完成逻辑层面到物理层面的转换,映射到目标器件上的一套详细流程,将综合阶段获得的逻辑网表详细配置在fpga芯片之上,这是整个eda流程中最为重要的一环。布线阶段直接关系到资源的使用效率以及延时的高低,决定了逻辑关系之间如何通过fpga上丰富的物理资源完成连接。在传统的设计流程中,布线始终占据大量的时间成本。verilog to routing(vtr)作为一项全世界范围内的合作项目,主要完成了为fpga架构中的cad流程研究与开发提出了一种开源框架,是学术界使用范围最广的fpga架构设计和分析工具。vtr使用的布线器基于1995年由carl ebeling所提出的基于协商的fpga性能优化布线算法即pathfinder算法,当时基本上所有的面向fpga的厂商都会去采用这种基于协商拥塞(negotiated congestion)的布线方法,或者其他从这个方法中引申而产生的各种布线方法。而随着机器学习的不断发展,强化学习作为一种独特的机器学习算法受到学术界的广泛关注,这项技术的出现为解决传统问题提供了一种全新的解决思路。
5.强化学习是机器学习中的一种方法,能够给予智能体分辨优劣的能力,通过奖赏或惩罚的方式,帮助智能体找到在某种状态下应采取的更合理的动作。在系统设计领域使用强化学习方法解决问题并不少见,但现如今的研究更多聚焦于专用集成电路(application specific integrated circuit,asic)的设计之上,对于强化学习应用于fpga设计领域的研究还比较少,然而,由于fpga本身的特点与asic并不完全相同,针对于asic系统设计方面的研究并不完全适用于fpga平台之上。因此如何针对fpga特点设计布线策略,对保障fpga布线器的成功率有重要意义。
6.如图1所示,基于协商拥塞的fpga布线算法(pathfinder)中的主要关注点在于历史成本以及迭代拆线重布。在fpga布局阶段之后,各个逻辑块映射到了相对应的物理结构中,即可编程逻辑块(clb)中,布线阶段的主要任务是将各个逻辑块的输入及输出以及fpga开发板的i/o相互连接,以实现电路逻辑功能。而强化学习的方式与拆线重布的思想存在一
定的重合性。拆线重布其实是在不断的试错,通过对出错修正不断优化拥塞问题,最终得到无拥塞结果。
7.电路路由问题通常被划分为两个阶段:全局路由和详细路由。全局路由阶段主要解决通道选择问题,而不去决定具体的线轨,得到一种粗粒度的路由结果。详细路由则是在全局路由之后,根据全局路由结果,进一步决定具体的路由线轨并获得最终的路由结果。这种分离的两阶段方式对于一般电路设计问题来说降低了一定的复杂性,但是对于fpga问题则并不完全适用。在一些布线工具中,全局布线与详细布线流程通常是被合并的,原因在于fpga相较于asic电路的独有特点。在asic中,逻辑单元确定位置后,电路连接在物理上是不存在的,即不存在实际的物理线,当需要完成端到端的连接时,才会将实际的物理连线实现,因此全局布线的模糊性是合理且可以被接受的。而在fpga中,作为一种半定制电路,丰富的布线资源在物理上是实际存在的,不受逻辑的变化而改变。通过全局布线获得的中间结果对于详细布线不存在深刻的指导意义,因为在不给予详细线轨信息的情况下,无法确定全局布线的通道能否连通或能否连通到具体的目标位置,因此中间结果是很难被有效使用的。
8.经验池回放中最基本的问题在于如何采样,如果在学习过程中,成功的经验不被随机选择到或是选择到的几率较小,那么神经网络在训练过程中更多情况下是在学习失败的经验。在均匀采样中,随着经验池中失败经验比重增大,得到智能体所需要的成功经验的几率就会减小,这种采样的方式就会使得整个过程的学习效率变得非常低下。因此,经验池中的经验选择对于学习效率有着十分大的影响。
9.在布线问题中,会由于部分热点地区过于拥塞从而发生绕路的行为,这也是多线网路由中经常出现的问题。不过通常来说这种现象并不会导致线网布线出现非常大的面积失衡,如果热点区域的拥塞极其明显以致于布线面积极大变化,那么证明该规模下的fpga并不适合完成该规模的线网任务。因此,布线面积的变化其实是在一定的可控范围的。在强化学习中,每一个状态下都有许多的动作可供探索,如果不加以限制而允许智能体随意的游走尝试,那么探索过程中就会出现许多无意义的经验内容。布线器需要给智能体一定的自由探索空间,但这个空间不能偏离单线网问题下的最短路径太多,因此需要通过给予布线框的限制来给予智能体一定程度的指引,使得探索过程不去做太多无意义的尝试。


技术实现要素:

10.为克服上述现有技术的不足,本发明提供了一种基于深度强化学习的fpga布线器布线方法及系统,通过结合fpga相关特点,采用经验池优先重放以及布线框设计等策略,针对于小规模电网达到了在保障较高成功率的前提下缩短布线时长的效果。
11.为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:一种基于深度强化学习的fpga布线器布线方法,包括:
12.提取布线资源图确定智能体所处的布线环境、状态空间;
13.根据智能体当前的状态空间和布线环境,探索可采取的布线动作信息;
14.通过可采取的布线动作信息更新状态空间以及获取可采取的布线动作信息对应的奖励值或惩罚值;
15.建立布线调控的强化学习模型,根据当前的状态空间、可采取的布线动作信息、布
线动作信息对应的奖励值或惩罚值、以及更新后的状态空间放入经验池,利用经验池对所建立的强化学习模型进行训练更新,得到最优的布线。
16.进一步的,所述状态空间包含周围线网的使用信息,通过限制感知宽度来降低状态空间的大小。
17.进一步的,对所可采取的动作的限制,所有动作的探索需以下限制条件:
18.将从source点横纵坐标到sink点横纵坐标所围成的二维矩形作为起始布线区域,在此基础上横纵坐标分别向外延伸frame_size个单位长度作为布线框;
19.其中,source代表当前所在clb模块,包含标号、坐标信息、可连接出端口数量、具体出端口标号;sink代表进入端,信号可由sink端进入逻辑块中。
20.进一步的,在布线动作探索过程中,将每一次的非终点的状态推进给予-1的惩罚并累积,当到达终点位置时,给予智能体一个正向的激励;当智能体未能到达终点,而探索步数达到设定的上限时,智能体就会给予一个较大的负面惩罚;当智能体因为遇到拥塞而发生无路可走情况时,再给予智能体一个额外的惩罚。
21.进一步的,采用神经网络来拟合q函数,神经网络结构由3层全连接层构成,对应的隐藏层激活函数采用relu函数,输入层的神经元包含了12维的固定状态以及根据fpga结构规模以及布线框大小而确定的布线占用状态,输出层代表m维动作空间,m取决于线轨与线轨之间的最大连通数,输出层每一个神经元代表一条对应的线轨,对神经网络进行迭代更新。
22.进一步的,基于优先级的经验回放策略对神经网络进行训练。
23.进一步的,对于布线调控的强化学习模型的训练,具体包括:
24.从线网任务处理列表中选取第一任务进行探索,选取第一个任务的扇出端作为开始节点,并初始化状态空间,当状态空间存在可执行动作时,探索过程随机选取一条未拥塞线轨作为执行动作,并完成状态转移,更新当前线轨指针,同时在环境中更新线轨占用情况;
25.当状态空间不存在可执行动作时,终止该任务布线并转移至下一布线任务;
26.之后根据当前线轨指针以及环境状态构建新状态空间,并将该步探索的经验存放在经验池中,经验回收池中每组经验中存放五组数据,分别为当前状态信息、动作选择信息、当前探索奖励信息、到达线轨状态信息以及是否完成当前布线任务标志;
27.利用经验回收池继续探索,直至达到当前线网任务结束条件,然后重复上下任务切换过程,直到所有线网任务完成探索。
28.本发明的第二个方面提供一种基于深度强化学习的fpga布线器布线系统,包括:
29.获取模块,其用于提取布线资源图确定智能体所处的布线环境、状态空间;
30.探索模块,其用于根据智能体当前的状态空间和布线环境,探索可采取的布线动作信息;
31.状态更新模块,其用于通过可采取的布线动作信息更新状态空间以及获得可采取的布线动作信息对应的奖励值或惩罚值;
32.模型训练模块,其用于建立布线调控的强化学习模型,根据当前的状态空间、可采取的布线动作信息、布线动作信息对应的奖励值或惩罚值、以及更新后的状态空间放入经验池,利用经验池对所建立的强化学习模型进行训练更新,得到最优的布线。
33.本发明的第三个方面提供一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成上述方法所述的步骤。
34.本发明的第四个方面提供一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成上述方法所述的步骤。
35.以上一个或多个技术方案存在以下有益效果:
36.本发明通过结合fpga相关特点,采用经验池优先重放以及布线框设计等策略,针对于小规模电网达到了在保障较高成功率的前提下缩短布线时长的效果。
37.本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
38.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
39.图1为现有的布局布线流程以及本发明实施例一中基于强化学习布线器在设计流程中的位置;
40.图2是本发明实施一中基于深度强化学习的布线器基础框架;
41.图3是传统fpga布线资源图;
42.图4是本发明实施一中fpga布线器训练流程中经验重放部分过程图。
具体实施方式
43.应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
44.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。
45.在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
46.强化学习是一种智能体(agent)在环境中不断探索并针对之前的探索行为进行学习,从而改变选择的策略进而使得最终得到的结果奖励程度最大的一种方法。其本质也是在于探索、回放、学习经验。在借鉴了传统pathfinder思想的基础上,通过强化学习的方式解决fpga布线问题,就可以将线上迭代问题转移至线下训练过程,从而获得布线模型,用于指导fpga布线过程。
47.实施例一
48.如图1-2所示,本实施例公开了一种基于深度强化学习的fpga布线器布线方法,包括:
49.提取布线资源图确定智能体所处的布线环境、状态空间;
50.根据智能体当前的状态空间和布线环境,探索可采取的布线动作信息;
51.通过可采取的布线动作信息更新状态空间以及可采取的布线动作信息对应的奖励值或惩罚值;
52.建立布线调控的强化学习模型,根据当前的状态空间、可采取的布线动作信息、布线动作信息对应的奖励值或惩罚值、以及更新后的状态空间放入经验池,利用经验池对所建立的强化学习模型进行训练更新,得到最优的布线。
53.如图3所示,布线资源图包含了fpga芯片中所有的连接方式,如端口与线轨之间的连接、线轨与开关盒之间的连接,将所有布线资源抽象为图中的节点和有向边,节点代表了逻辑块的输入输出引脚以及路由资源中的线轨,而有向边代表开关盒中的可编程开关。在一些fpga结构中,开关盒中可能会采用双向开关的结构,使用一对有向边的方式来描述这种结构,虽然这种方式可以满足线轨双向的通路,但是在实际使用过程中,一条线轨仍然满足只允许单一线网使用的约束,对训练过程不存在影响。一般来说,一个节点容量为1,表明在合法的路由中只能有一个线网任务占用,即一个信号通过该节点,汇聚节点可以有多个线网任务使用,源于多线轨可连接至同一漏端,而漏端被等效成了sink端口,在实际使用中,不需要考虑漏端的容量,只考虑是否能够到达。
54.在本实施例中,布线资源图的提取用于确定智能体所处环境、状态空间和动作空间。
55.在强化学习布线器的环境设计中,主要包含了布线信息解析,状态空间设计,动作执行标准,线网任务切换,布线资源维护等部分。
56.fpga的路由问题从根本上来说就是确定如何将一个可配置逻辑单元clb的查找结果连通至另一个或几个可配置逻辑单元clb或i/o模块中。在输送过程中,可配置逻辑单元clb的查找结果由连接盒cbs连接至具体线轨,线轨经由开关盒sbs完成线轨间的传输,当到达目的端口即漏端时,作为查找地址或是输出完成单线网的布线。
57.不同于传统拥塞协商方式,本实施例离线阶段完成结构信息和任务信息的提取。
58.线网信息即任务信息,通过vtr工具可以获得具体的端到端问题抽象,其内容代表可编程逻辑块clb的输出端口需要连接到另一个可编程逻辑块clb的输入端口或是边缘i/o,这一部分代表了电路之间的连接目标。布线问题研究的焦点始终在于线轨的选择,端口本身无实际代价意义。
59.线网任务在到达结束端口所能连接到的线轨时,就会检查该线轨对应的端口以确定是否结束布线任务,在下文中提到了sink端口会一对一的对应到input端口,线网任务以input端口作为结束端口时,在到达该线轨却只能先检查到sink端口,如果不将sink端口事先替换input端口就只能将sink作为线轨来处理,这显然对于一个确定连接的端口来说并不合适,会平白增加训练量,因此将原有的线轨与sink端口的对应关系事先改变为input端口与线轨的对应关系,即对该训练任务无实际意义的sink端口省略。
60.结构信息即fpga的逻辑结构信息,主要包含source、output/input、channel、sink共5种类型。source代表当前所在clb模块,包含标号、坐标信息、可连接出端口数量、具体出端口标号。出端口中包含了标号、坐标信息、可连接线轨数、具体线轨标号。channel代表具体的线轨,在孤岛式fpga架构下包含两种类型channelx和channely,分别代表水平方向和垂直方向的线轨,线轨的信息包含线轨标号、线轨坐标信息、可连接线轨数、可到达sink端口以及input端口。sink代表进入端,信号可由sink端进入逻辑块中,即端到端布线问题的终点,由于sink端口与input端口是一一对应的,每一个input端口只对应一个sink端口,因此该单出口通道在算法中将被省略,在布线过程中,每到达一个新的线轨时就检查其扇出
列表,当发现目标sink号时布线任务将结束。线网信息和结构信息通过抽象作为fpga布线器的输入文件,即可模拟fpga的布线流程。
61.fpga布线流程的结果代表最终的布线结果,布线器将会生成可执行文件返回给vtr工具,该过程完成了fpga的布线仿真。结果中包含具体的线网使用的线轨情况,布线成功率以及布线的时间代价,通过衡量布线成功率以及布线时间代价的优劣来判断布线结果的好坏。
62.状态空间代表当前智能体所处线轨,主要包含当前线轨坐标信息,终点位置信息,可采取动作信息以及当前状态下所需周边布线资源信息。线轨坐标信息用于判定智能体当前所处线轨位置,终点位置信息代表布线目标以及结束条件,坐标信息包含x轴、y轴上的起点和终点共四个坐标值。可采取动作信息包含当前状态的可执行动作数量以及具体动作的标号值,用于完成采取动作后的状态转移。周边布线资源信息用于维护周边线轨占用情况,使得智能体能够在训练过程中感知周围情况,在同一轮训练过程中,当其余线网任务已经占据了部分线轨时,智能体所采取的动作与没有其他线网任务时是不同的,因此需要在状态空间中增加对周边情况的感知以求获得不同场景下的合适结果。感知的范围对于不同规模的fpga来说各有不同,在不同线轨宽度、不同fpga结构文件的实验条件下,布线框中包含的fpga布线资源有所区分,当出现更大规模的fpga电路布线任务时,通过对资源进行布线框级别的分割,只需要感知布线框级别的资源信息用于压缩状态空间的大小。
63.对于布线框的设计主要有两个部分,一个部分是状态空间中对周围线网使用情况的感知。状态空间中包含周围线网的使用信息,这个信息不能包含所有的内容,通过限制感知宽度来降低状态空间的大小。第二个部分在于动作空间的限制,动作空间不能无限的延长,将从source点横纵坐标到sink点横纵坐标所围成的二维矩形作为起始布线区域,在此基础上横纵坐标分别向外延伸frame_size个单位长度作为布线框(frame_size取决于fpga芯片结构大小),所有动作探索需符合此限制条件,以此加快训练过程的同时给予布线器一定的自由探索空间。
64.动作空间的设置受开关盒结构的制约,不同结构的开关盒动作空间设置存在差异,智能体处在某一状态空间时,由于fpga不同于asic电路,布线资源已经在物理层级实际存在,动作空间在状态空间确定时也已经确定。在孤岛式fpga结构中,在二维空间上动作空间分为前后左右四类,每类动作中根据通道宽度的不同划分为具体的线轨动作。
65.奖励和惩罚函数设置的好坏决定了智能体能否从探索过程中得到正确的反馈。在探索过程中,为了寻求更短更优的结果,在到达终点位置的前提下,每存在一步的冗余,就会对结果产生少量的负面影响,将每一次的非终点的状态推进给予-1的惩罚并累积,当到达终点位置时,给予智能体一个正向的激励,在小规模的实验电路中,这个奖励的设置为100。当智能体未能到达终点,而探索步数达到设定的上限时,智能体就会给予一个较大的负面惩罚,从而在之后的学习过程中尽可能的规避这些并不合适的选择。当智能体因为遇到拥塞而发生无路可走情况时,再给予智能体一个额外的惩罚,用于帮助智能体在感知周围线轨使用情况的前提下尽可能规避无路可走情况的发生。
66.经验重放是一种稳定经验概率分布的技术,分为存储和重放两个步骤,存储是将经验信息通过设定好的固定结构形式存放在经验池中,重放是指根据特定的规则将部分经验提取用于神经网络的学习。对于ddqn问题,样本的前后顺序是有关系的,需要打破这些数
据之间的关联进而使之满足独立同分布,另外,训练数据的利用应当更加高效,存在更多训练意义的样本应该得到更多的关注,以供训练阶段使用,从而使得智能体在学习经验的过程中效率更高。
67.在本实施例中,设置了经验池来满足经验重放的问题,在经验重放过程中,引入了基于优先级的经验重放策略,用于缓解过多失败案例所引起的收敛速度较慢的情况发生。
68.一种有效的解决方式是通过td误差去贪心选择更有作用的经验,通过信息量来衡量经验对训练过程积极作用的高低,如果通过贪心的方式去选择成功的案例,就会导致一些经验被频繁的使用,而有些经验始终无法得到训练,永远也不会被选到,这对训练来说也是无益的,而且对于每一条经验来说,是否对训练有积极作用是一个动态变化的指标,在不断的训练中,可能存在有些经验对于训练的作用是在不断改变的,通过静态的衡量经验的好坏并不能保证准确选择到适合训练的经验。
69.因此,在本实施中,采用基于优先级的方式通过频繁的更新来衡量td误差,利用优先级采样的方法,使得信息量比较高的经验被选择到的概率较大,但并不是说该经验必然被选中,信息量小的经验也有概率会被选中训练。这种方式基于比例优先级策略,采用未排序的树形结构来存储经验,以此来降低线性数据结构的复杂度。具体实现采用求和树sumtree结构,求和树sumtree是一颗二叉树,即对于所有节点来说最多只能存在两个子节点的一种树,对于一颗求和树来说,父节点的数值即所有子节点的和,而每一个叶子节点都指向一组经验数据,叶子节点数值即代表经验的优先度(priority),创建一个包含求和树sumtree和对应数据的内存对象,并完成经验优先级采样。
70.在本实施例中,使用神经网络来拟合q函数即q(s,a),其代表状态-动作价值,对于部分小规模线网任务来说,网络结构由3层全连接层构成,对应的隐藏层激活函数采用relu函数,针对fpga结构变化以及线网任务更复杂的情况,神经元数量以及神经网络结构也应随之变化。输入层的神经元分别对应n维状态,状态中包含坐标信息、可连接线轨、周围线轨情况等内容,包含了12维的固定状态以及根据fpga结构规模以及布线框大小而确定的布线占用状态,输出层代表m维动作空间,m取决于线轨与线轨之间的最大连通数,输出层每一个神经元代表一条对应的线轨,训练过程中通过q-现实向着q-target逼近的方式来获得q值。
71.需要说明的是,q-现实网络和q-target网络是模型中的两个神经网络,这两个网络的结构是完全相同的,输入都是状态信息,输出是对应动作个数的q值。增加一个神经网络的原因在于更加稳定的训练模型,q-现实的网络参数随着每一轮训练发生改变,而q-target的网络参数呈现阶段式的变化,使得在一定时间段内target值是不变的。总而言之,q-现实网络用于计算q值,q-target网络用于避免target值不断改变。
72.在训练迭代过程中,检测是否需要对q-target网络进行更新,在当前轮数对targrt_replace_iter参数求余数为0时,需要从q-现实网络中复制参数,q-target网络与q现实网络在网络结构上其实是一致的。在训练时,从经验池中一次性抽取batch_size个经验样本,通过均方损失函数对网络进行梯度下降更新。
73.通过上述训练方式,训练出的神经网络可以在智能体进行布线任务时做出行为决策,决定在当前状态下应当选择哪一个动作对应的线轨才能更好的完成线网任务。
74.对所建立的强化学习模型的训练过程中,从线网任务处理列表中选取第一个任务进行探索,选取第一个任务的扇出端作为开始节点,并初始化状态空间,当状态空间存在可
执行动作时,探索过程随机选取一条未拥塞线轨作为执行动作,并完成状态转移,更新当前线轨指针,同时在环境中更新线轨占用情况,避免在同一轮训练中出现线轨拥塞情况,当状态空间不存在可执行动作时,终止该任务布线并转移至下一布线任务。之后根据当前线轨指针以及环境状态构建新状态空间,并将该步探索的经验存放在经验池中,经验池中的每组经验中需要存放五组数据,分别为当前状态信息state,动作选择信息action,当前探索奖励信息reward,到达线轨状态信息next_state,是否完成当前布线任务标志is_done,五组数据用于训练过程。之后继续探索过程,直到到达当前线网任务结束条件,线网任务结束条件共分三类,第一类即智能体所处线轨可扇入至目标端口sink,当前探索任务结束,任务切换程序完成上下任务切换,第二类结束条件为当单轮探索步数超过最大探索步数时,即智能体探索方向有误或智能体探索内容对当前线网任务无积极作用时终止探索,第三类结束条件为智能体无路可走,即无可选择线轨继续探索时,可能发生于同一探索轮数的最终阶段,由于之前线网任务占据了某一局部的较多布线资源,而当前线网任务同样参与了局部竞争,从而导致局部线轨资源不足以完成之后探索。当线网达到终止条件后,重复上下任务切换过程,直到所有线网任务完成探索,从而完成一轮探索过程。在任务切换过程中,设置share_flag用于识别是否共享同一信号源,用于完成线轨复用操作。
75.如图4所示,布线器根据伊布西龙贪婪算法决定探索与训练的比例,在布线器执行初期,经验池中缺乏足量的布线经验,探索内容可能存在较多的失败案例,尽可能多的给予探索轮数,通过随机动作选取为经验池积累足量经验,随着迭代轮数的不断提高,经验池中积累的成功经验比例升高,根据基于优先级的经验回放策略对神经网络进行训练,并随着轮数增长逐渐提高根据网络获得的动作值训练比重,降低探索动作比重,在训练后期,布线器逐渐放弃探索过程,训练至最终结果。
76.根据伊布西龙贪婪算法选取执行动作,当随机数选取大于贪婪算法设置阈值时,动作选取来源于当前最大q值对应的动作,当随机数小于贪婪算法设置阈值时,动作选取为随机过程。
77.在模型训练初期,由于fpga布线资源丰富性的特点,探索空间较大,动作选择自由度较高,从而导致失败案例过多积累,为了加速训练过程,采取了预训练处理的方式,给予智能体一定程度的引导。在预训练处理过程中,削弱惩罚因子的程度,不关注失败案例以及布线代价,将布线器更多的注意力放在成功经验上,并且给予智能体一定的方向指引,使智能体尽量朝着基于智能体当前所处位置与终点位置的曼哈顿距离减小的方向去寻找,以此方式使得训练初期能够积累一定比例的成功经验,经过预处理训练后,进行正常的探索与训练过程,从而提高布线器训练效率。
78.实施例二
79.本实施例的目的是提供一种计算装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
80.实施例三
81.本实施例的目的是提供一种计算机可读存储介质。
82.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时执行上述方法的步骤。
83.实施例四
84.本实施例的目的是提供一种基于深度强化学习的fpga布线器布线系统,包括:
85.获取模块,其用于提取布线资源图确定智能体所处的布线环境、状态空间;
86.探索模块,其用于根据智能体当前的状态空间和布线环境,探索可采取的布线动作信息;
87.状态更新模块,其用于通过可采取的布线动作信息更新状态空间以及获得可采取的布线动作信息对应的奖励值或惩罚值;
88.模型训练模块,其用于建立布线调控的强化学习模型,根据当前的状态空间、可采取的布线动作信息、布线动作信息对应的奖励值或惩罚值、以及更新后的状态空间对所建立的强化学习模型进行训练更新,得到最优的布线。
89.以上实施例二、三和四的装置中涉及的各步骤与方法实施例一相对应,具体实施方式可参见实施例一的相关说明部分。术语“计算机可读存储介质”应该理解为包括一个或多个指令集的单个介质或多个介质;还应当被理解为包括任何介质,所述任何介质能够存储、编码或承载用于由处理器执行的指令集并使处理器执行本发明中的任一方法。
90.本领域技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本发明不限制于任何特定的硬件和软件的结合。
91.上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献