一种基于图强化学习的FPGA互联资源测试方法转让专利

申请号 : CN202210021855.7

文献号 : CN114371970B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 阮爱武杨胜江范樱宝

申请人 : 电子科技大学

摘要 :

本发明属于FPGA测试技术,具体涉及一种基于图强化学习的FPGA互联资源测试算法。本发明改进了现有基于强化学习和深度强化学习的FPGA互联资源测试方法的缺点,即神经网络不具迁移性的缺点。本发明借助图神经网络提取互联资源图的隐藏特征,再利用深度强化学习优化配置策略,在本发明中,将其称为图强化学习。本发明方法具备迁移性与通用性,已训练收敛的神经网络可以应用到任何FPGA芯片的互联资源测试配置向量的生成中,同时对于所有FPGA芯片都可采用该方法。本发明对FPGA互联资源的测试成本较低,不需要专家人工找寻测试配置,同时已收敛的神经网络可以快速应用到任何FPGA芯片的互联资源测试中,并且生成FPGA测试配置的过程完全是自动化的。

权利要求 :

1.一种基于图强化学习的FPGA互联资源测试方法,其特征在于,包括下述步骤:

1)将FPGA互联资源抽象为互联资源图:在互联资源图中,节点表示FPGA互联资源中的物理连线,边表示FPGA互联资源中的可编程互联点,同时每个节点有节点属性,每条边都有边属性;

2)在互联资源图上,确定激励发生器的输出所在节点,以及响应回收器的输入所在节点;

3)构建图强化学习中智能体的神经网络结构,用于估计动作值函数q(s,a),智能体的神经网络结构包括图神经网络和深度强化学习网络,图神经网络包括输入层、隐藏层和图神经网络输出层,深度强化学习网络包括动作状态层、全连接网络和Q值输出,在图神经网络中,Xi表示节点的输入特征,Ei表示边的输入特征,Zi表示节点的隐藏特征,Li表示节点特征的通道数,灰色节点是智能体所在位置节点,除此之外的节点为白色节点,在深度强化学习网络中,动作状态层是为了提取环境的隐藏状态和动作向量,环境的隐藏状态即为智能体所在节点的隐藏特征,动作向量是由智能体所在节点、选择的边和所到节点的特征表示拼接而成,动作向量的个数取决于智能体所在节点出边的条数,全连接网络用于计算隐藏状态s和动作向量ai对应的价值q(s,ai),全连接网络被调用n次,依次计算q(s,a0),q(s,ai),...,q(s,an);

4)构建布线环境,布线环境用于和智能体交互,并实现互联资源的布线,布线环境的设计包括环境状态、环境规则、环境动作集和奖励规则,环境状态即为互联资源图,互联资源图中包含了布线所需的所有信息,环境规则是指概率分布P(St+1|St=st,A=at),即环境当前状态为st的情况下,智能体对环境施加了动作at,环境状态根据概率分布P(St+1|St=st,A=at)跳转到下一个状态st+1,环境动作集定义为当前智能体所在节点的所有出边,因此智能体在不同的节点就对应有不同数量的可选动作,奖励规则是指概率分布P(Rt|St=st,At=at),即环境当前状态为st的情况下,智能体对环境施加了动作at,环境根据概率分布P(Rt|St=st,At=at)对智能体的行为做出评价,即奖励值rt;

5)在训练过程中,优化更新图强化学习神经网络参数,首先产生随机互联资源图,保证训练环境具有多样性,能够更全面地训练图强化学习神经网络,其次构建训练环境,根据互联资源图构造出图强化学习方法中的环境,用于训练图强化学习神经网络,训练环境也是布线环境,只是该布线环境用于训练智能体,随后智能体和训练环境不断交互,在该过程中智能体中神经网络参数得到优化更新,当一个训练回合结束后,开始下一轮训练,直到网络收敛;

6)在应用过程中,直接使用训练过程中已经收敛的网络参数,在互联资源图中找出最优测试布线。

2.如权利要求1所述的基于图强化学习的FPGA互联资源测试方法,其特征在于,所述步骤3)中,图神经网络包括GCN、GAT,深度强化学习网络包括DQN、A3C、PPO、DDPG。

说明书 :

一种基于图强化学习的FPGA互联资源测试方法

技术领域

[0001] 本发明属于FPGA测试技术,具体涉及一种基于图强化学习的FPGA互联资源测试方法。

背景技术

