CN116324787A - 利用人工智能方案的宏布置 - Google Patents
利用人工智能方案的宏布置 Download PDFInfo
- Publication number
- CN116324787A CN116324787A CN202280005976.0A CN202280005976A CN116324787A CN 116324787 A CN116324787 A CN 116324787A CN 202280005976 A CN202280005976 A CN 202280005976A CN 116324787 A CN116324787 A CN 116324787A
- Authority
- CN
- China
- Prior art keywords
- neural network
- macro
- chip
- target
- training
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
- Traffic Control Systems (AREA)
- Feedback Control In General (AREA)
- Character Discrimination (AREA)
- Image Processing (AREA)
- Testing Or Measuring Of Semiconductors Or The Like (AREA)
Abstract
系统使用神经网络(NN)进行宏布置。系统接收包括目标和偏好子空间的输入。每个偏好都是分配给相应目标的权重向量,每个目标都是对放置特征的度量。该系统训练NN将宏布置在一组训练芯片上以优化根据目标和偏好计算的回报。神经网络生成在芯片当前状态下动作的概率分布,动作表示芯片上放置宏的坐标。NN进一步生成一系列(状态,动作)对以形成轨迹,轨迹中的最终状态对应于完成的宏布置。
Description
相关申请的交叉引用
本发明要求于2021年10月12日提交的美国专利申请No.63/254,582的优先权权益,其内容透过引用完整地并入本文中。
技术领域
本发明的实施例涉及基于机器学习(machine learning)和人工智能(artificialintelligence,AI)用于在半导体芯片上生成宏布置(macro placement)的方法和装置。
背景技术
在集成电路(IC)设计中,宏(macro)是可以被视为黑盒子(black box)的一组电路组件。宏的逻辑和电子行为是给定的,但内部结构描述有可能已知也有可能未知。混合尺寸的宏布置是在芯片画布(canvas)上放置各种尺寸的宏以优化目标(例如线长)。当需要实现多个目标时,宏布置问题会变得更加复杂。
在设计过程的早期阶段,设计目标可能被估计得不准确。例如,虽然总线长与功耗呈正相关,但是直到实现和表征与最终设计非常相似的大量原型之后,通常才能知道将线长估算值与功耗估算值联系起来的实际数学关系。目标估计不准确的其他原因可能包括:加速计算的妥协;假设一种更适合优化的形式;随着时间的推移改变制造参数,特别是对于前沿处理节点;从不同背景(context)中学习的目标,例如,从7nm制程中的学习以应用于5nm制程。
此外,各种目标之间的期望权衡常常直到设计过程的非常后期才能被准确地知道。由于现代片上系统(system-on-a-chip,SoC)的设计时间可能长达一年以上,客户的需求可能在设计过程中发生了变化。前沿处理节点(leading-edge processing node)的制造参数也可能随时间发生变化。此外,整个SoC中的背景含义也是一个因素。例如,虽然拥塞与下游任务的难易程度密切相关,但可以容忍的拥塞量取决于其他背景因素,例如放置的电路所支持的馈通线(feed-through wires)的数量。在构成SoC的各种其他电路的位置被冻结之前,这是未知的。
因此,需要改进用于宏布置的工具,使得这些工具可以处理设计目标和权衡的延迟知识。
发明内容
在一个实施例中,提供了一种通过神经网络(NN)进行宏布置的方法。该方法包括接收包括多个目标和偏好子空间的输入。每个偏好都是分配给相应目标的权重向量,每个目标都是对放置特征的度量。该方法还包括训练NN将宏布置在一组训练芯片上,以优化根据目标和偏好计算的回报。然后NN生成芯片当前状态下动作的概率分布,该动作表示芯片上放置宏的坐标。NN还生成一系列(状态、动作)对以形成轨迹,其中轨迹中的最终状态对应于完成的宏布置。
在另一个实施例中,提供了一种用于训练NN以执行宏布置的方法。该方法包括接收一组目标轨迹,这些轨迹对应于训练组中各个芯片上各个宏的放置。每个目标轨迹中的最终状态对应于目标放置的完成。该方法还包括搜索所生成的目标回报大于学习回报的回报函数,其中目标回报是根据目标轨迹计算的并且学习回报是根据NN生成的轨迹计算的。该方法还包括搜索参数以更新NN,使得NN生成能使学习回报最大化的更新轨迹。
在又一个实施例中,提供了一种用于在芯片上放置无序宏的方法。NN生成在芯片当前状态下的宏排序动作的第一概率分布,宏排序动作是从要放置在芯片上的一组无序的宏中选择一个宏。NN进一步生成在芯片当前状态下的定位动作的第二概率分布,该定位动作在芯片上选择坐标用于放置宏。NN分别根据第一概率分布和第二概率分布对宏排序动作和定位动作进行采样。该方法还包括更新宏排序遮罩以从一组无序的宏中移除已放置的宏,以及更新定位遮罩以阻挡芯片上的区域以用于后续放置剩余宏。
在结合附图阅读特定实施例的以下描述后,其他方面和特征对于本领域普通技术人员将变得显而易见。
附图说明
本发明通过示例的方式而非限制的方式在附图中进行说明,在附图中相似的参考标号指示相似的元素。应当注意,在本公开中对“一个”或“个”实施例的不同引用不一定是指相同的实施例,并且这样的引用表示至少一个。此外,当结合实施例描述特定特征、结构或特性时,认为在本领域技术人员的知识范围内可结合其他实施例来实现此类特征、结构或特性,无论是否进行明确描述。
图1A是例示根据一个实施例的用于宏布置的NN的框图。
图1B是例示根据另一实施例的用于宏布置的NN的框图。
图2例示了根据一个实施例的宏布置过程。
图3A是例示根据一个实施例的用于宏布置的两阶段过程的流程图。
图3B是例示根据另一实施例的用于宏布置的两阶段过程的流程图。
图4是根据一个实施例的图3A和图3B中训练阶段(S101)的流程图。
图5是根据一个实施例的样本收集操作(S111)的流程图。
图6是根据一个实施例的训练操作(S112)的流程图。
图7是根据一个实施例的评估操作(S113)的流程图。
图8是示出根据一个实施例的基于设计者的提示的宏布置方法的流程图。
图9是根据一个实施例的轨迹采样方法的流程图。
图10A是根据一个实施例的回报搜索NN的框图。
图10B是根据一个实施例的搜索工具的框图。
图11是图示根据一个实施例的用于训练NN以产生宏布置的方法的流程图。
图12是图示根据一个实施例的用于更新回报函数的方法的流程图。
图13是图示根据另一实施例的用于训练NN以产生宏布置的方法的流程图。
图14是示出根据另一实施例的用于更新回报函数的方法的流程图。
图15是图示根据一个实施例的使用宏顺序遮罩的宏布置过程的图。
图16是图示根据一个实施例的用于将无序宏布置在电路块上的NN的框图。
图17是图示根据一个实施例的用于训练NN以将无序宏布置在电路块上的方法的流程图。
图18图示了根据一个实施例的系统的示例。
图19是示出根据一个实施例的由NN进行宏布置的方法的流程图。
图20是图示根据一个实施例的用于训练NN以执行宏布置的方法的流程图。
图21是图示根据一个实施例的用于放置无序宏的方法的流程图。
具体实施方式
在下面的描述中,阐述了许多具体细节。然而,应当理解,可以在没有这些具体细节的情况下实践本发明的实施例。在其他情况下,未详细示出众所周知的电路、结构和技术以免混淆对本发明的理解。然而,本领域技术人员将理解,可以在没有这些具体细节的情况下实施本发明。本领域技术人员可以利用所包括的描述能够实现适当的功能而无需过多的实验。
在本发明中,描述了用于宏布置的两阶段(two-stage process)过程。在第一阶段,该过程采用未经训练的放置工具(placement tool)Z[0]和设计者输入ξ,其中ξ包括设计偏好子空间Ω和多个目标其中K是目标的数量,并生成输出EDA工具Z[ξ]。这个Z[ξ]可以采用特定的ω∈Ω来产生宏布置的相应的输出实现。第一阶段不产生布局;相反,它产生了一个可以优化多个目标的“放置工具”。第一步称为多目标学习。在第二阶段,当设计偏好被确知时,将调用工具Z[ξ]来查找给定电路块(也称为“芯片”)的布局。第二阶段称为延迟的最终优化。在一个实施例中,放置工具可以是由计算系统执行的神经网络(neuralnetwork,NN)。
下面的描述参考流程图公开了多种方法。这些方法可以由计算系统执行,例如图18中的系统1800,其中在系统1800上训练诸如NN之类的放置工具。此外,以下描述中的一些方法涉及“阈值”的使用。可以理解的是,不同方法/阶段/操作/步骤中的阈值可以指代不同的数值。如本文中所使用的,半导体芯片是也称为芯片的集成电路块。宏包含一组集成电路组件,芯片画布是芯片上可以放置宏的二维(2D)区域。
图1A是例示根据一个实施例的用于宏布置的NN 10的框图。NN 10接收输入,其中输入包括状态s(宏、网表图、节点ID)、网表元数据(netlist metadata)和偏好ω,每一个都被编码到被称为嵌入(embedding)的低维向量(low-dimension vector)中。NN 10连接(concatenate)这些嵌入向量,以代表潜在状态(latent state)。这种潜在状态被输入到价值网络(value network)和策略网络(policy network)中。策略网络生成策略πθ(a|s,ω),其中πθ(a|s,ω)是状态s中动作a的概率分布。该动作指定画布上用于放置宏(macro)的坐标。状态是包括在其上放置的任何宏的画布(canvas)。价值网络生成的值能预测动作a的回报(reward)。NN 10由θ参数化,其表示用于定义NN 10的参数集。基于策略πθ(a|s,ω),NN10在画布上应用遮罩(mask)并生成动作作为输出。该动作是基于策略πθ(a|s,ω)以及随机策略或确定性策略生成的。在本发明中,遵循随机策略的NN 10被称为A000,而遵循确定性策略的NN 10被称为A001。在一些实施例中,NN 10可用于宏布置。
图1B是例示根据另一实施例的用于宏布置的NN 15的框图。NN 10和NN 15之间的区别在于NN 15不接收偏好ω作为输入。NN 15在画布上应用遮罩并生成动作作为输出。该动作是基于策略πθ(a|s)以及随机策略或确定性策略生成的。在本发明中,遵循随机策略的NN 15被称为A002,而遵循确定性策略的NN 15被称为A003。在一些实施例中,NN 15可用于宏布置。
图2例示了根据一个实施例的宏布置过程。给定芯片画布和经过训练的NN 20,NN20执行动作a1以将宏1放置在画布的第一坐标上。对于多目标宏布置,NN 20可以具有与NN10(图1A)或NN 15(图1B)相同的网络结构。此时画布的状态(在执行动作a1后)表示为s1。更新遮罩210以指示宏1周围没有被下一个宏占据的区域。NN 20接着执行动作a2以将宏2放置在画布的未遮蔽部分的第二坐标上。画布状态被更新为s2,并且遮罩210也被更新(未示出)以防止后续宏与前两个宏不期望地重叠。芯片放置过程一直持续直到所有宏都放置在芯片画布上。
图2例示的芯片放置过程产生一个(状态,动作)对(s1,a1),…,(sn,an)的轨迹,用于放置n个宏,其中最终状态sn表示具有已完成宏布置的芯片画布。对于给定的状态,NN 20被训练为生成相应动作的概率分布。在一个实施例中,NN 20将遮罩210应用于概率分布,以在芯片画布上发生动作的网格点上产生遮蔽分布(masked distribution)。使用确定性策略,NN 20根据遮蔽分布选择概率最高的动作以放置宏。使用随机策略,NN 20根据遮蔽分布对动作进行采样,以放置宏。
遮蔽分布的示例如下。如果NN 20的策略网络(policy network)在5个可以发生动作的坐标上生成的概率分布为:
动作1 | 动作2 | 动作3 | 动作4 | 动作5 |
0.2 | 0.3 | 0.1 | 0.1 | 0.3 |
应用可以把发生动作1、2、4的区域遮挡住的遮罩,这种概率分布变为如下的遮蔽分布:
动作1 | 动作2 | 动作3 | 动作4 | 动作5 |
0 | 0 | 0.1/(0.1+0.3)=0.25 | 0 | 0.3/(0.1+0.3)=0.75 |
图3A是例示根据一个实施例的用于宏布置的两阶段过程300的流程图。在图3A和后续图的流程图中,圆角的块表示输入/输出,方角的块表示操作。
在第一阶段,给定了一个偏好子空间,但设计者的偏好是未知的或未确定的。第一阶段接收输入,输入包括两组芯片(即训练组(training set)和验证组(validationset))、一组目标(即回报)偏好子空间Ω和未经训练的神经网络NN。未经训练的神经网络NN可具有与NN10(图1A)相同的网络结构。执行训练阶段以产生经训练的NN的输出(S101)。在第二阶段(也称为延迟的最终优化),给定设计者的偏好。第二阶段接收一个要放置宏的新芯片、新的偏好ω和经过训练的神经网络NN。经训练的神经网络根据确定性策略以及新偏好ω对轨迹进行采样(S102)。参考图1中的网络A001描述确定性策略。第二阶段的输出是放置了宏的新芯片(即轨迹中的最终状态sn)。
图3B是例示根据另一实施例的用于宏布置的两阶段过程301的流程图。在第一阶段,给定了一个偏好子空间,但设计者的偏好是未知的或未确定的。第一阶段与图3A中的两阶段过程300相同。第二阶段(也称为延迟的最终优化)与第一阶段的不同之处在于,训练组和验证组均只包含一个新的要放置宏的芯片,偏好子空间Ω只包含一个新的偏好ω(设计者的偏好)。在第一阶段训练的神经网络进一步在训练阶段被训练(S101),然后使用确定性策略根据新的偏好ω采样轨迹(S102)。参考图1A中的网络A001描述确定性策略。第二阶段的输出是放置了宏的新芯片(即轨迹中的最终状态sn)。
在描述训练阶段(S101)的细节之前,在宏布置的背景中提供目标的示例是有帮助的。目标是放置特性(placement characteristic)的测量。在一个实施例中,一组目标/>可以包括WL(x),CWL(x),C(x),NS(x),它们分别代表用于放置x的线长估计、关键路径线长估计、拥塞估计和负松弛估计(negative slack estimate)。另一个目标,功耗估计PWL(x),可以从线长估计中导出。这些目标、其他设计者特定的指标以及与放置设计相关的任何其他目标(例如,关键路径时序)都可以通过使用多目标框架在彼此间权衡(tradedagainst)。这种权衡由偏好ω表示,ω是偏好值阵列,其指示分配给相应目标的权重。复合目标(composite objective)的一个示例是ω1WL(x)+ω2CWL(x)+ω3C(x),并且WL(x),CWL(x),C(x)之间的适当折衷至少取决于PWL(x)和NS(x)。
在一个实施例中,该组目标还可以包括位置目标。例如,在训练Z[ξ](例如,神经网络)时,输入可以包括与画布几何形状和宏的预期位置相关的信息。此信息来自物理约束,例如引脚、I/O端口、优选布线路径和标准单元放置的优选负空间(negative space)位置(如果设计者可以获得此类信息)。但是请注意,画布上的遮挡(blockage)由遮罩处理,这与位置目标不同。
在一个实施例中,位置目标可以被建模为位置锚(positional anchors)。锚点是位置坐标对以及对所选宏的位置的影响权重。锚点α对宏m的影响,表示为ι(α,m),是一个正标量函数,其可以仅根据位置信息计算。
只具有负权重的锚点被称为负锚点,只具有正权重的锚点被称为正锚点。在上面的回报目标的公式中,通过设置ι(α,m)=0,锚点可以被配置为仅影响宏的一个子集。在一个实施例中,针对距离函数d的ι(α,m)=d((xα,yα),(xm,ym)),通常L1或or L2远离。
其他位置目标可能包括以下内容。正锚点用于将某些宏吸引向该锚点的位置。假设有一个正锚点m。宏i连接到该锚点。目标函数中增加了一个附加项在假定是模拟吸引力时,/>为负。正锚点的位置通常由设计者选择。负锚点用于将某些宏从该锚点的位置排斥。假设有一个负锚点m。宏j连接到该锚点。目标函数中增加了一个附加项假定是模拟排斥力,/>为正。负锚点的位置通常由设计者选择。引脚是导线穿过画布边界的地方。如果在布局之前未确定该导线的位置,则使用预期引脚。因此,对于每次布局尝试,都会在多个选择中随机选择预期引脚的位置。一旦设计者指定了这些选择,这些选择的集合就会包含在输入参数ξ的向量中,这有助于训练最终的EDA工具Z[ξ](例如,神经网络)。
返回参考图3A和图3B,在一个实施例中,训练阶段(S101)由计算系统执行以训练NN(例如,图1A中的NN 10)来执行宏布置。训练阶段(S101)的细节将在下面参考图4至图7进行描述。
图4是根据一个实施例的图3A和图3B中训练阶段(S101)的流程图。当计算系统收到输入时,训练阶段开始,其中输入包括芯片的训练组(training set)、芯片的验证组(validation set)、一组目标、偏好子空间和未经训练的NN。训练组中的每个芯片都具有待放置在其上的一组相应的宏。在一个实施例中,每个芯片的宏的放置顺序是给定的;也就是说,宏按顺序放置。参考图15至图17描述了宏被无序放置的实施例。
训练阶段包括由NN执行的三个操作:样本收集操作(S111)、训练操作(S112)和评估操作(S113)。当回报(在图7中计算)达到预定阈值时,训练阶段完成(S410)。否则,重复这三个操作,直到回报函数达到阈值。训练阶段的输出是经过训练的NN(S420)。
图5是根据一个实施例的样本收集操作(S111)的流程图。在样本收集操作中,神经网络NN从训练组中采样一个芯片,并从偏好子空间中随机选择偏好(S510)。NN还使用随机策略根据偏好ω采样(即生成)轨迹(S520)。参考图1A中的网络A000描述随机策略。为了生成轨迹,NN使用当前状态si和偏好ω作为输入(S521)。NN根据随机策略输出动作ai,以相应地将宏放置到采样芯片上(S522)。重复S521和S522直到所有的宏被放置(S523),并且轨迹由(状态,动作)对的序列形成。然后将轨迹存储在缓冲器中(S530)。当缓冲器中的轨迹数量达到阈值时(S540),缓冲器被提供作为图6所示的训练操作(S112)的输入。
图6是根据一个实施例的训练操作(S112)的流程图。训练操作(S112)的输入包括一组目标(即回报)偏好子空间Ω、轨迹缓冲器和NN(来自图5)。缓冲器中的轨迹是在样本收集操作(S111)中生成的。训练操作以NN从缓冲器中采样一小批轨迹开始(S610)。NN基于采样的一小批(mini-batch)轨迹计算损失函数LCLIP+VF+S(θ,ω)(S620),并基于梯度下降更新NN的参数θ(S630):/>其中η是学习率(learningrate)。重复S610、S620和S630直到更新次数达到预定阈值(S640)。当达到预定阈值时,NN具有更新的参数θ(S650)。从下面的数学公式中可以看出,NN参数的更新基于损失函数,该损失函数是偏好ω和参数θ的函数。
下面提供训练操作(S112)的数学公式。训练操作(S112)可以表示为多目标马尔可夫决策过程(multi-objective Markov decision process,MOMDP)我们指的是具有状态空间/>和动作空间/>以及固定转换动态的MDP,具有一组索引为i的回报信号,其中回报(目标)信号i表示为oi。该公式还包括偏好参数ω,其中/>是K维向量。在宏布置的背景中,求和的回报/>
如在(s;ω)和(a;ω)中,状态和动作都由ω索引,以表示对标准MDP的相应限制。受限制的MDP表示为此外,本文采用情景(episodic)强化学习(reinforcementlearning,RL)的设置,其中有一个明确定义的与ω无关的初始状态s0。
可以使用具有广义优势估计(generalized advantage estimation)的近端策略优化(Proximal Policy Optimization,PPO)梯度估计器,来计算NN参数更新。对于多目标宏布置问题的应用,损失函数包括:
价值函数(s;θ),它接收偏好ω作为输入(即v(s,ω;θ))。价值损失是基于输入状态和从缓冲器采样的ω值计算的。
熵损失(entropy loss)S[πθ],它是状态中策略头(policy head)的熵值的平均值,可以控制策略πθ的随机性。
具体来说,价值函数Vπ输出的是一个K维向量,使得
价值网(value net)Vθ(s,ω)用来表示价值函数,给定长度-T轨迹内的估计优势(estimated advantage)可以写成:
whereδt=rt+γVθ(st+1,ω)-Vθ(st,ω)
在训练过程中,找到一个新的ω'可以最大化损失函数
图7是根据一个实施例的评估操作(S113)的流程图。评估操作(S113)的输入包括一组芯片(即验证组)、一组目标(即回报)偏好子空间Ω,以及具有更新参数θ的NN(来自图6)。评估操作(S113)以NN采样一个芯片和随机偏好ω~Ω开始,其中/> (S710)。NN使用确定性策略基于偏好ω采样(即生成)轨迹(S720)。参考图1A中的网络A001描述确定性策略。为了生成轨迹,NN使用当前状态si和偏好ω作为输入(S721)。NN根据随机策略输出动作ai,以相应地将宏放置到采样芯片上(S722)。重复S721和S722直到所有的宏被放置(S723),并且轨迹由(状态,动作)对的序列形成。接着NN根据轨迹中的最终状态sn计算回报/>并收集此回报(S730)。重复S710、S720(包括S721-S723)和S730,直到收集的回报数量达到预定阈值(S740)。NN然后对所有收集的回报进行平均(S750)并输出单个回报值(S760)。
返回参考图4,在评估操作(S113)之后,将单个回报值与阈值进行比较(S410)。重复操作S111、S112和S113,直到从评估操作(S113)输出的单个回报值达到阈值。此时,神经网络NN被训练(S420)。可以为经过训练的NN提供输入,其中输入包括新的偏好以及新的芯片和要放置的宏。
下面的公开内容描述了针对具有难以制定目标的宏布置问题的解决方案。有时,在检查经训练的NN所产生的宏布置后,设计者会意识到布局不符合预期。在这种情况下,设计者可以选择向神经网络注入提示或修改提示。在提示的指导下,NN可以产生更理想的放置结果。
在很多情况下,设计者很难直接制定出具有合适ω的设计意图。例如,有时设计者希望保持布局与之前经试验和验证过的布局相似,即使以小幅减少实现的目标为代价。很难制定出一个合适的偏好参数ω来促进设计者的意图。再举一个例子,在尝试放置中,引脚的位置(即,导线穿过分配的放置区域外围时的二维坐标)尚不清楚,尽管设计者大致知道这一点。在这种情况下,设计者可以提供引脚位置的模糊想法作为提示。作为又一示例,设计者可能不具有使用偏好ω的知识。
在一个实施例中,经过训练的NN可以生成多种布局,并且设计者可以对这些布局的可取性进行排序,或者选择最佳布局作为用于改进的候选者。根据设计者的反应,NN可以搜索隐藏的设计者偏好并生成设计者满意的布局。
宏布置的复合目标的示例可以如下:
ω1WL(x)+ω2CWL(x)+ω3C(x)+ω4WL+(x)+ω5WL-(x)
其中WL+(x)和WL-(x)是由于正锚点和负锚点引起的线长。
假设偏好值ω4和ω5未知。NN可以生成多个轨迹样本来询问设计者,并根据设计者的响应迭代搜索合适的ω4和ω5值。参数搜索的方法将参考图8和图9进行描述。
图8是例示根据一个实施例的基于设计者的提示的宏布置方法800的流程图。方法800的输入包括要放置宏的新芯片、一组目标(即回报)偏好子空间Ω和经过训练的神经网络NN。NN可以具有与NN 10(图1A)相同的网络结构。在一个实施例中,NN已经通过参考图4至图7公开的方法进行了训练。NN从新芯片的偏好子空间Ω(S810)中采样p个随机偏好/>NN基于采样的偏好进一步采样p个轨迹(S820)。轨迹采样(S820)将参考图9进一步解释。p个轨迹对应p个布置(placement);每个布置是每个轨迹中与p个偏好之一对应的最终状态/>系统向设计者示出(例如,显示)p个布置(S830)。设计者可以接受布置之一(S840),并且方法800以所接受的布置作为输出而终止(S850)。如果设计者不接受p个布置中的任何一个,则设计者可以选择布置之一及其相应的偏好ωs进行改进(S860)。所选布置可以最接近设计者的潜在偏好。NN然后通过设计者选择的偏好ωs中的小扰动生成另外的p个偏好/>(S870)。例如,脚本(script)可以通过相应的一个或多个delta(增量)值来修改ωs中的一个或多个偏好值ωj,其中每个delta值在预定值范围内(例如,在+/-ε的范围内)。重复S820、S830和S840,直到设计者接受NN生成的布局之一。与接受的布局对应的偏好是设计者的潜在偏好(hidden preference)。
图9是根据一个实施例的轨迹采样方法900的流程图。NN执行方法900作为图8中S820的一部分。方法900的输入包括用于放置的新芯片、经过训练的NN、一组目标(即回报)p个偏好/>从p个偏好中,NN选择之前未被选择的偏好ω(S910)。然后,NN使用确定性策略根据选定的偏好ω对轨迹进行采样(S920)。确定性策略参考图1A中的A001进行描述。轨迹采样还包括将当前状态si(即芯片的画布)和偏好ω输入到NN(S921),NN确定性地输出动作ai并根据动作将宏布置到芯片上(S922)。重复S921和S922直到所有的宏都被放置在芯片上(S923)。重复S910和S920(以及S921-S923)直到选择了p个偏好(S930),这意味着生成p个相应的轨迹。NN输出p个轨迹,每个轨迹由状态-动作对(s1,a1),…,(sn,an)形成(S940)。
另一种难以公式化目标的方法是一种通过逆强化学习推断潜在回报函数(hiddenreward function)的机制。该机制基于设计者对放置样本的演示。通过这种方法,学习者(例如AI代理)尝试学习演示者的潜在回报机制。训练数据是演示轨迹,也称为目标轨迹 其中每个/>是放置样本(placement sample)的轨迹。给定这些目标轨迹,AI代理(AI agent)会搜索潜在回报函数/>在一个实施例中,AI代理是NN。可以在诸如图18中的系统1800的计算系统上训练AI代理。
图10A是根据一个实施例的AI代理用来搜索回报函数的回报搜索NN(称为A004)的框图。给定的输入包含宏布置的轨迹τ,回报搜索NN应用图神经网络(graph neuralnetwork,GNN)对τ进行编码并将τ嵌入到潜在状态中。回报搜索NN包括回报网络1010,其处理潜在状态(latent state)并输出回报R(τ)。参考图12描述回报搜索NN的回报搜索操作。
图10B是根据一个实施例的由AI代理用来搜索回报函数的搜索工具A005的框图。在此示例中,由电子设计自动化(electronic design automation,EDA)工具1020获得一组目标。每个EDA工具1020计算一个目标(例如,线长、时序或要放置在芯片上的宏的密度)。在计算出目标之后,具有权重(即偏好)ω的线性模型1030计算权重和目标的线性组合,并将计算出的线性组合作为回报R(τ)输出。回报被迭代地用于更新AI代理的参数,在一些实施例中AI代理可以是未经训练的NN,例如图1A中的A000或图1B中的A002。参考图14描述线性模型1030的操作。
图11是例示根据一个实施例的用于训练NN以产生宏布置的方法1100的流程图。NN可以是图1B中的NN 15。方法1100遵循生成性对抗网络(Generative AdversarialNetwork)的框架,其中策略π是生成器,回报函数R(τ)是鉴别器。
在时间T=0,具有策略π0的NN被随机初始化以产生轨迹S0={τ1,τ2,…,τn},并且回报函数R0(τ)被随机初始化。在时间T=t时,系统首先搜索满足约束 的回报函数Rt(τ)(S1110),因为/>是黄金样本(golden samples)集。回报/>称为目标回报,/>称为学习回报。可以使用图12中所示的方法1200由例如图10A中A004的另一个NN执行回报搜索。如果可以找到满足约束的Rt(τ)(S1120),则NN接下来搜索策略πt+1,其样本(即轨迹)St+1可以最大化/>(S1130)。策略搜索可以由NN使用图6中所示的训练操作但不使用偏好ω来执行。重复S1110-S1130,直到不可能(例如,在时间限制内)找到满足/>的回报函数Rt(τ)。此时,NN的策略πt与演示者(demonstrator)的策略/>没有区别。换句话说,NN能够无差别地模仿演示者的行为。方法1100终止并输出训练的NN(S1140)。
图12是例示根据一个实施例的用于更新回报函数的方法1200的流程图。可以通过迭代地更新回报函数来执行S1120(图11)的回报搜索。方法1200的输入包括:演示轨迹 (其中/>是状态和动作(s,a)的轨迹)、利用策略πt由图11中的NN(A002)生成的轨迹St={τ1,τ2,…,τn}、由例如图10A中A004的另一个NN实现的用于回报函数Rt(τ)的回报更新网络。
方法1200开始于回报更新网络分别从和St中采样两小批量轨迹/>和T(S1210)。回报更新网络根据这个小批量计算损失函数/>(S1220)。回报更新网络基于梯度下降/>更新回报函数Rt(τ))的参数,其中η是学习率(learning rate),θ是回报函数的参数(S1230)。重复S1220和S1230直到更新次数达到阈值,或/>(S1240)。方法1200的输出是更新的回报函数Rt(τ)(S1250)。
逆向强化学习也可以用来推断每个目标oi的未知偏好值ωi。在一个实施例中,回报函数是偏好值和相应目标的线性组合:且/>是寻找新ωi的约束条件。当学习中断时(即没有R(τ)可以满足/>),输出是每个目标的期望偏好ωi。
图13是例示根据另一实施例的用于训练NN以产生宏布置的方法1300的流程图。NN可以是图1A中的NN 10。除了方法1100(图11)的所有输入之外,方法1300的输入还包括偏好子空间Ω和一组目标此外,方法1300中的回报函数是目标和相应偏好值的线性组合;即回报函数/>在一个实施例中,回报函数可由搜索工具A005(图10B)更新,其使用线性模型1030来计算回报函数。
在时间T=t,系统首先搜索满足约束的偏好向量/>(S1310)。如果可以找到满足约束的偏好向量/>(S1320),则NN接着搜索策略πt+1,策略πt+1的样本(即轨迹)St+1能最大化/>(S1330)。
偏好搜索可以通过使用图14中所示的方法1400由诸如图10B中A005的搜索工具来执行。策略搜索可以由NN使用图6中所示的训练操作来执行,但仅使用偏好空间Ω中的一个固定的偏好向量重复S1310-S1330直到不可能(例如,在时间限制内)满足S1320的约束。此时,方法1300终止并输出经过训练的NN以及输入中目标集的偏好向量/>(S1340)。
图14是例示根据另一实施例的用于更新回报函数的方法1400的流程图。可以通过迭代更新偏好来执行S1320(图13)的回报搜索。除了方法1200(图12)的所有输入之外,方法1400的输入还包括偏好子空间Ω和目标集此外,方法1400中的回报函数是目标和相应偏好值的线性组合;即回报函数/>在一个实施例中,偏好可由搜索工具A005(图10B)更新,其使用线性模型1030来计算回报函数。
方法1400开始于搜索工具分别从和St中采样两个小批量轨迹/>和T(S1410)。搜索工具基于该小批量轨迹计算损失函数/>(S1420)。搜索工具基于梯度下降/>更新参数ω,其中η是学习率(S1430)。重复S1420和S1430,直到更新次数达到阈值,或/>(S1440)。方法1400的输出是更新后的偏好ω(S1450)。回报函数可以通过更新的偏好和目标的组合来获得。/>
下面公开内容描述了用于确定宏布置的依次放置顺序的解决方案。通常,宏布置使用固定的宏布置顺序,这通常由人类专家根据一组试探法(heuristics)确定。如果选择任意顺序,训练NN的速度可能不如试探法给出的顺序。
此处公开了一种方法用来改进确定放置顺序。可以训练神经网络在更新放置策略π的同时学习宏排序策略ρ。也就是说,要放置在给定芯片上的宏是无序的。NN可以用多个随机宏顺序进行训练,并且可以收集经验来更新π。在消融(ablation)研究中,注意到π的收敛性可能不受宏排序的影响,但收敛速度可能会受到某些次优宏顺序的不利影响。还需要注意的是,经过训练的NN可以在未完全优化的宏排序策略ρ下表现良好。
在一个实施例中,策略ρ由神经网络(例如,图16中的A006)参数化,神经网络将画布状态s的GNN表示以及所有节点的GNN嵌入作为输入。动作空间是一个离散的动作空间,每个索引对应一个特定的节点,策略输出这些选择的softmax。一个独立的遮罩kρ从动作空间中消除对先前放置的宏的选择。
宏排序策略ρ可以具有与π相同的目标和相同的回报,并且可以受益于上述参考图3A和图4中的训练阶段S101所描述的相同的缓冲器收集过程和价值函数。
图15是例示根据一个实施例的利用宏顺序遮罩(macro order mask)1520的宏布置过程的示意图。给定芯片画布和经过训练的神经网络NN,NN执行动作m1以确定要放置的第一个宏(例如,M3),并执行动作a1以将M3放置在画布的第一个坐标上。此时画布的状态(在执行动作m1和a1之后)表示为s1。更新宏顺序遮罩1520以屏蔽掉已经放置的宏(M3),并且更新遮罩1510以指示M3周围的没被下一个宏占据的区域。遮罩1510也称为定位遮罩(positional mask)。NN然后执行动作m2以确定要放置的第二个宏(例如,M5),并执行动作a2以将M5放置在画布的未被遮蔽部分的第二坐标上。画布状态更新为s2,遮罩1510和1520也更新(未显示)。宏布置过程一直持续到所有宏都放置在画布上为止。
图16是例示根据一个实施例的用于将无序的宏放置在电路块上的NN 30的框图。NN 30也称为A006。为了生成动作,NN 30接收包括状态s(宏、网表图、节点ID)和网表元数据的输入,状态s和网表元数据每一个都被编码到称为嵌入(embedding)的低维向量中。NN 30连接嵌入向量以表示潜在状态(latent state)。这种潜在状态被输入到价值网络、策略网络和宏顺序网络(macro-order network)中。策略网络生成策略πθ(a|s),其中πθ(a|s)是动作a的概率分布。价值网络生成可以预测动作a回报的价值。宏顺序网络生成策略ρθ(a|s),其中ρθ(a|s)是动作m上的概率分布。根据策略πθ和ρθ,NN 30在画布上应用定位遮罩1610以阻挡被已放置的宏所占用的区域、以及在已放置的宏上应用宏顺序遮罩1620,并确定下一个动作a和m作为输出。输出动作可以随机确定。
可以根据在同一轨迹缓冲器和同一回报信号中收集的经验,同时训练策略ρ和π。为了克服多代理体系统动力学(multi-agent system dynamics)的冷启动(cold start)问题(例如,代理集体陷入非改进的递归循环),可以通过一组试探法(heuristics)的模仿学习来初始化ρ的权重。
图17是例示根据一个实施例的用于训练NN以将无序宏布置在电路块上的方法1700的流程图。输入包括设计者演示的轨迹其中/>是状态和动作(s,m,a)的轨迹;未训练的NN(例如,图16中的A006)具有策略π0和ρ0及其轨迹S0={τ1,τ2,…,τn};随机初始化的回报函数R0(τ);时间戳t=0。NN由图11的方法1100训练(S1710),其中同时搜索策略πθ和ρθ。NN由图4的训练阶段S101(S1720)进一步训练,其中策略πθ和ρθ被同时训练。在某些情况下,输入还可以包括偏好子空间和一组目标。在偏好子空间不是输入的其他场景下,可以在训练阶段S101跳过偏好子空间的采样。方法1700的输出是经过训练的NN(S1730)。经过训练的NN根据策略πθ和ρθ运行,以针对轨迹中的每一步,确定动作m用于选择要放置的宏以及确定动作a用于选择坐标以放置所选宏。
图18例示了根据一个实施例的系统1800的示例。系统1800包括处理硬件1810、存储器1820和网络接口1830。在一个实施例中,处理硬件1810可以包括一个或多个处理器和加速器,例如以下的一个或多个:中央处理单元(CPU)、GPU、数字处理单元(DSP)、AI处理器、张量(tensor)处理器、神经处理器、多媒体处理器、其他通用和/或专用处理电路。
系统1800还包括耦接到处理硬件1810的存储器1820。存储器1820可以包括诸如动态随机存取存储器(DRAM)、SRAM、闪存和其他非暂时性机器可读存储介质的存储器设备;例如,易失性或非易失性存储设备。存储器1820还可以包括例如任何类型的固态或磁存储设备的存储设备。在一个实施例中,存储器1820可以存储一个或多个EDA工具1840,包括但不限于神经网络、AI代理和用于宏布置的其他工具。EDA工具1840的示例包括A000和A001(图1A)、A002和A003(图1B)、A004(图10A)、A005(图10B)和A006(图16)。在一些实施例中,存储器1820可以存储指令,这些指令在由处理硬件1810执行时使处理硬件执行上述用于宏布置和/或用于训练NN执行宏布置的方法和操作。然而,应当理解,上述方法和操作可以由A000和A001(图1A)、A002和A003(图1B)、A004(图10A)、A005(图10B)和A006(图16)的实施例以外的实施例来执行。
在一些实施例中,系统1800还可以包括网络接口1830以连接到有线和/或无线网络。可以理解,图18的实施例为了说明的目的而被简化了,其还可以包括额外的硬件组件。
图19是示出根据一个实施例的由NN进行宏布置的方法1900的流程图。方法1900可以由图18中的系统1800执行。方法1900开始于系统接收包括多个目标和偏好子空间的输入(S1910)。每个偏好都是分配给相应目标的权重向量,每个目标都是对放置特征的度量。NN被训练为将宏布置在一组训练芯片上,以优化根据目标和偏好所计算的回报(S1920)。NN生成在芯片当前状态下动作的概率分布,该动作指示芯片上放置宏的坐标(S1930)。NN进一步生成一系列(状态,动作)对以形成轨迹(S1940)。轨迹中的最终状态对应于完成的宏布置。
在一个实施例中,训练NN的方法包括将来自子空间的采样偏好编码到NN的潜在状态(intent state)中。可以根据来自子空间的采样偏好与相应目标的线性组合来计算回报。
系统应用遮罩(mask)来阻挡芯片上的区域。将此遮罩应用于概率分布,在芯片上产生遮蔽分布(masked distribution)。在基于随机策略的一个实施例中,NN根据遮蔽分布对动作进行采样。NN根据随机策略进一步在样本收集操作中采样一组轨迹,系统使用该组轨迹来计算对NN参数的更新。在另一个基于确定性策略的实施例中,NN根据遮蔽分布选择具有最高概率的动作。NN根据确定性策略在评估操作中采样一组轨迹。然后系统根据多个回报值计算最终回报值,并且基于其中一个轨迹的最终状态计算每个回报值。
在一个实施例中,在训练NN之后,系统接收给定的偏好和要在其上放置宏的给定芯片。系统使用给定偏好和给定芯片上的随机采样轨迹进一步训练NN。然后使用进一步训练的NN对最终轨迹进行采样,以生成完整的宏布置。
在一个实施例中,目标包括至正锚点和负锚点中的至少一个的距离。正锚点吸引宏的第一子集的放置,而负锚点排斥宏的第二子集的放置。
在一个实施例中,系统可以使用NN来生成一组布局以将同一组宏放置在给定芯片上,并且每个布局是基于不同的偏好来生成的。系统然后接收该组布局中候选布局的指示。候选布局是根据候选偏好生成的。系统修改候选偏好以生成p个偏好。NN然后生成一组后续的p放置,以将同一组宏放置在给定的芯片上。重复该过程,直到最终布局被接受。在一个实施例中,为了修改候选偏好,系统可以通过相应的一个或多个增量值来修改候选偏好的一个或多个向量元素,其中每个增量值在预定值范围内。
图20是例示根据一个实施例的用于训练NN以执行宏布置的方法2000的流程图。方法2000可以由图18中的系统1800执行。方法2000开始于系统接收一组目标轨迹,这些轨迹对应于训练组中各个芯片上各个宏的放置(S2010)。每个目标轨迹中的最终状态对应于目标放置的完成。然后系统搜索回报函数,该回报函数可产生大于学习回报(learnedreward)的目标回报(target reward)(S2020)。目标回报是根据目标轨迹计算的,学习回报是根据神经网络NN所生成的轨迹计算的。系统进一步搜索参数来更新NN,使得NN生成可使学习回报最大化的更新轨迹(S2030)。
在一个实施例中,重复搜索回报函数和搜索参数的过程,直到找不到所产生的目标回报大于学习回报的回报函数为止。在一个实施例中,回报函数由第二NN计算以输出目标回报和学习回报。当搜索回报函数时,可以通过将梯度下降应用到由目标回报和学习回报之间的差所定义的损失函数(loss function)来更新第二NN的参数。在另一个实施例中,回报函数是偏好和相应目标的线性组合。
图21是例示根据一个实施例的用于放置无序宏的方法2100的流程图。方法2100可以由图18中的系统1800执行。方法2100开始于NN在芯片的当前状态下生成宏排序(macro-order)动作的第一概率分布(S2110)。宏排序动作是从待放置在芯片上的一组无序的宏中选择一个宏。NN进一步在芯片当前状态下生成定位动作(positional action)的第二概率分布(S2120)。定位动作是在芯片上选择一个用来放置宏的坐标。NN分别基于第一概率分布和第二概率分布对宏排序动作和定位动作进行采样(S2130)。然后更新宏排序遮罩,从该组无序的宏中移除已放置的宏(S2140),并且也更新定位遮罩(positional mask),以阻挡芯片上的区域用于后续放置剩余宏(S2150)。
在一个实施例中,NN被训练成根据由第一组参数所参数化的宏排序策略生成第一概率分布。NN被进一步被训练成根据由第二组参数所参数化的动作策略生成第二概率分布。第一组参数和第二组参数被同时训练。
当训练NN时,系统可以接收一组目标轨迹,其对应于训练组中各个芯片上各个宏的放置。每个目标轨迹中的最终状态对应于目标放置的完成。然后系统搜索回报函数,该回报函数可产生大于学习回报(learned reward)的目标回报(target reward)。目标回报是根据目标轨迹计算的,学习回报是根据神经网络NN所生成的轨迹计算的。系统进一步搜索参数来更新NN,使得NN生成可使学习回报最大化的更新轨迹。
在一个实施例中,可以在以下过程中训练NN。系统首先使用NN根据随机策略(stochastic policy)在样本收集操作中对一组第一轨迹进行采样。然后,系统使用从第一轨迹计算的损失函数,在训练操作中更新NN的参数。该系统在评估操作中从多个回报值中计算出最终回报值。每个回报值是基于由具有更新参数的NN所生成的第二轨迹之一的最终状态计算的。重复该过程,直到最终回报值达到阈值。
本文已经描述了各种功能组件或块。如本领域技术人员将理解的,功能块将优选地通过电路(在一个或多个处理器和编码指令的控制下操作的专用电路或通用电路)来实现,电路通常包括被配置为根据本文描述的功能和操作来控制电路操作的晶体管。
虽然本发明已根据几个实施例进行了描述,但本领域技术人员将认识到本发明不限于所描述的实施例,并且可以在所附权利要求的精神和范围内进行修改和变更来实践。因此,本发明的描述被认为是说明性的而不是限制性的。
Claims (20)
1.一种神经网络的宏布置方法,包括:
接收包括多个目标和偏好子空间的输入,其中每个偏好是分配给相应目标的权重向量,并且每个目标是放置特征的度量;
训练所述神经网络以将多个宏放置在芯片训练组上,以优化从所述多个目标和所述偏好计算的回报;
由所述神经网络生成在芯片的当前状态下动作的概率分布,所述动作指示在所述芯片上放置宏的坐标;以及
由所述神经网络生成一系列(状态,动作)对以形成轨迹,其中所述轨迹中的最终状态对应于完成的宏布置。
2.如权利要求1所述的方法,其中训练所述神经网络包括将来自所述子空间的采样偏好编码成所述神经网络的潜在状态。
3.如权利要求1所述的方法,其中根据来自所述子空间的采样偏好和相应目标的线性组合来计算所述回报。
4.如权利要求1所述的方法,其中生成所述动作的概率分布还包括:
将遮罩应用于所述概率分布以在所述芯片上产生遮蔽分布,其中所述遮罩阻挡所述芯片上的区域;以及
基于随机策略,根据所述遮蔽分布对所述动作进行采样。
5.如权利要求4所述的方法,其中训练所述神经网络还包括:
根据所述随机策略在样本收集操作中对一组轨迹进行采样;以及
使用所述一组轨迹来计算对所述神经网络的参数的更新。
6.如权利要求1所述的方法,其中生成所述动作的概率分布还包括:
将遮罩应用于所述概率分布以在所述芯片上产生遮蔽分布,其中所述遮罩阻挡所述芯片上的区域;以及
基于确定性策略,根据所述遮蔽分布选择概率最高的动作。
7.如权利要求6所述的方法,其中训练所述神经网络进一步包括:
根据所述确定性策略在评估操作中对一组轨迹进行采样;以及
从多个回报值计算最终回报值,每个回报值基于多个轨迹中其中一个轨迹的最终状态计算。
8.如权利要求1所述的方法,还包括:
对所述神经网络训练后,接收给定的偏好和要放置多个宏的给定芯片;
用所述给定的偏好和所述给定芯片上多个随机采样的轨迹进一步训练所述神经网络;以及
使用进一步训练的所述神经网络对最终轨迹进行采样以生成完整的宏布置。
9.如权利要求1所述的方法,其中,所述多个目标还包括到正锚点和负锚点中的至少一个的距离,所述正锚点吸引所述多个宏的第一子集的放置,所述负锚点排斥所述多个宏的第二子集的放置。
10.如权利要求1所述的方法,还包括:
由所述神经网络生成一组放置,以在给定芯片上放置一组相同的宏,其中每个放置是基于不同的偏好生成的;
接收所述一组放置中的候选放置的指示,其中所述候选放置是基于候选偏好生成的;
修改所述候选偏好以生成p个偏好;
由所述神经网络生成一组后续的p个放置,以将所述一组相同的宏放置在所述给定芯片上;以及
将接收所述指示、修改所述候选偏好以及生成所述一组后续的p个放置这些步骤重复,直到最终放置被接受。
11.如权利要求10所述的方法,其中修改所述候选偏好还包括:
将所述候选偏好的一个或多个向量元素修改相应的一个或多个增量值,其中每个增量值在预定值范围内。
12.一种训练神经网络以在芯片上进行宏布置的方法,包括:
接收一组目标轨迹,所述一组目标轨迹对应于训练组中在各个芯片上各个宏的放置,其中每个目标轨迹中的最终状态对应于目标放置的完成;
搜索所生成的目标回报大于学习回报的回报函数,其中所述目标回报是根据所述目标轨迹计算的,所述学习回报是根据所述神经网络生成的轨迹计算的;以及
搜索参数来更新所述神经网络,以便所述神经网络生成能使所述学习回报最大化的更新的轨迹。
13.如权利要求12所述的方法,还包括:
重复搜索所述回报函数和重复搜索所述参数,直到找不到所生成的所述目标回报大于所述学习回报的回报函数。
14.如权利要求12所述的方法,其中,所述回报函数由第二神经网络计算以输出所述目标回报和所述学习回报。
15.如权利要求14所述的方法,其中搜索所述回报函数还包括:
通过将梯度下降应用于由所述目标回报和所述学习回报之间的差所定义的损失函数,来更新所述第二神经网络的参数。
16.如权利要求12所述的方法,其中,所述回报函数是偏好和对应目标的线性组合。
17.一种在芯片上放置无序宏的方法,包括:
由神经网络生成在芯片当前状态下宏排序动作的第一概率分布,其中,所述宏排序动作是从要放置在芯片上的一组无序的宏中选择一个宏;
由所述神经网络生成在所述芯片的当前状态下定位动作的第二概率分布,所述定位动作是在所述芯片上选择坐标用于放置所述宏;
由所述神经网络分别根据所述第一概率分布和所述第二概率分布对所述宏排序动作和所述定位动作进行采样;
更新宏排序遮罩,从所述一组无序的宏中移除已放置的宏;以及
更新定位遮罩,以阻挡所述芯片上特定区域以用于剩余宏的后续放置。
18.如权利要求17所述的方法,还包括:
训练所述神经网络,根据由第一组参数所参数化的宏排序策略,生成所述第一概率分布,并根据由第二组参数所参数化的动作策略生成所述第二概率分布,其中所述第一组参数和所述第二组参数被同时训练。
19.如权利要求17所述的方法,还包括:
训练所述神经网络以生成所述第一概率分布和所述第二概率分布,其中,训练所述神经网络还包括:
接收一组目标轨迹,所述一组目标轨迹对应于训练组中在各个芯片上各个宏的放置,其中每个目标轨迹中的最终状态对应于目标放置的完成;
搜索所生成的目标回报大于学习回报的回报函数,其中所述目标回报是根据所述目标轨迹计算的,所述学习回报是根据所述神经网络生成的轨迹计算的;以及
搜索参数来更新所述神经网络,以便所述神经网络生成能使所述学习回报最大化的更新的轨迹。
20.如权利要求19所述的方法,其中训练所述神经网络还包括:
由所述神经网络根据所述随机策略在样本收集操作中采样一组第一轨迹;
使用从所述第一轨迹计算的损失函数,在训练操作中更新所述神经网络的参数;
在评估操作中从多个回报值计算最终回报值,每个回报值是基于由具有所述更新参数的所述神经网络所生成的第二轨迹之一的最终状态计算的;以及
重复所述样本收集操作、所述训练操作和所述评估操作,直到所述最终回报值达到阈值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163254582P | 2021-10-12 | 2021-10-12 | |
US63/254,582 | 2021-10-12 | ||
PCT/CN2022/124863 WO2023061408A1 (en) | 2021-10-12 | 2022-10-12 | Macro placement using artificial intelligence approach |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116324787A true CN116324787A (zh) | 2023-06-23 |
Family
ID=85987271
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280005976.0A Pending CN116324787A (zh) | 2021-10-12 | 2022-10-12 | 利用人工智能方案的宏布置 |
CN202280005736.0A Pending CN116261726A (zh) | 2021-10-12 | 2022-10-12 | 利用对比样本训练神经网络用于宏布置 |
CN202280005737.5A Pending CN116261727A (zh) | 2021-10-12 | 2022-10-12 | 利用人工智能方案在连续动作空间的宏布置 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280005736.0A Pending CN116261726A (zh) | 2021-10-12 | 2022-10-12 | 利用对比样本训练神经网络用于宏布置 |
CN202280005737.5A Pending CN116261727A (zh) | 2021-10-12 | 2022-10-12 | 利用人工智能方案在连续动作空间的宏布置 |
Country Status (3)
Country | Link |
---|---|
CN (3) | CN116324787A (zh) |
TW (3) | TWI828362B (zh) |
WO (3) | WO2023061408A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117292717B (zh) * | 2023-11-27 | 2024-03-22 | 广东美的制冷设备有限公司 | 异音识别方法、装置、电子设备和存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3112843B2 (ja) * | 1996-09-12 | 2000-11-27 | 日本電気アイシーマイコンシステム株式会社 | 半導体集積回路の自動配置配線方法 |
US20070157146A1 (en) * | 2006-01-03 | 2007-07-05 | Mediatek Inc. | Method of packing-based macro placement and semiconductor chip using the same |
US7596773B2 (en) * | 2006-03-02 | 2009-09-29 | Texas Instruments Incorporated | Automating optimal placement of macro-blocks in the design of an integrated circuit |
US8234615B2 (en) * | 2010-08-04 | 2012-07-31 | International Business Machines Corporation | Constraint programming based method for bus-aware macro-block pin placement in a hierarchical integrated circuit layout |
TWI623844B (zh) * | 2013-07-05 | 2018-05-11 | 國立成功大學 | 適用於混合模組之平面規劃方法 |
US10372860B2 (en) * | 2015-07-01 | 2019-08-06 | Synopsys, Inc. | Netlist abstraction for circuit design floorplanning |
WO2017136784A1 (en) * | 2016-02-05 | 2017-08-10 | Google Inc. | Generative neural networks |
US10372861B2 (en) * | 2016-11-28 | 2019-08-06 | Ncku Research And Development Foundation | Method of macro placement and a non-transitory computer readable medium thereof |
US10664640B2 (en) * | 2018-07-19 | 2020-05-26 | International Business Machines Corporation | Coherent placement of slotline mode suppression structures in coplanar waveguides for quantum devices |
SG11202105629SA (en) * | 2018-12-04 | 2021-06-29 | Google Llc | Generating integrated circuit floorplans using neural networks |
CN112740200B (zh) * | 2019-07-25 | 2024-05-03 | 百度时代网络技术(北京)有限公司 | 用于基于共指消解的端到端深度强化学习的系统和方法 |
CN114375443A (zh) * | 2019-09-11 | 2022-04-19 | 华为技术有限公司 | 一种安全检测的方法和装置 |
CN112183015B (zh) * | 2020-11-04 | 2024-04-19 | 南京师范大学 | 一种面向深度神经网络的芯片布图规划方法 |
-
2022
- 2022-10-12 WO PCT/CN2022/124863 patent/WO2023061408A1/en active Application Filing
- 2022-10-12 CN CN202280005976.0A patent/CN116324787A/zh active Pending
- 2022-10-12 CN CN202280005736.0A patent/CN116261726A/zh active Pending
- 2022-10-12 TW TW111138600A patent/TWI828362B/zh active
- 2022-10-12 TW TW111138605A patent/TW202333078A/zh unknown
- 2022-10-12 WO PCT/CN2022/124856 patent/WO2023061404A1/en active Application Filing
- 2022-10-12 CN CN202280005737.5A patent/CN116261727A/zh active Pending
- 2022-10-12 TW TW111138601A patent/TW202324183A/zh unknown
- 2022-10-12 WO PCT/CN2022/124860 patent/WO2023061407A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN116261726A (zh) | 2023-06-13 |
TW202324204A (zh) | 2023-06-16 |
WO2023061404A1 (en) | 2023-04-20 |
WO2023061407A1 (en) | 2023-04-20 |
TW202333078A (zh) | 2023-08-16 |
WO2023061408A1 (en) | 2023-04-20 |
TWI828362B (zh) | 2024-01-01 |
CN116261727A (zh) | 2023-06-13 |
TW202324183A (zh) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102611938B1 (ko) | 신경망을 사용한 통합 회로 플로어 플랜 생성 | |
CN112528591B (zh) | 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法 | |
CN114303150A (zh) | 集成电路设计中的机器学习驱动的预测 | |
CN104036090B (zh) | 电路优化方法及装置 | |
US20220067255A1 (en) | Dynamic current modeling in dynamic voltage drop analysis | |
CN116324787A (zh) | 利用人工智能方案的宏布置 | |
Liao et al. | DREAMPlace 4.0: Timing-driven global placement with momentum-based net weighting | |
US11651129B2 (en) | Selecting a subset of training data from a data pool for a power prediction model | |
US10803218B1 (en) | Processor-implemented systems using neural networks for simulating high quantile behaviors in physical systems | |
CN115510802A (zh) | 用于预测详细布线拓扑和轨道使用的机器学习模型 | |
US20210390241A1 (en) | Fast topology bus router for interconnect planning | |
US10896283B1 (en) | Noise-based optimization for integrated circuit design | |
Zhang et al. | A machine learning framework with feature selection for floorplan acceleration in ic physical design | |
US11797735B1 (en) | Regression testing based on overall confidence estimating | |
Liu et al. | Concurrent Sign-off Timing Optimization via Deep Steiner Points Refinement | |
Chang et al. | Flexible chip placement via reinforcement learning: late breaking results | |
US11263375B2 (en) | Constraint determination system and method for semiconductor circuit | |
Habibi et al. | Efficient assertion based verification using TLM | |
CN113973061A (zh) | 电路时延预测方法、装置、终端设备和可读存储介质 | |
Olenšek et al. | DESA: a new hybrid global optimization method and its application to analog integrated circuit sizing | |
Islam | Early Stage DRC Prediction Using Ensemble Machine Learning Algorithms | |
US20070260433A1 (en) | Parameter extraction method | |
US11741282B2 (en) | Reinforcement learning-based adjustment of digital circuits | |
Zhang et al. | A fast signal integrity design model of printed circuit board based on monte-carlo tree | |
Bokan et al. | SLOPE: Search with Learned Optimal Pruning-based Expansion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |