一种基于机器学习的FPGA自动调参优化方法及系统与流程

专利2022-06-29  70


本发明涉及fpga电路调参技术领域,尤其是涉及一种基于机器学习的fpga自动调参优化方法及系统。



背景技术:

随着芯片的集成度越来越高,使用传统手动布线的方式对高集成度的电路进行设计已经变得不现实,因此,集成电路的设计也越来越依赖eda工具;fpga作为通用处理器的替代芯片,在图像处理、大规模数据处理、高并发等领域得到了广泛应用。在fpga电路实现的过程中,一般由由开发人员设计电路逻辑以及相应的输入输出端口说明,然后经过综合、映射、布局、布线等步骤,这些步骤均交由eda软件完成。在eda软件中,为每个步骤提供了相应的参数,开发人员可以通过这些参数对eda软件的执行进行控制,以使得最终电路的性能得到优化。为使得布线生成的电路性能最优,需要开发人员调整每一步骤的参数,但随着eda软件的复杂度越来越高,参数的数量也越来越多,由这些参数组成的参数空间包含千亿级的参数组合(参数值组合),通过遍历枚举的方法求得最优的参数组合已不现实。针对这个问题,研究人员提出了自动调参的解决方案。

开源软件datuner便是自动调参方法的一个开源实现,datuner将庞大的参数空间划分成不同的子空间,将每个子空间看作一个种群,在每个种群之间进行迭代优化,最后收敛到最优种群。

但是在datuner执行的过程中,存在调参效率低下、耗时过长、程序执行时间不均匀、执行效率低等问题;通过分析发现,程序的大部分调参时间都消耗在了布线失败的情况下,布线失败时由于eda软件无法生成有效的可布线电路,eda软件会执行较多次数的迭代寻找可布线的路径,从而消耗了大量的布局布线时间。



技术实现要素:

本发明的目的在于至少克服上述一种技术不足,提出一种基于机器学习的fpga自动调参优化方法及系统。

一方面,本发明提供了一种基于机器学习的fpga自动调参优化方法,包括以下步骤:

在vtr参数空间中随机选取n组参数值组合,利用所述n组参数值组合通过vtr对电路执行综合、布局和布线流程,生成训练数据集,其中,n>1;

对所述训练数据集进行训练,得到基于电路布线的二分类回归模型;

选取参数空间中的参数值组合,利用所述基于电路布线的二分类回归模型,进行电路布线预测,若预测布线成功,则使用该参数值组合,通过vtr对电路执行综合、布局和布线流程,否则,不使用该参数值组合。

进一步地,对所述训练数据集进行训练,得到基于电路布线的二分类回归模型,具体包括,使用xgboost算法对训练数据集采用有监督的方式进行训练,得到基于电路布线的二分类回归模型。

进一步地,所述使用xgboost算法对训练数据集采用有监督的方式进行训练,具体包括,使用xgboost算法以所述参数值组合为特征向量,以电路布线结果为目标,对对训练数据集采用有监督的方式进行训练。

进一步地,所述基于机器学习的fpga自动调参优化方法还包括,将基于电路布线的二分类回归模型预测电路布线的逻辑回归概率值转换至[0,1]区间中,若转换后的概率值大于设定阈值,则判定预测布线成功,否则判定预测布线失败。

另一方面,本发明还提供了一种基于机器学习的fpga自动调参优化系统,包括训练数据集生产模块、模型训练模块和电路布线预测模块;

所述训练数据集生产模块,用于在vtr参数空间中随机选取n组参数值组合,利用所述n组参数值组合通过vtr对电路执行综合、布局和布线流程,生成训练数据集,其中,n>1;

所述模型训练模块,用于对所述训练数据集进行训练,得到基于电路布线的二分类回归模型;

所述电路布线预测模块,用于选取参数空间中的参数值组合,利用所述基于电路布线的二分类回归模型,进行电路布线预测,若预测布线成功,则使用该参数值组合,通过vtr对电路执行综合、布局和布线流程,否则,不使用该参数值组合。

进一步地,所述模型训练模块,对所述训练数据集进行训练,得到基于电路布线的二分类回归模型,具体包括,使用xgboost算法对训练数据集采用有监督的方式进行训练,得到基于电路布线的二分类回归模型。