[0002] 现场可编程逻辑门阵列(Field Programmable Gate Array,以下简称FPGA),作为数字集成电路的重要一员,因FPGA有丰富的逻辑资源、快速而灵活的可编程能力,以及完善的自动化集成开发环境,被广泛应用于集成电路设计开发的多个环节中。然而,随着FPGA集成度的不断增加,内部结构也越加复杂,为达到灵活的可编程能力所需构建的互联资源网络也更加庞大,互联资源的面积在整个芯片中的比重不断增加,互联资源的故障发生率也随之提高。工程界对FPGA内部互联资源测试技术的需求变得愈加急迫,高效的布线算法是FPGA互联资源测试中关键的一环。
[0003] 根据FPGA内部包含的不同资源,相应地有针对不同资源的测试理论和方案,包括对可编程输入输出单元(Input  Output  Block,以下简称IOB)、可编程逻辑块(Configurable Logic Block,以下简称CLB)、块存储单元(BlockRAM,以下简称BRAM)等逻辑资源的测试,以及对互联资源(Interconnect Resource,以下简称IR)的测试。相对于逻辑资源,互联资源在千万门以上的FPGA中所占比重已经超过了90%,因而出现故障的频率也逐渐增加,配置和测试难度也更大。
[0004] 目前FPGA互联资源的测试面临四大挑战,即测试方法应该是通用和可迁移的、与FPGA的阵列大小无关、可重用且利于配置的自动产生、以及测试时间尽量短。
[0005] 文献(A  Routability  Aware  Algorithm for  Both  Global  and LocalInterconnect Resource Test and Diagnosis of Xilinx SRAM‑FPGAs)利用图论中二部图着色的理论方法,实现了同时对局部和全局互联资源的测试,总体测试覆盖率大幅增加,但存在配置理论和实现步骤复杂、局部互联资源的覆盖效果不佳、测试方案在不同芯片间的迁移性不强等缺点。文献(Ruan A,Shi A,Qin L,et al.A Reinforcement Learning‑Based Markov‑Decision Process(MDP)Implementation for SRAM FPGAs[J])利用强化学习算法实现了FPGA互联资源的高覆盖率测试,但是强化学习算法的处理能力并不足以应对阵列规模大的FPGA芯片。文献(一种FPGA互联资源的优化配置生成方法与流程[P],CN108241322B)利用深度强化学习算法实现了针对大规模FPGA互联资源的测试,值得一提的是,文献中用卷积神经网络(Convolutional Neural Network,以下简称CNN)提取互联资源图对应邻接矩阵的特征,再结合深度强化学习(Deep Reinforcement Learning,以下简称DRL),训练出了一个神经网络模型,能够在特定的互联资源图中找出最优的测试配置。但是邻接矩阵属于非欧几里得数据结构,CNN并不擅长处理非欧数据结构的数据,这将导致训练的网络不能迁移到其他型号FPGA芯片的测试中。同一FPGA芯片互联资源图的具有不同邻接矩阵,在不同邻接矩阵的情况下,得到的神经网络都可能无法正常工作。因此,该文献中的神经网络模型几乎不具有迁移性。
[0006] 传统互联资源测试的布线生成方法主要针对特定的芯片结构特征,依赖于专家知识,主要是靠手动布线配置,这种测试方法测试效率低,配置工作量大、覆盖率不高,且不具备通用性,测试时间过长,往往无法满足现今的超大规模芯片的测试要求。近几年也涌现一些借助机器学习算法实现通用FPGA测试方法,从方法学上具有通用性,但是在该方法中神经网络的迁移性很差,即针对不同的FPGA芯片都需要重新训练网络。由于神经网络的训练过程十分消耗时间和计算资源,神经网络的训练成本也十分高昂,因此,尽量避免频繁对神经网络进行训练。

发明内容

