编译预测模型的生成方法、编译方法与流程

未命名 09-15 阅读:90 评论:0
1.本发明涉及程序代码的编译的
技术领域
:,尤其涉及一种可对软件描述语言编写的设计和/或硬件描述语言编写的设计进行高效编译的编译方法及对应的编译预测模型的生成方法。
背景技术
::2.在电路、电气组件、半导体集成电路领域中,设计可以通过程序代码进行描述,再被编译以生成虚拟的设计,可在虚拟的设计中进行测试、验证等各种应用工作。3.例如,在半导体集成电路领域中,通过编译硬件描述语言编写的设计,在现场可编程逻辑门阵列(fpga)中模拟电路设计,然后可以在模拟出来的电路设计上进行测试验证等工作。4.在fpga编译过程中,通常包含综合、技术映射、布局布线等步骤,编译过程中的最突出痛点就是编译时间长和编译失败(如信号传输通道拥塞、时序违例等)。针对一个给定的设计,合适的编译参数可一定程度的减少编译时间,提升编译成功率。5.常规fpga应用中,通常使用默认的编译参数进行fpga工程编译,默认的编译参数一般是fpga厂商提供的一种平衡编译策略,可满足多数设计的编译需求。但是该方案并未针对设计进行针对性的分析调整,在编译速度和成功率上表现一般,在逻辑资源多、时序要求高的设计中很容易出现编译时间过长甚至是编译失败的情况。6.虽然上述主要是以fpga领域为例进行了说明,但是除了fpga领域以外,其他电路、电气组件、半导体集成电路领域也是如此,均存在编译针对性不强因而编译效率不高的技术问题。7.为了提高编译效率、编译成功率,现有技术中也有采用了机器学习的方法,但是现有技术中机器学习的方法仅仅只针对网表信息,提高预测模型精度的手段单一,无法有效提升编译效率和编译成功率。8.因此,迫切需要一种能在有限的时间成本内可实现提升编译效率和成功率的编译预测模型的生成方法。技术实现要素:9.为了解决现有技术中编译效率不高的技术问题,本发明提出了一种编译预测模型的生成方法、编译方法。10.本发明提出的编译预测模型的生成方法,包括:11.基于不同设计样本的不同的编译前的设计特征、各编译前的设计特征对应的编译策略及编译效果进行机器学习;12.针对编译效果不符合用户需求的设计样本,总结对应的编译困难类型,同时对其编译过程中的实时设计特征进行分析和提取,得到编译困难类型对应的实时设计特征;13.基于不同设计样本的不同的实时设计特征、各实时设计特征对应的编译困难类型、编译困难类型对应的编译策略及编译效果进行机器学习;14.针对编译结果不符合用户需求的设计样本,总结对应的编译失败类型,同时对编译结果中的结果特征进行分析和提取,得到编译失败类型对应的结果特征;15.基于不同设计样本的不同的结果特征、各结果特征对应的编译失败类型、编译失败类型对应的编译策略及编译效果进行机器学习;16.基于所有的机器学习生成编译预测模型。17.进一步,针对编译前的各设计特征、实时设计特征、编译困难类型、编译失败类型均准备不同种类的设计样本,且每种种类的设计样本的数量大于等于预设数量。18.进一步,每一套编译策略包括至少一个编译参数。19.进一步,所述编译效果包括:编译时间、编译性能、编译面积当中的至少一种。20.进一步,所述设计样本为电路设计、电气组件设计、半导体集成电路设计当中的任意一种。21.进一步,当所述设计样本为fpga中的电路设计时,编译过程中的实时设计特征包括:编译工程所占用的fpga资源的使用量、编译工程的fpga之间的传递信号数量、编译工程的fpga之间的互连拓扑结构、编译工程的高速接口的使用情况、编译工程的时钟网络的时钟约束信息当中的至少一种。22.进一步,当所述设计样本为fpga中的电路设计时,对编译结果中的结果特征进行分析和提取包括对是否存在时序违例的结果特征进行分析和提取。23.本发明提出的编译方法,包括:24.采用上述技术方案所述的编译预测模型的生成方法生成编译预测模型;25.对目标设计进行编译之前,提取所述目标设计编译前的设计特征输入至所述编译预测模型中,从输出的编译策略中选择符合用户需求的编译效果的n套编译策略,n≥1;26.使用n套编译策略对目标设计进行编译,生成对应的编译工程;27.对每一个编译工程的编译日志进行实时分析,获取编译过程中的实时设计特征并进行判断;28.若实时设计特征存在对应的编译困难类型,则基于编译预测模型选择m套新的编译策略去调整后续至少一个编译步骤的编译策略,m≥1;29.若实时设计特征不存在对应的编译困难类型,则按照当前的编译策略继续编译直至编译完成。30.进一步,n套编译策略对应的编译工程并行执行。31.进一步,还包括:32.当任意一个编译工程编译完成以后,对该编译工程的编译结果进行分析,若分析得到编译结果为编译成功时,则删除该目标设备对应的其他编译工程,结束编译流程;若分析得到编译结果为编译不成功时,根据编译失败类型,从编译预测模型中追加s套编译策略进行重新编译,s≥1。33.本发明对目标设计进行分析,可以针对目标设计进行智能化地编译参数地设定,可提升编译效率和成功率。同时,本发明在编译过程中实时追踪编译日志,从日志中及时发现编译存在的困难,并及时新增对应的编译策略进行应对,而不是等到编译失败才发现困难,再进行策略调整,可提前进行应对,提升编译效率。进一步,本发明还会对编译后的编译结果检查,并根据编译结果进行判断,自动为编译失败原因追加对应编译策略,不用人工进行检查再做应对,可提升编译效率和成功率。在本发明的较优实施例中,本发明在编译前、中、后各步骤的同时采用多套编译策略进行编译,通过并行的方式提升编译效率。本发明适用于电路、电气组件、半导体集成电路领域中的编译过程,通过对这些领域的设计在编译前、编译中、编译后的信息分析提取,并结合机器学习等方法,智能化的根据每一个设计在每一个阶段进行编译策略的选定、设置、调整,进而达到提升编译效率和成功率的效果。附图说明34.下面结合实施例和附图对本发明进行详细说明,其中:35.图1为编译预测模型的训练过程;36.图2为编译前预测编译参数的流程;37.图3为编译中日志分析和新增编译策略的流程;38.图4为编译后结果分析和追加编译策略的流程。具体实施方式39.为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。40.由此,本说明书中所指出的一个特征将用于说明本发明的一个实施方式的其中一个特征,而不是暗示本发明的每个实施方式必须具有所说明的特征。此外,应当注意的是本说明书描述了许多特征。尽管某些特征可以组合在一起以示出可能的系统设计,但是这些特征也可用于其他的未明确说明的组合。由此,除非另有说明,所说明的组合并非旨在限制。41.本发明的核心思想在于通过分析设计、分析编译日志、分析编译结果,对编译策略进行精准预测和调整,同时结合多个不同策略的同时编译,可进一步提升编译效率和成功率。42.基于上述核心思想,本发明提出了一种新的编译预测模型的生成方法。本发明的编译预测模型主要由以下步骤生成。43.基于不同设计样本的不同的编译前的设计特征、各编译前的设计特征对应的编译策略及编译效果进行机器学习;44.针对编译效果不符合用户需求的设计样本,总结对应的编译困难类型,同时对其编译过程中的实时设计特征进行分析和提取,得到编译困难类型对应的实时设计特征;45.基于不同设计样本的不同的实时设计特征、各实时设计特征对应的编译困难类型、编译困难类型对应的编译策略及编译效果进行机器学习;46.针对编译结果不符合用户需求的设计样本,总结对应的编译失败类型,同时对编译结果中的结果特征进行分析和提取,得到编译失败类型对应的结果特征;47.基于不同设计样本的不同的结果特征、各结果特征对应的编译失败类型、编译失败类型对应的编译策略及编译效果进行机器学习;48.基于所有的机器学习生成编译预测模型。49.本发明的编译预测模型针对编译前、编译过程中以及编译后的各种情况都进行了分析以及学习,从而使得本发明的编译预测模型可以在编译过程以及编译结束后中及时的、且随时的根据情况更换编译策略,从而提升编译效率和编译成功率。50.在上述技术方案中,本发明针对编译前的各设计特征、实时设计特征、编译困难类型、编译失败类型均准备不同种类的设计样本,且每种种类的设计样本的数量大于等于预设数量,即针对每种情况均准备大量的数据样本。51.本发明的设计样本或目标设计包括但不限于电路设计、电气组件设计、半导体集成电路设计。下面以fpga中的电路设计为例,对各名词的具体概念进行举例说明。52.编译前的设计特征包括但不限于fpga设计的时序约束信息、fpga设计的引脚使用情况等。53.编译过程中所获取的实时设计特征包括但不限于以下的实时设计特征当中的至少一种。54.编译工程所占用的fpga资源的使用量,例如查找表资源(lut,lookuptable)、寄存器(register)资源、块状随机存取存储器资源(bram,blockrandomaccessmemory)、数字信号处理资源(dsp,digitalsignalprocessing)等,通常fpga资源的使用量越多,编译时间越长,即编译效率越低,同时成功率也相对越低。55.编译工程的fpga之间的传递信号数量,以及编译工程的fpga之间的互连拓扑结构。编译工程内部的互连线数量以及互连拓扑结构,在前期针对代码分析并不能得到,而互连线越多、则互连拓扑结构越复杂,出现拥塞的可能性就越大。56.编译工程的高速接口的使用情况,以及编译工程的时钟网络的时钟约束信息。高速接口的使用率过高,或者是过高的时钟约束条件都是时序无法收敛的主要原因。57.通过上述列举的编译过程中的设计特征,可以看出,本发明基于编译过程中出现的实时技术特征去分析其对应的编译效果,若是编译效果不佳,则及时调整编译策略,可以有效提升编译效率和成功率。58.本发明的每一套编译策略包括至少一个编译参数。编译策略包括但不限于:59.积极编译时间策略,该积极编译时间策略对应的编译参数具体为aggressivecompiletime(积极编译时间);60.时序驱动综合策略,该时序驱动综合策略对应的编译参数具体为timingdrivensynthesis(时序驱动综合);61.可路由性策略,该可路由性策略对应的编译参数具体为routability(可路由性);62.性能策略,该性能策略对应的编译参数具体为performace(性能);63.最大扇出策略,该最大扇出策略对应的编译参数具体为maxfanout(最大扇出);64.高路由性策略,该高路由性策略对应的编译参数具体为highroutabilityeffort(高路由性)。65.上述技术方案中,本发明的编译前的设计特征可以通过对设计代码进行分析等方式进行提取,或者是对手册等文件进行分析的方式进行提取。66.本发明编译过程中的实时设计特征可以通过对设计代码运行时所占用的资源进行统计而提取。67.本发明所指的编译效果包括编译时间、编译性能、编译面积当中的至少一种。其中,编译面积指的是编译之后使用fpga内部的逻辑资源数量的多少,如果选择编译面积小的选项,编译工具会进行逻辑资源打包(package),使用更少的逻辑资源实现设计,这样可以在fpga中实现更大的设计,不过可能带来局部布线拥塞的问题。68.本发明对编译结果中的结果特征进行分析和提取包括对是否存在时序违例的结果特征进行分析和提取。69.本发明的编译方法,主要包括以下步骤。70.基于不同设计样本的不同的设计特征、各设计特征对应的编译策略及编译效果进行机器学习,生成编译预测模型;71.对目标设计进行编译之前,提取目标设计编译前的设计特征输入至编译预测模型中,从输出的编译策略中选择符合用户需求的编译效果的n套编译策略,n≥1;72.使用n套编译策略对目标设计进行编译,生成对应的编译工程;73.对每一个编译工程的编译日志进行实时分析,获取编译过程中的实时设计特征输入至编译预测模型中;74.若实时设计特征存在对应的编译困难类型,则基于编译预测模型选择m套新的编译策略去调整后续至少一个编译步骤的编译策略,m≥1;75.若实时设计特征不存在对应的编译困难类型,则按照当前的编译策略继续编译直至编译完成。76.以fpga中的电路设计为例,在未对目标设计进行编译之前,仅能获取部分设计特征,即能够获取编译前的设计特征。仅凭编译前的设计特征去制定编译策略,会导致编译策略效果的有限性,因而最终的编译效果可能会编译失败,也可能会耗费过长的时间,因而不能满足用户的需求。而本发明还会获取编译过程中的实时设计特征,通过编译过程中的实时设计特征来及时调整编译策略,从而使得编译策略是符合实际需求的,从而提升编译效率,达到用户想要的编译效果。77.为了达到上述效果,本发明前期准备的编译预测模型也与现有的普通的编译预测模型的准备工作不同。本发明的编译预测模型主要由以下步骤生成。78.先针对各设计特征均准备不同种类的设计样本,且每种种类的设计样本的数量大于等于预设数量。具体实施时,可以根据具体领域的设计的需要,尽可能多的收集不同类型(种类)的设计样本、不同设计特征的设计样本,以表征各式各样的设计。然后对这些设计样本进行全方位的统计,以检查各类设计特征(即各类设计参数)是否具备足够的样本数据。对于样本数量较少的设计特征,可针对性的注意收集或者自行准备相应的设计样本。最终需要所有的设计特征均具备足够的数据样本数,即设计样本数量。79.针对每一个设计样本,提取其编译前以及编译过程中的所有的设计特征,针对每一个设计特征,采用多套编译策略分别进行编译后,记录对应的编译效果。例如,准备大量的设计样本,针对每一个设计样本,采用多套编译策略分别进行编译,提取其编译前以及编译过程中的所有设计特征,记录设计特征信息、编译策略以及对应的编译效果。一个设计样本分别使用多套编译策略进行编译,可以获取该特征的设计在不同编译策略下的编译效果数据。大量的设计样本需要涵盖所有设计特征的大多数取值范围,以表征各式各样的设计,以提高样本数据的泛化能力,进而提升编译预测模型的普适性。经过大量的设计样本数据收集工作之后,将设计样本数据经过机器学习引擎进行训练可生成对应的编译预测模型。训练过程使用到常规的集成学习算法,还有向量机、决策树、随机森林、线性回归等深度学习算法。训练后的编译预测模型,可以根据设计特征,预测不同编译策略的编译效果,再选取好的编译效果所对应的编译策略用于后续的编译工作。在实际应用中,编译前可能只知道a、b、c三个设计特征,就以已知的设计特征进行编译效果的预测并选取n套编译策略进行编译工作,编译过程中可能新增x、y、z三个设计特征,此时再以a、b、c、x、y、z六个设计特征进行编译效果的预测并选取m套编译策略进行编译工作。80.在一个实施例中,为了进一步提升编译效率,本发明的n套编译策略对应的n个编译工程采用并行执行的方式。进一步,当任意一个编译工程编译完成以后,对该编译工程的编译结果进行分析,若分析得到编译结果为编译成功时,则删除该目标设备对应的其他编译工程,结束编译流程;若分析得到编译结果为编译不成功时,根据编译失败类型,从编译预测模型中追加s套编译策略进行重新编译,s≥1。81.以fpga的电路设计为例,当任意一个编译工程编译完成以后,对该编译工程的编译结果进行分析包括对是否存在时序违例进行分析。82.本发明基于机器学习方法,使用大量的设计样本进行不同编译策略和编译效果的实验工作,经机器学习后生成可输出编译策略的编译预测模型。然后对目标设计使用可输出编译策略的编译预测模型,预测不同编译策略的编译效果,根据设置选择最优的多个编译策略进行编译。编译过程中,对编译日志等进行分析,可实时追踪编译效果,并根据编译效果进行相对应的调整,新增多个编译策略并进行编译。编译完成后对编译结果进行检查,根据编译结果再追加多个编译策略并进行编译。前述编译中的任一编译策略最先完成且编译结果判断成功,则删除其他编译工程结束编译。83.下面描述本发明的一个较优实施例。84.本发明在得到编译预测模型之后,需要相对目标设计进行设计特征的提取,提取出编译前的设计特征。85.然后将提取出来的编译前的设计特征输入到编译预测模型中,编译预测模型将按照用户需求输出符合预期的编译效果的多套编译策略。86.使用这多套编译策略对目标设计进行编译,生成多个并行的编译工程。87.对每一个编译工程的编译日志进行实时分析。88.当编译正常时则不对编译策略做调整,继续编译。如果在编译日志中提取设计特征,基于该设计特征发现编译存在困难时,根据编译困难类型,新增多套对应的编译策略开始编译。编译中的特征提取包括了编译困难这一类,可以细化为synthesis超时、route超时、时钟树综合失败等等的特征,对应的特征参数以0或者1标记,比如说存在synthesis超时,此时这个设计的synthesis超时这个特征的数值就为1,否则为0。89.例如,分析工程的fpga资源使用量,可以粗略预估该工程各个步骤的正常编译时间,当编译时间超过预期时,可认为该设计存在困难,此类困难为超时困难,可选择积极编译时间策略,即“aggressivecompiletime”策略。90.根据编译步骤的不同,又可分为不同步骤的超时困难,可以针对性的进行选择新增的编译策略,如synthesis超时,可选择关闭时序驱动合成策略,即“timingdrivensynthesis”策略。91.如果路由route超时,可选择可路由性策略,即“routability”策略。92.分析工程编译日志,当出现时钟树综合失败,即“clocktreesynthesisfailed”时,代表设计的时钟网络比较复杂,可选择打开时序驱动合成策略,即“timingdrivensynthesis”策略,当出现静态时序分析失败,即“statictiminganalysisfailed”时,代表设计的时序无法收敛,可选择性能策略(performace)、最大扇出策略(maxfanout)等策略进行应对,当出现路由优化已经运行了x小时,即“routingoptimizationhavebeenrunningforxhours”时,代表工程的routing步骤已运行较长时间,可选择高路由性策略,即“highroutabilityeffort”策略进行应对。在服务器资源充足的情况下,也可同时进行多个策略以提升编译成功率。93.任意一个编译工程编译结束后,将有对应的编译结果输出。例如,编译完成时生成对应的比特流文件以及编译结果报告。94.对编译结果进行分析,检查编译结果是否成功。还是以fpga为例,编译完成后主要检查静态时序分析结果,查看是否存在时序违例的情况,当出现时序违例时,代表编译结果无法确保在时序约束条件下稳定正常运行,判断编译结果失败,需要选用有利于时序收敛的编译策略重新编译。95.编译成功时,则删除该目标设计同时在运行的其他的编译工程,结束编译流程。96.当编译结果不成功时,则根据对应的编译失败类型,追加n套对应的编译策略开始编译。一般失败情况为编译结果存在时序违例,此时可选择高绩效策略,即“highperformanceeffort”、最大扇出策略,即“maxfanout”策略等策略进行应对。97.本发明的上述技术方案不仅仅只适用于fpga的工程编译,所有设计领域需要编译的流程均使用。而且但本发明的技术方案应用在设计编译的某个局部环节时,并不限于fpga之间的布局布线,还可以应用在其他的编译环节或编译步骤中。本发明的编译策略,并非指的是某一次的编译参数的设定,编译参数还可以按编译步骤进行细分,例如预测编译步骤1,根据编译步骤1的编译结果和已知的信息预测下一编译步骤的编译策略等。98.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
技术特征:
1.一种编译预测模型的生成方法,其特征在于,包括:基于不同设计样本的不同的编译前的设计特征、各编译前的设计特征对应的编译策略及编译效果进行机器学习;针对编译效果不符合用户需求的设计样本,总结对应的编译困难类型,同时对其编译过程中的实时设计特征进行分析和提取,得到编译困难类型对应的实时设计特征;基于不同设计样本的不同的实时设计特征、各实时设计特征对应的编译困难类型、编译困难类型对应的编译策略及编译效果进行机器学习;针对编译结果不符合用户需求的设计样本,总结对应的编译失败类型,同时对编译结果中的结果特征进行分析和提取,得到编译失败类型对应的结果特征;基于不同设计样本的不同的结果特征、各结果特征对应的编译失败类型、编译失败类型对应的编译策略及编译效果进行机器学习;基于所有的机器学习生成编译预测模型。2.如权利要求1所述的编译预测模型的生成方法,其特征在于,针对编译前的各设计特征、实时设计特征、编译困难类型、编译失败类型均准备不同种类的设计样本,且每种种类的设计样本的数量大于等于预设数量。3.如权利要求1所述的编译预测模型的生成方法,其特征在于,每一套编译策略包括至少一个编译参数。4.如权利要求1所述的编译预测模型的生成方法,其特征在于,所述编译效果包括:编译时间、编译性能、编译面积当中的至少一种。5.如权利要求1至4任意一项所述的编译预测模型的生成方法,其特征在于,所述设计样本为电路设计、电气组件设计、半导体集成电路设计当中的任意一种。6.如权利要求5所述的编译预测模型的生成方法,其特征在于,当所述设计样本为fpga中的电路设计时,编译过程中的实时设计特征包括:编译工程所占用的fpga资源的使用量、编译工程的fpga之间的传递信号数量、编译工程的fpga之间的互连拓扑结构、编译工程的高速接口的使用情况、编译工程的时钟网络的时钟约束信息当中的至少一种。7.如权利要求5所述的编译预测模型的生成方法,其特征在于,当所述设计样本为fpga中的电路设计时,对编译结果中的结果特征进行分析和提取包括对是否存在时序违例的结果特征进行分析和提取。8.一种编译方法,其特征在于,包括:采用如权利要求1至7任意一项所述的编译预测模型的生成方法生成编译预测模型;对目标设计进行编译之前,提取所述目标设计编译前的设计特征输入至所述编译预测模型中,从输出的编译策略中选择符合用户需求的编译效果的n套编译策略,n≥1;使用n套编译策略对目标设计进行编译,生成对应的编译工程;对每一个编译工程的编译日志进行实时分析,获取编译过程中的实时设计特征并进行判断;若实时设计特征存在对应的编译困难类型,则基于编译预测模型选择m套新的编译策略去调整后续至少一个编译步骤的编译策略,m≥1;若实时设计特征不存在对应的编译困难类型,则按照当前的编译策略继续编译直至编译完成。
9.如权利要求8所述的编译方法,其特征在于,n套编译策略对应的编译工程并行执行。10.如权利要求9所述的编译方法,其特征在于,还包括:当任意一个编译工程编译完成以后,对该编译工程的编译结果进行分析,若分析得到编译结果为编译成功时,则删除该目标设备对应的其他编译工程,结束编译流程;若分析得到编译结果为编译不成功时,根据编译失败类型,从编译预测模型中追加s套编译策略进行重新编译,s≥1。

技术总结
本发明公开了一种编译预测模型的生成方法、编译方法,其中编译方法包括:基于不同设计样本的信息进行机器学习,生成预测模型;对目标设计进行编译之前,提取所述目标设计编译前的设计特征输入至所述预测模型中,从输出的编译策略中选择符合用户需求的编译效果的N套编译策略,N≥1;使用N套编译策略对目标设计进行编译,生成对应的编译工程;对编译日志进行实时分析,获取编译过程中的实时设计特征并进行判断;若实时设计特征存在对应的编译困难类型,则选择M套新的编译策略去调整后续至少一个编译步骤的编译策略,M≥1;若实时设计特征对应的编译效果符合用户需求,则按照当前的编译策略继续编译直至编译完成。本发明可显著提升编译效率。升编译效率。升编译效率。


技术研发人员:蔡炜相 孙亚强 陈麒
受保护的技术使用者:深圳国微晶锐技术有限公司
技术研发日:2023.06.19
技术公布日:2023/9/12
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