进一步地,所述模型训练模块,使用xgboost算法对训练数据集采用有监督的方式进行训练,具体包括,使用xgboost算法以所述参数值组合为特征向量,以电路布线结果为目标,对对训练数据集采用有监督的方式进行训练。

进一步地,基于机器学习的fpga自动调参优化系统还包括预测布线判定模块,所述预测布线判断模块,用于将基于电路布线的二分类回归模型预测电路布线的逻辑回归概率值转换至[0,1]区间中,若转换后的概率值大于设定阈值,则判定预测布线成功,否则判定预测布线失败。

与现有技术相比,本发明的有益效果包括:通过在vtr参数空间中随机选取n组参数值组合,利用所述n组参数值组合通过vtr对电路执行综合、布局和布线流程,生成训练数据集;对所述训练数据集进行训练,得到基于电路布线的二分类回归模型;选取参数空间中的参数值组合,利用所述基于电路布线的二分类回归模型,进行电路布线预测,若预测布线成功,则使用该参数值组合,通过vtr对电路执行综合、布局和布线流程,否则,不使用该参数值组合;提高了调参效率,缩短了调参时间。

附图说明

图1是本发明实施例1所述的基于机器学习的fpga自动调参优化方法的流程示意图;

图2是本发明实施例1所述的vtr执行流程的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例1

本发明实施例提供了一种基于机器学习的fpga自动调参优化方法,其特征在于,包括以下步骤:

在vtr参数空间中随机选取n组参数值组合,利用所述n组参数值组合通过vtr对电路执行综合、布局和布线流程,生成训练数据集,其中,n>1;

对所述训练数据集进行训练,得到基于电路布线的二分类回归模型;

选取参数空间中的参数值组合,利用所述基于电路布线的二分类回归模型,进行电路布线预测,若预测布线成功,则使用该参数值组合,通过vtr对电路执行综合、布局和布线流程,否则,不使用该参数值组合。

需要说明的是,在datuner中,包含了开源的eda软件vtr作为综合、布局、布线工具,vtr执行流程的示意图,如图2所示;其中的odinii、abc和vpr分别是综合、映射、布局布线开源软件,设计者将编写的verilog源代码文件输入给odinii,odinii执行前端综合,然后输出初级网表文件给abc,由abc执行逻辑优化和逻辑映射,输出经过了优化的网表文件给vpr,由vpr执行打包、布局、布线过程,最终生成可布线的网表;此外,vpr还对最终生成的电路文件进行性能评估,得到相应的电路面积、能耗和电路最大频率;在上述过程中,由vpr执行的布局布线过程最为耗时,因此datuner的大部分执行时间都消耗在了布局布线过程中;

具体实施时,通过执行vtr生成训练数据集,生成数据集的运行环境为2.3ghzintelxeone5-2650v3处理器,8gb内存的机器,操作系统为linux,使用到的编程语言包括perl、python、shell脚本等;随机选取vtr参数空间中的参数值组合(包括25个参数),执行完整的“综合-布局-布线”流程,得出最终生成电路的性能以及布线是否成功,数据集的格式为route_success,parameter1,parameter2,parameter3,…,parameter25;共有26列,其中,前25列表示的是vtr中使用到的25个参数,最后一列代表本次电路的布线结果,0代表布线失败,1代表布线成功;vtr参数空间中25个参数,如表1所示,

表1

需要说明的是,25个参数的取值范围共同组成了vtr参数空间,表1中的“步骤”表明对应参数在vtr中执行的步骤,表1中所有参数都参与的取值,而形成了参数值组合,参数类型包括枚举或实数;随机选取的参数值组合,即为参数resyn、resyn2、resyn3取on或off,参数alpha_clustering在[0,1]之间取值,依次类推,随机选取25个参数值形成参数值组合。

优选的,对所述训练数据集进行训练,得到基于电路布线的二分类回归模型,具体包括,使用xgboost算法对训练数据集采用有监督的方式进行训练,得到基于电路布线的二分类回归模型。

优选的,所述使用xgboost算法对训练数据集采用有监督的方式进行训练,具体包括,使用xgboost算法以所述参数值组合为特征向量,以电路布线结果为目标,对对训练数据集采用有监督的方式进行训练。