[0007] 这些布线生成方法的局限性正是本发明解决的主要问题,即本发明提出了一种基于图强化学习的针对FPGA互联资源测试的布线方法,该方法具有迁移性、通用性、高效性。图强化学习中智能体采用GNN+DRL的神经网络结构,即结合图神经网络(Graph NeuralNetwork,以下简称GNN)和深度强化学习(Deep Reinforcement Learning,以下简称DRL),借助图神经网络提取图(Graph)的特征,再利用深度强化学习优化配置策略,在本发明中,将其称为图强化学习(Graph Reinforcement Learning,以下简称GRL)。图神经网络是专门为提取非欧几里得数据结构的特征而提出的一种神经网络,目前出现的图神经网络算法包括GCN(Graph Convolutional Network,以下简称GCN)、GAT(Graph Attention Network,以下简称GAT)、GraphSAGE(Graph Sample and Aggregate Network,以下简称GraphSAGE)等。图神经网络并不是关注邻接矩阵的局部信息,而是关注邻接矩阵表示的拓扑关系中的局部信息,即相邻节点之间的局部关系,这样的神经网络才真正着眼于提取互联资源图的拓扑特征,不再针对单一互联资源图,使得整个网络模型在图上具有很强的迁移性。
[0008] 本发明的目的在于针对现有FPGA互联资源测试技术的缺陷,提供一种用于生成FPGA互联资源测试配置电路的布线方法,在该方法中,涉及的图强化学习神经网络并不需要重复训练,即可用于其他型号FPGA芯片互联资源测试配置的生成中。本发明相对与其他FPGA互联资源测试配置生成方法的优势明显,不需要为每个型号FPGA芯片的测试配置耗费大量的人力物力,只要神经网络训练好后,可以将该网络应用到不同型号FPGA芯片的测试配置生成中。因此,本发明兼顾迁移性、通用性、自动化。具有迁移性的布线算法可以大幅降低测试成本,缩短测试周期,在工程上具有重大意义。
[0009] 为达到上述目的,本发明采用的技术方案为:
[0010] 1)将互联资源表示为互联资源图。
[0011] 2)根据FPGA互联资源测试的具体方法,在互联资源图上,确定激励发生器的输出所在节点,以及响应回收器的输入所在节点。针对FPGA互联资源测试的布线方法需要在互联资源图上,寻找高效覆盖的被测线路,即用尽量少的配置覆盖图中尽量多的边。
[0012] 3)构建图强化学习中智能体的网络结构,用于估计动作值函数q(s,a)。
[0013] 4)构建布线环境,布线环境用于和智能体交互,并实现互联资源的布线。布线环境的设计主要包括环境状态、环境规则、环境动作集和奖励规则。
[0014] 5)在训练过程中优化更新图强化学习神经网络参数,直到网络收敛。
[0015] 6)在应用过程中,直接使用训练过程中已经收敛的网络参数,在互联资源图中找出最优测试布线。
[0016] 本发明的优点主要包括:
[0017] 1、本发明方法具备通用性,互联资源抽象为互联资源图的方法适用于所有FPGA;
[0018] 2、本发明方法具备迁移性,训练出的神经网络可以直接应用到其他的FPGA芯片的互联资源测试中,并不需要重复训练;
[0019] 3、本发明采用了图强化学习方法,能直接在互联资源图上学习布线,优化测试布线的同时,能够将神经网络泛化到其他互联资源图中;
[0020] 4、本发明方法对FPGA互联资源的测试成本较低,不需要专家人工找寻最优测试配置,同时训练出来的网络模型可以快速应用到新的FPGA测试中,并且FPGA测试配置向量的生成过程完全是自动化的。

附图说明

[0021] 图1为FPGA内部互联资源连接关系示例。
[0022] 图2为互联资源图示例。
[0023] 图3为FPGA互联资源测试的三要素。
[0024] 图4为图强化学习网络结构。
[0025] 图5为基于图强化学习的针对FPGA互联资源测试布线方法的总体框架。
[0026] 图6为图强化学习网络训练迭代过程。

具体实施方式

