技术领域
[0001] 本公开总体说来涉及仿真技术领域,更具体地讲,涉及一种仿真优化方法和仿真优化装置。
相关背景技术
[0002] 从芯片制造到航天飞机,几乎所有的设计制造都离不开对其物理、化学过程进行仿真。通常,工程师需要通过不断优化改进设计物体的几何形状、材料等使仿真出来的结果在满足设计指标的前提下,最小化制造代价。传统方法需要通过试错的方式优化设计物的几何形状、材料,非常依赖工程师的经验。此外,给定几何、材料的物理化学过程仿真通常非常耗时,而且传统有限元方法中也需要工程师不断优化计算区域的网格保证结果的收敛。综上所述,传统方法是非常依赖工程师的经验且非常耗时。
[0003] 相关技术中提出了基于PINN(Physics Informed Neural Network,内嵌物理知识神经网络),利用深度学习的方法,以训练神经网络的形式进行仿真的方案。简单概括,PINN的原理就是将一些时间空间采样点的坐标输入待训练的神经网络,并输出仿真值,进而结合初始条件和边界条件计算损失函数,通过训练神经网络来最小化损失函数,以近似PDE(Partial Differential Equation,偏微分方程)的求解。其中,损失函数项包括初始和边界条件的残差项,以及区域中选定点处的PDE残差。训练完成后进行推理,也就是将时间空间点的坐标输入训练好的神经网络,就可以得到相应时间空间点上的仿真值。但PINN中的损失函数只能保证神经网络的训练在时间空间采样点处收敛,当要计算时间空间采样点以外的其他采样点的仿真值时,并不能保证该仿真值是准确可靠的。若训练中的采样点数量不足,可能造成计算精度较低,仿真结果不可靠。
具体实施方式
[0027] 提供参照附图的以下描述以帮助对由权利要求及其等同物限定的本发明的实施例的全面理解。包括各种特定细节以帮助理解,但这些细节仅被视为是示例性的。因此,本领域的普通技术人员将认识到在不脱离本发明的范围和精神的情况下,可对描述于此的实施例进行各种改变和修改。此外,为了清楚和简洁,省略对公知的功能和结构的描述。
[0028] 在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
[0029] PINN可通过已知的物理化学基本定理,对给定条件下的物理、化学相关过程进行仿真,得到仿真的物理场。例如,我们知道某个空间内的热传导方程(偏微分方程PDE)及其空间边界外部的温度和热源的功率(边界条件),我们可以求解出这整个空间的温度分布,也就是求解出这整个空间的温度场,作为仿真的物理场。典型的热传导问题如图1所示。
[0030] PINN的常见网络结构和求解过程如图2所示。
[0031] 首先,构建神经网络u(…)=φ(…;W,b),“…”代表采样点,根据实际需要可选择空间采样点或时间空间采样点,前者可利用坐标(x,y)或(x,y,z)来表示,是从待仿真的空间中提取的点,后者可利用坐标(x,y,t)或(x,y,z,t)来表示,是在空间采样点的基础上增加时间维度后得到的。具体来说,以设计芯片的散热结构为例,需仿真芯片在散热时各部位的温度,则可提取芯片的几何形状上的空间采样点。若需要仿真瞬态结果,例如仿真芯片在散热过程中各部位在某个时段内的温度变化,就需要加入时间维度t,以反映空间采样点在一段时间里内的状态变化,这些带有时间的空间采样点就是时间空间采样点;若仅需仿真静态结果,例如芯片散热一段时间后的稳态温度分布,就不需要加入时间维度t,可使用空间采样点。这里的u(…)作为神经网络输出的仿真值,对应的就是芯片散热问题中的采样点的温度T。
[0032] 然后对计算区域Ω和边界 进行采样,也就是确定要仿真的采样点,并输入神经网络进行计算,得到仿真值u。
[0033] 再基于计算得到的仿真值u确定损失函数的值。具体地,对计算区域内的采样点,计算他们的LossPDE=‖L(u)‑g‖,对边界点计算他们的LossBC=‖u‑vb‖,其中vb为边界条件中相应点的值,总损失Loss=LossPDE+LossBC。仍以热传导问题为例,g=0,因而
边界条件包含热源相关的边界条件和初始温度条件,初始温度条件描述了热传导初始时刻的温度分布条件,可以理解为四维的边界条件,热源相关的边界条件则可以理解为三维的边界条件,将边界条件的温度值作为vb,代入公式,结合相应边界采样点的温度仿真值u,即可得到相应的损失LossBC。需要说明是,这里举例的边界条件是Dirichlet边界条件(狄利克雷边界条件),Neumann(诺依曼)、robin(罗宾)等边界条件也可以通过相近的形式加入到神经网络的训练损失函数中。其中,Dirichlet边界条件给出了未知函数在边界上的数值;
Neumann边界条件给出了未知函数在边界外法线的方向导数;robin边界条件给出了未知函数在边界上的函数值和外法向导数的线性组合。此外,初始条件T(…,0)通过与LossBC相同的形式加入到损失函数中。
[0034] 最后就可以通过梯度下降法来迭代训练神经网络φ(…;W,b)的权重W和偏置项b,直到总损失Loss小于给定阈值δ,即可完成训练,得到训练后的神经网络u(…),作为仿真结果。可将任意空间点或时间空间点输入该训练后的神经网络u(…),得到相应点处的仿真值u。
[0035] 然而损失函数只能保证神经网络的训练在时间空间采样点处收敛,当要计算时间空间采样点以外的其他采样点的仿真值时,并不能保证该仿真值是准确可靠的。若训练中的采样点数量不足,可能造成计算精度较低,仿真结果不可靠。
[0036] 根据本公开示例性实施例的仿真优化方法,在初始的仿真神经网络和采样点集合的基础上,多次迭代训练仿真神经网络,每次迭代训练,都相对于上一次增加采样点,并对比新训练得到的仿真神经网络的仿真值与上次训练得到的仿真神经网络的仿真值的差异,可确定增加采样点是否令仿真结果发生明显变化。同时,在发生明显变化时认为当前的仿真结果不可靠,继续增加采样点并进行下一次迭代训练,在差异较小、未发生明显变化时,认为当前的仿真结果足够可靠,停止迭代训练。该方法经过多次迭代训练,就可以逐渐得到足够数量的采样点,可实现采样点的自适应调整,并保证了此时相应的仿真结果的可靠性。
[0037] 下面参照图3至图5详细描述根据本公开示例性实施例的仿真优化方法和仿真优化装置。
[0038] 图3是示出根据本公开示例性实施例的仿真优化方法的流程图;图4是示出根据本公开示例性实施例的仿真优化方法的流程示意图。根据本公开示例性实施例的仿真优化方法可以在具有足够运算能力的计算装置中实现。
[0039] 参照图3,在步骤S301中,获取第一采样点集合和第一仿真神经网络。对采样点的介绍参见上文,第一采样点集合是初始的采样点集合,对应于图4所示的P,可以在整个计算空间中均匀、稀疏地选取初始的采样点,以为后续增加采样点提高余量。第一仿真神经网络是初始的仿真神经网络,可采用内嵌物理知识神经网络,有助于实现给定条件下的物理、化学相关过程的仿真。参照图4,类似于相关技术,需先根据具体的物理问题确定偏微分方程(PDE)和边界条件,以便于后续训练网络时确定损失函数。具体执行时,可先初始化两个结构完全相同的仿真神经网络φ1和φ2,以便后续步骤中保留未经训练的第一仿真神经网络。
[0040] 在步骤S302,将第一采样点集合输入第一仿真神经网络,得到第一仿真神经网络输出的第一仿真值。该步骤可得到在现有的第一仿真神经网络中,第一采样点集合对应的第一仿真值。结合后续步骤S307可知,对于迭代训练中非首次迭代训练,每一次迭代训练,采样点都会相对于上一次迭代训练有所增加,因此第一仿真值可以表示在上一次迭代训练得到的仿真神经网络中,经过扩充的采样点集合中各个采样点处的仿真值。第一仿真值对应于图4所示的φ1(P)。
[0041] 在步骤S303,基于第一采样点集合训练第一仿真神经网络,得到第二仿真神经网络。通过基于第一采集点集合对现有的第一仿真神经网络进行训练,并得到相应的第二仿真神经网络,能够得到在第一采样点基础上进行仿真的结果。
[0042] 在步骤S304,将第一采样点集合输入第二仿真神经网络,得到第二仿真神经网络输出的第二仿真值。第二仿真值是步骤S303的仿真结果在具体采样点处的展现。对于迭代训练中非首次执行的步骤S304,第二仿真值可以表示在本次迭代训练新得到的仿真神经网络中,经过扩充的采样点集合中各个采样点处的仿真值。第二仿真值对应于图4所示的φ2(P)。
[0043] 在步骤S305,获取第一仿真值和第二仿真值之间的差异。通过对比第一仿真值和第二仿真值,可以了解增加采样点后,仿真结果是否发生了明显变化,以作为后续是否继续迭代训练的判断依据。差异对应于图4所示的‖φ1(P)‑φ2(P)‖。
[0044] 可选地,第一仿真值和第二仿真值之间的差异通过以下步骤得到:针对第一采样点集合中的每个采样点,计算第一仿真值和第二仿真值的差值;确定各个采样点对应的差值的统计值,作为第一仿真值和第二仿真值之间的差异。通过确定每个采样点对应的第一仿真值和第二仿真值的差值,并加以统计,可以提炼出具有代表性的数据,作为差异,有助于对第一仿真值和第二仿真值进行定量、简洁、直观地表示。可选地,统计值可为平均值、加权平均值、中位数、众数,本公开对此不作限制。应理解,采用加权平均值时,可根据对不同区域的关注程度的不同来确定权重,越关心的区域权要越大。
[0045] 在步骤S306,判断第一仿真值和第二仿真值之间的差异是否小于差异阈值,若否,转到步骤S307,若是,转到步骤S308。差异阈值对应于图4所示的δ。
[0046] 在步骤S307,对第一采样集合增加采样点,得到第二采样点集合,并将第二采样点集合和第二仿真神经网络作为下一次迭代训练的第一采样点集合和第一仿真神经网络,返回步骤S302。在差异明显时,可认为当前的仿真结果不可靠,增加采样点继续下一次迭代训练。将第二采样点集合作为下一次迭代训练的第一采样点集合,对应于图4的P=P+Pi。将第二仿真神经网络作为下一次迭代训练的第一仿真神经网络,对应于图4的φ1=φ2。
[0047] 在步骤S308,迭代训练结束,将第二仿真神经网络作为优化后的仿真神经网络。在差异较小时,可认为当前的仿真结果足够可靠,停止迭代训练,得到仿真结果。
[0048] 接下来介绍在步骤S307中如何增加采样点。
[0049] 可选地,采样点可为空间点,具体来说可以是二维空间点,也可以是三维空间点,取自设计的几何形状结构,可利用坐标(x,y)或(x,y,z)来表示;采样点也可以为时间空间点,同样取自设计的几何形状结构,但还额外增加了时间维度t,可利用坐标(x,y,t)或(x,y,z,t)来表示。对第一采样集合增加采样点的步骤具体包括:对第一采样集合,在设定区域增加采样点。通过仅在设定区域增加采样点,而不在全局均增加采样点,可以实现对重点关注区域的高密度采样,有助于合理控制采样点数量,提高采样效率,提升计算效率。
[0050] 其中,在采样点为空间点的情况下,设定区域为空间区域,即三维空间内的一定区域,可以实现在几何形状结构的局部增加采样点。
[0051] 在采样点为时间空间点的情况下,设定区域包括空间区域和时间区域中的至少一个。设定区域为空间区域的情况同前;设定区域为时间区域意味着包含了在一定时间段内的整个几何形状结构,也就是仅在时间维度上对局部时间段增加采样点,而不对几何形状结构的不同部分加以区分;设定区域同时包括空间区域和时间区域则意味着包含了一定时间段内的几何形状结构中的一个特定部分,从而在时间维度和空间维度都实现局部增加采样点。仿真计算中可以根据实际情况选择所需的设定区域选取方式,有助于提升方案灵活性。
[0052] 可选地,在设定区域包括空间区域的情况下,设定区域包括以下至少一个:第一仿真值在空间上的梯度绝对值大于空间梯度阈值的第一空间区域、预设的第二空间区域;在设定区域包括时间区域的情况下,设定区域包括以下至少一个:第一仿真值在时间上的梯度绝对值大于时间梯度阈值的第一时间区域、预设的第二时间区域。也就是说,在选取设定区域时,无论是空间区域还是时间区域,都可以根据第一仿真值的梯度绝对值,选择梯度较大、第一仿真值变化剧烈的区域,以便于进一步仿真出该区域的变化细节,并可实现采样点的自适应增加,有助于保障该区域的采样点充足,提升仿真准确性。除此以外,还可以通过预设的方式来直接指定空间区域或时间区域,从而在关心区域增加采样点,即第二空间区域和第二时间区域为关心区域,还可进一步包括关心区域的附近区域,有助于实现针对性地增加采样点,提升关心区域的仿真准确性。作为示例,在设计芯片的散热结构时,可能会重点关注核心电路的散热效率,所以可以在对散热过程进行仿真时,将核心电路所在部位(即关心区域)作为设定区域中的第二空间区域。
[0053] 可选地,在设定区域包括第一空间区域和第一时间区域中的至少一个的情况下,也就是要在梯度大的区域增加采样点时,在设定区域增加采样点的步骤包括:根据第一仿真值在设定区域的梯度绝对值,确定采样点增量,采样点增量与第一仿真值在设定区域的梯度绝对值正相关;基于采样点增量,在设定区域增加采样点。通过确定与梯度绝对值正相关的采样点增量,能够在第一仿真值变化越剧烈的部位增加越多的采样点,在第一仿真值变化越缓和的部位增加越少的采样点,能够进一步实现采样点的自适应、合理增加,有助于进一步提高采样效率和计算效率。
[0054] 图5是示出根据本公开示例性实施例的仿真优化装置的框图。
[0055] 参照图5,根据本公开示例性实施例的仿真优化装置500包括获取单元501和优化单元502。
[0056] 获取单元501被配置为获取第一采样点集合和第一仿真神经网络。
[0057] 优化单元502被配置为利用第一采样点集合,对第一仿真神经网络进行多次迭代训练,得到优化后的仿真神经网络。
[0058] 其中,每次迭代训练包括:将第一采样点集合输入第一仿真神经网络,得到第一仿真神经网络输出的第一仿真值;基于第一采样点集合训练第一仿真神经网络,得到第二仿真神经网络;将第一采样点集合输入第二仿真神经网络,得到第二仿真神经网络输出的第二仿真值;在第一仿真值和第二仿真值之间的差异大于或等于差异阈值的情况下,对第一采样集合增加采样点,得到第二采样点集合,其中,第二采样点集合和第二仿真神经网络作为下一次迭代训练的第一采样点集合和第一仿真神经网络;其中,当第一仿真值和第二仿真值之间的差异小于差异阈值时,迭代训练结束。
[0059] 可选地,采样点为空间点或时间空间点,优化单元502还被配置为对第一采样集合,在设定区域增加采样点,得到第二采样点集合,其中,在采样点为空间点的情况下,设定区域为空间区域,在采样点为时间空间点的情况下,设定区域包括空间区域和时间区域中的至少一个。
[0060] 可选地,在设定区域包括空间区域的情况下,设定区域包括以下至少一个:第一仿真值在空间上的梯度绝对值大于空间梯度阈值的第一空间区域、预设的第二空间区域;在设定区域包括时间区域的情况下,设定区域包括以下至少一个:第一仿真值在时间上的梯度绝对值大于时间梯度阈值的第一时间区域、预设的第二时间区域。
[0061] 可选地,在设定区域包括第一空间区域和第一时间区域中的至少一个的情况下,优化单元502还被配置为:根据第一仿真值在设定区域的梯度绝对值,确定采样点增量,采样点增量与第一仿真值在设定区域的梯度绝对值正相关;基于采样点增量,在设定区域增加采样点,得到第二采样点集合。
[0062] 可选地,第一仿真值和第二仿真值之间的差异通过以下步骤得到:针对第一采样点集合中的每个采样点,计算第一仿真值和第二仿真值的差值;确定各个采样点对应的差值的统计值,作为第一仿真值和第二仿真值之间的差异。
[0063] 可选地,第一仿真神经网络是内嵌物理知识神经网络。
[0064] 应该理解,根据本公开示例性实施例的仿真优化装置500的具体实现方式可参照结合图3至图4描述的仿真优化方法的具体实现方式来实现,在此不再赘述。
[0065] 以上已参照图3至图5描述了根据本公开示例性实施例的仿真优化方法和仿真优化装置。
[0066] 图5所示出的仿真优化装置中的各个单元可被配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,各个单元可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。此外,各个单元所实现的一个或多个功能也可由物理实体设备(例如,处理器、客户端或服务器等)中的组件来统一执行。
[0067] 此外,参照图3和图4所描述的仿真优化方法可通过记录在计算机可读存储介质上的程序(或指令)来实现。例如,根据本公开的示例性实施例,可提供存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行根据本公开的仿真优化方法。
[0068] 上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,应注意,计算机程序还可用于执行除了上述步骤以外的附加步骤或者在执行上述步骤时执行更为具体的处理,这些附加步骤和进一步处理的内容已经在参照图3和图4进行相关方法的描述过程中提及,因此这里为了避免重复将不再进行赘述。
[0069] 应注意,根据本公开示例性实施例的仿真优化装置中的各个单元可完全依赖计算机程序的运行来实现相应的功能,即,各个单元在计算机程序的功能架构中与各步骤相应,使得整个系统通过专门的软件包(例如,lib库)而被调用,以实现相应的功能。
[0070] 另一方面,图5所示的各个单元也可以通过硬件、软件、固件、中间件、微代码或其任意组合来实现。当以软件、固件、中间件或微代码实现时,用于执行相应操作的程序代码或者代码段可以存储在诸如存储介质的计算机可读介质中,使得处理器可通过读取并运行相应的程序代码或者代码段来执行相应的操作。
[0071] 例如,本公开的示例性实施例还可以实现为计算装置,该计算装置包括存储部件和处理器,存储部件中存储有计算机可执行指令集合,当计算机可执行指令集合被处理器执行时,执行根据本公开示例性实施例的仿真优化方法。
[0072] 具体说来,计算装置可以部署在服务器或客户端中,也可以部署在分布式网络环境中的节点装置上。此外,计算装置可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其他能够执行上述指令集合的装置。
[0073] 这里,计算装置并非必须是单个的计算装置,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。计算装置还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子装置。
[0074] 在计算装置中,处理器可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
[0075] 根据本公开示例性实施例的仿真优化方法中所描述的某些操作可通过软件方式来实现,某些操作可通过硬件方式来实现,此外,还可通过软硬件结合的方式来实现这些操作。
[0076] 处理器可运行存储在存储部件之一中的指令或代码,其中,存储部件还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
[0077] 存储部件可与处理器集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储部件可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储部件和处理器可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器能够读取存储在存储部件中的文件。
[0078] 此外,计算装置还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。计算装置的所有组件可经由总线和/或网络而彼此连接。
[0079] 根据本公开示例性实施例的仿真优化方法可被描述为各种互联或耦合的功能块或功能示图。然而,这些功能块或功能示图可被均等地集成为单个的逻辑装置或按照非确切的边界进行操作。
[0080] 因此,参照图3和图4所描述的仿真优化方法可通过包括至少一个计算装置和至少一个存储指令的存储装置的系统来实现。
[0081] 根据本公开的示例性实施例,至少一个计算装置是根据本公开示例性实施例的用于执行仿真优化方法的计算装置,存储装置中存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个计算装置执行时,执行参照图3和图4所描述的仿真优化方法。
[0082] 以上描述了本公开的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,本公开不限于所披露的各示例性实施例。在不偏离本公开的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本公开的保护范围应该以权利要求的范围为准。