具体实施时,得到训练数据集之后,使用机器学习方法对训练数据集训练模型,使用xgboost(extremegradientboosting)算法对训练数据集采用有监督(supervised)的方式进行训练,所述xgboost算法,包含的主要内容有模型、目标函数和参数(需要注意的是xgboost算法的参数和vtr的参数不同),所述模型是在给定特征向量x下如何预测目标y,这里特征向量x是为vtr中的25个参数,目标y是为电路布线的结果,可以认为目标y是关于特征向量x的函数,最简单的就是线性函数

上述xgboost算法中的参数指的权重系数wi组成的权重系数向量w,i=1,2...n,n为vtr参数的个数,n取25,目标函数一般由误差函数和正则项组成,基本形式如下

obj(θ)=l(θ) ω(θ)(2)

其中,obj(θ)为目标函数,l(θ)为误差函数,用来衡量训练误差;ω(θ)为正则化项,用来衡量泛化误差;通过合理地调整xgboost的参数l(θ)和ω(θ)可以防止模型过拟合和欠拟合;对所述训练数据集进行训练,得到基于电路布线的二分类回归模型,主要代码程序如下所示,

优选的,所述基于机器学习的fpga自动调参优化方法还包括,将基于电路布线的二分类回归模型预测电路布线的逻辑回归概率值转换至[0,1]区间中,若转换后的概率值大于设定阈值,则判定预测布线成功,否则判定预测布线失败。

一个具体实施例中,选取参数空间中的参数值组合,将得到的基于电路布线的二分类回归模型应用到datuner的执行过程中,由于使用的基于电路布线的二分类回归模型是一个二分类回归模型,得到的结果是逻辑回归的概率值,需要对概率值进行调整转换成相应的0~1值,使用0.5作为设定阈值,对参数值组合的结果进行划分,如果预测的概率值小于0.5,则表示此次布线失败,不再调用odinii、abc和vpr执行相应的综合布局布线流程,若概率值大于0.5,表明此次参数值组合使得布线成功的概率比较大,因此执行后续的综合布局布线流程。

实施例2

本发明实施例提供了一种基于机器学习的fpga自动调参优化系统,包括训练数据集生产模块、模型训练模块和电路布线预测模块;

所述训练数据集生产模块,用于在vtr参数空间中随机选取n组参数值组合,利用所述n组参数值组合通过vtr对电路执行综合、布局和布线流程,生成训练数据集,其中,n>1;

所述模型训练模块,用于对所述训练数据集进行训练,得到基于电路布线的二分类回归模型;

所述电路布线预测模块,用于选取参数空间中的参数值组合,利用所述基于电路布线的二分类回归模型,进行电路布线预测,若预测布线成功,则使用该参数值组合,通过vtr对电路执行综合、布局和布线流程,否则,不使用该参数值组合。

优选的,所述模型训练模块,对所述训练数据集进行训练,得到基于电路布线的二分类回归模型,具体包括,使用xgboost算法对训练数据集采用有监督的方式进行训练,得到基于电路布线的二分类回归模型。

优选的,所述模型训练模块,使用xgboost算法对训练数据集采用有监督的方式进行训练,具体包括,使用xgboost算法以所述参数值组合为特征向量,以电路布线结果为目标,对对训练数据集采用有监督的方式进行训练。

优选的,所述基于机器学习的fpga自动调参优化系统还包括预测布线判定模块,所述预测布线判断模块,用于将基于电路布线的二分类回归模型预测电路布线的逻辑回归概率值转换至[0,1]区间中,若转换后的概率值大于设定阈值,则判定预测布线成功,否则判定预测布线失败。

本发明公开了一种基于机器学习的fpga自动调参优化方法及系统,通过在vtr参数空间中随机选取n组参数值组合,利用所述n组参数值组合通过vtr对电路执行综合、布局和布线流程,生成训练数据集;对所述训练数据集进行训练,得到基于电路布线的二分类回归模型;选取参数空间中的参数值组合,利用所述基于电路布线的二分类回归模型,进行电路布线预测,若预测布线成功,则使用该参数值组合,通过vtr对电路执行综合、布局和布线流程,否则,不使用该参数值组合;提高了调参效率,缩短了调参时间;使得调参程序在很短的时间内就能够收敛到最优的解集。