[0027] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明做进一步详细说明:
[0028] 1)将互联资源抽象为互联资源图。FPGA内部互联资源的连接关系示例见图1,将FPGA互联资源连接关系抽象为一张数学概念上的图(Graph),该图被称为互联资源图,如图2,节点(node)表示FPGA互联资源中的物理连线(Physical wire),边(edge)表示FPGA互联资源中的可编程互联点(Programmable Interconnection Point,以下简称PIP)。同时每个节点有节点属性(Node attributes),每条边都有边属性(Edge attributes),这些属性信息随着工程人员具体实现细节而有所不同,例如,边的属性信息可以表征该边表示的可编程互联点是否已被测试。互联资源和互联资源图之间是等价关系。在图2中,圆圈表示物理连线;虚线箭头表示可编程互联点;白色长条表示节点属性,即物理连线的属性信息;灰色长条表示边属性,即可编程互联点的属性信息。
[0029] 2)根据FPGA互联资源测试的具体方法,在互联资源图上,确定激励发生器的输出所在节点,以及响应回收器的输入所在节点。FPGA互联资源测试的三要素包括激励发生器、被测线路和响应回收器,如图3所示。激励发生器产生激励信号,响应回收器采样被测线路上传输的信号,被测线路的布线问题正是本发明要解决的问题,即在激励发生器的输出和相应回收器的输入之间找寻最优测试布线的问题。激励发生器的输出一定是FPGA中输入输出模块或者逻辑模块的输出引脚,响应回收器的输入一定是输入输出模块或者逻辑模块的输入引脚,这些引脚均为互联资源图中节点。
[0030] 3)构建图强化学习中智能体的网络结构,用于估计动作值函数q(s,a)。智能体的神经网络结构如图4所示,包括图神经网络和深度强化学习,图神经网络包括输入层、隐藏层和图神经网络输出层,深度强化学习包括动作状态层、全连接网络和Q值输出。在图神经网络中,Xi表示节点的输入特征,Ei表示边的输入特征,Zi表示节点的隐藏特征,Li表示节点特征的通道数,灰色节点是智能体所在位置节点,除此之外的节点为白色节点。在深度强化学习网络部分,动作状态层是为了提取了环境的隐藏状态和动作向量,环境的隐藏状态即为智能体所在节点的隐藏特征,动作向量是由智能体所在节点、选择的边和所到节点的特征表示拼接而成。动作向量的个数取决于智能体所在节点出边的条数。全连接网络用于计算隐藏状态s和动作向量ai对应的价值q(s,ai),全连接网络被调用n次,依次计算q(s,a0),q(s,ai),...,q(s,an)。
[0031] 4)构建布线环境,布线环境用于和智能体交互,并实现互联资源的布线。布线环境的设计主要包括环境状态、环境规则、环境动作集和奖励规则。环境状态即为互联资源图,互联资源图中包含了布线所需的所有信息。环境规则是指概率分布P(St+1|St=st,A=at),即环境当前状态为st的情况下,智能体对环境施加了动作at,环境状态根据概率分布P(St+1|St=st,A=at)跳转到下一个状态st+1。环境动作集定义为当前智能体所在节点的所有出边,因此智能体在不同的节点就对应有不同数量的可选动作。奖励规则是指概率分布P(Rt|St=st,At=at),即环境当前状态为st的情况下,智能体对环境施加了动作at,环境根据概率分布P(Rt|St=st,At=at)对智能体的行为做出评价,即奖励值rt。
[0032] 5)在训练过程中,优化更新图强化学习神经网络参数,直到网络收敛。基于图强化学习的布线算法的训练过程如图5所示,首先产生随机互联资源图,这一步是为了让训练环境具有多样性,能够更全面地训练图强化学习网络模型。其次,构建训练环境,根据互联资源图构造出图强化学习算法中的环境,用于训练图强化学习网络模型。训练环境也是布线环境,只是该布线环境用于训练智能体。随后,智能体和训练环境不断交互,在该过程中智能体中神经网络参数得到优化更新。当一个训练回合结束后,开始下一轮训练,直至网络收敛。回合结束是指智能体在环境中达到目标,即达到期望的覆盖率,或者智能体违背环境规则导致环境需要被重置。最后,当智能体的神经网络收敛后,便可应用于生成待测FPGA芯片互联资源的测试配置。
[0033] 6)在应用过程中,直接使用训练过程中已经收敛的网络参数,在互联资源图中找出最优测试布线。基于图强化学习的布线算法的应用过程如图5所示,首先产生待测FPGA的互联资源图;其次,构建应用环境,根据互联资源图构造出图强化学习算法中的环境,用于解决待测FPGA互联资源测试的布线问题。应用环境也是布线环境,只是该布线环境用于求解待测FPGA的布线问题。随后,智能体和应用环境不断交互,智能体和应用环境的交互轨迹即为最优布线方案。此时,智能体神经网络的参数复制于训练过程中已收敛的网络参数。最后,最优配置方案被转换为待测FPGA配置电路,并转为可下载到FPGA中的配置向量,用于互联资源的测试。
[0034] 7)图强化学习网络训练迭代过程如图6所示,初始状态s0的互联资源图是随机生成的,智能体输入状态s0,输出当前最优动作a0,环境状态依据环境规则P(St+1|St=s0,At=a0)跳转到状态s1,环境依据奖励规则P(Rt|St=s0,At=a0)给智能体当前的行为做出评价,即奖励r0。此时智能体获得一条决策轨迹,即训练样例(s0,a0,r0,s1),智能体根据训练样例优化更新其中的神经网络参数。同理,智能体在环境状态s1下,做出决策a1,获得一条决策轨迹(s1,a1,r1,s2),智能体根据这些决策轨迹更新优化神经网络参数,依次不断迭代更新参数。
[0035] 上述实施例已经充分说明了本发明的必要技术内容,普通技术人员能够依据说明加以实施,故不再赘述其他技术细节。
[0036] 以上所述,仅是本发明的较佳实施方法而已,并非对本发明作任何形式的限制。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围的情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出可行的变动和修饰。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施方法所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。