本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。

以上所述本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所做出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。


技术特征:

1.一种基于机器学习的fpga自动调参优化方法,其特征在于,包括以下步骤:

在vtr参数空间中随机选取n组参数值组合,利用所述n组参数值组合通过vtr对电路执行综合、布局和布线流程,生成训练数据集,其中,n>1;

对所述训练数据集进行训练,得到基于电路布线的二分类回归模型;

选取参数空间中的参数值组合,利用所述基于电路布线的二分类回归模型,进行电路布线预测,若预测布线成功,则使用该参数值组合,通过vtr对电路执行综合、布局和布线流程,否则,不使用该参数值组合。

2.根据权利要求1所述的基于机器学习的fpga自动调参优化方法,其特征在于,对所述训练数据集进行训练,得到基于电路布线的二分类回归模型,具体包括,使用xgboost算法对训练数据集采用有监督的方式进行训练,得到基于电路布线的二分类回归模型。

3.根据权利要求2所述的基于机器学习的fpga自动调参优化方法,其特征在于,所述使用xgboost算法对训练数据集采用有监督的方式进行训练,具体包括,使用xgboost算法以所述参数值组合为特征向量,以电路布线结果为目标,对对训练数据集采用有监督的方式进行训练。

4.根据权利要求1所述的基于机器学习的fpga自动调参优化方法,其特征在于,还包括,将基于电路布线的二分类回归模型预测电路布线的逻辑回归概率值转换至[0,1]区间中,若转换后的概率值大于设定阈值,则判定预测布线成功,否则判定预测布线失败。

5.一种基于机器学习的fpga自动调参优化系统,其特征在于,包括训练数据集生产模块、模型训练模块和电路布线预测模块;

所述训练数据集生产模块,用于在vtr参数空间中随机选取n组参数值组合,利用所述n组参数值组合通过vtr对电路执行综合、布局和布线流程,生成训练数据集,其中,n>1;

所述模型训练模块,用于对所述训练数据集进行训练,得到基于电路布线的二分类回归模型;

所述电路布线预测模块,用于选取参数空间中的参数值组合,利用所述基于电路布线的二分类回归模型,进行电路布线预测,若预测布线成功,则使用该参数值组合,通过vtr对电路执行综合、布局和布线流程,否则,不使用该参数值组合。

6.根据权利要求5所述的基于机器学习的fpga自动调参优化系统,其特征在于,所述模型训练模块,对所述训练数据集进行训练,得到基于电路布线的二分类回归模型,具体包括,使用xgboost算法对训练数据集采用有监督的方式进行训练,得到基于电路布线的二分类回归模型。

7.根据权利要求6所述的基于机器学习的fpga自动调参优化系统,其特征在于,所述模型训练模块,使用xgboost算法对训练数据集采用有监督的方式进行训练,具体包括,使用xgboost算法以所述参数值组合为特征向量,以电路布线结果为目标,对对训练数据集采用有监督的方式进行训练。

8.根据权利要求5所述的基于机器学习的fpga自动调参优化系统,其特征在于,还包括预测布线判定模块,所述预测布线判断模块,用于将基于电路布线的二分类回归模型预测电路布线的逻辑回归概率值转换至[0,1]区间中,若转换后的概率值大于设定阈值,则判定预测布线成功,否则判定预测布线失败。

技术总结
本发明公开一种基于机器学习的FPGA自动调参优化方法,属于FPGA电路调参技术领域,解决了现有技术中调参效率低下、耗时过长的问题。一种基于机器学习的FPGA自动调参优化方法,在VTR参数空间中随机选取n组参数值组合,利用所述n组参数值组合通过VTR对电路执行综合、布局和布线流程,生成训练数据集,其中,n>1;对所述训练数据集进行训练,得到基于电路布线的二分类回归模型;选取参数空间中的参数值组合,利用所述基于电路布线的二分类回归模型,进行电路布线预测,若预测布线成功,则使用该参数值组合,通过VTR对电路执行综合、布局和布线流程,否则,不使用该参数值组合。提高了调参效率,缩短了调参时间。

技术研发人员:徐宁;徐永豪
受保护的技术使用者:武汉理工大学
技术研发日:2020.01.06
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-55028.html

最新回复(0)