一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于强化学习的集成电路中的路由连接的制作方法

2021-11-05 19:21:00 来源:中国专利 TAG:

基于强化学习的集成电路中的路由连接
1.相关申请的交叉引用
2.本技术要求于2020年5月4日由mark ren等人提交的题目为“一种基于深度强化学习的亚10nm鳍式场效应晶体管(finfet)技术的标准单元路由方法”的美国临时申请序号no.63/019,892的权益,其与本技术共同转让并且通过引用全文并入本文。
技术领域
3.本技术总体上涉及电路,并且更具体地,涉及集成电路的端子之间的路由连接。


背景技术:

4.集成电路(ic)是出于共同目的以某种方式连接在一起的电气元件的集合。ic通常被称为“芯片”并且可以在常见的家用设备(如电视机、计算机和车库开门器)的电路板上找到。ic的电气元件(例如晶体管、电阻器、电容器等)连接在一起以根据若干设计步骤执行共同目的。
5.设计步骤(也被称为设计流程)通常包括系统规范、系统级设计、功能和逻辑设计、电路设计、物理设计、以及物理验证和签名。物理设计包括规划不同电气元件的布局,安放电气元件,以及确定电气元件的端子之间的连接的路由。物理验证工具用于检查物理设计。设计规则作为输入被提供给物理验证工具,并用于执行设计规则检查(drc)以实现设计中的可靠性。在物理验证和签名之后,制造、封装和测试ic。然后准备使用成品。


技术实现要素:

6.在一个方面,本公开提供了一种使用强化学习来创建用于路由电路的网的模型的方法。在一个示例中,所述模型包括:(1)创建第一图像和第二图像,所述第一图像表示使用网在路由环境中连接电路的一组端子,所述第二图像表示用于所述连接的路由环境中的阻塞,其中所述第一图像和所述第二图像具有多个路由层,并且针对所述电路的所述至少一些网而创建,(2)使用神经网络(nn),基于所述至少一些网的所述第一图像和第二图像,为所述至少一些网创建特征空间图像,以及(3)创建策略函数,该策略函数提供基于至少一些网的特征空间图像选择用于连接端子组的路由动作的概率,其中所述策略函数的参数与所述电路的所述网的数量无关。
7.在另一方面,本公开提供了一种采用游戏训练rl代理以确定电路的路由连接的方法。在一个示例中,该方法包括:(1)由rl代理观察路由环境中电路的端子位置之间的当前路由状态,(2)从所述rl代理向所述路由环境提供改变所述端子位置之间的当前路由状态的路由动作,其中所述rl代理基于与所述电路的所述网的数量的用于路由网的模型来提供所述路由动作,(3)由所述路由环境评估所述路由动作,以及(4)基于所述评估从所述路由环境向所述rl代理提供一个或更多个奖赏。
8.在又一方面,本公开提供了一种用于采用用于rl代理的游戏过程确定电路的端子之间的路由连接的方法。在一个示例中,确定路由连接的方法包括:(1)接收具有已知端子
组的电路设计,(2)在路由环境中为端子组建立端子位置,以及(3)由所述rl代理采用与所述电路的所述网的数量无关的模型来确定所述已知端子组之间的网的路由。
9.在附加的方面,本公开提供了一种用于电路的路由连接的rl代理。在一个示例中,所述rl代理包括:(1)函数近似器,其基于用于采取不同路由动作的概率,生成用于连接所述电路的网的端子组的路由动作,以及将所述路由动作发送到路由环境,以及(2)学习处理器,其从所述路由环境接收游戏图像并从中提供与所述电路的网的数量无关的用于所述函数近似器的参数。
附图说明
10.现在结合附图参考以下描述,在附图中:
11.图1示出了根据本公开的原理构造的电路路由系统的示例的框图;
12.图2示出了根据本公开的原理的用于路由电路的网的rl代理的模型的架构的示例的示图;
13.图3示出了rl代理在三维空间的路由环境中路由两个网的动作序列,并且提供了为rl代理的学习处理器创建三层图像的示例;
14.图4示出了根据本公开的原理的用于路由电路的网的rl代理的模型的另一个架构的示例的图;
15.图5示出了根据本公开的原理的使用强化学习来创建用于路由电路的网的模型的方法的示例的流程图;
16.图6示出了根据本公开的原理的采用游戏训练rl代理以确定电路的路由连接的方法的示例的流程图;
17.图7示出了根据本公开的原理的采用游戏过程确定电路的端子组与rl代理之间的路由连接的方法的示例的流程图;以及
18.图8示出了计算系统的示例的框图,在该计算系统中可以实现在此所公开的系统、方法或装置的至少一部分。
具体实施方式
19.由于ic的复杂度持续增加,所以需要一种用于确定ic的端子(如标准单元的端子)之间的连接的自动化方法。标准单元是数字超大规模集成(vlsi)设计的构建块。例如,gpu由数百到数百万个这些标准单元(cell)制成。对于每个技术节点,通常需要诸如针对自动测试生成(atg)和vlsi的设计组来设计数千个标准单元,这可能花费10

15个设计者8

12个月来手动地设计它们。提供设计的困难之一涉及显著影响芯片的性能和成本的单元面积。因此,设计团队工作以尽可能最小化单元面积。ic的端子之间的路由连接可以极大地影响ic的物理尺寸。由于比早期技术节点更严格的可用空间和设计规则,在更小的技术节点(例如10nm或更小)上路由(routing)可能是困难的。例如,在finfet技术节点(诸如7nm和5nm)上的标准单元内路由是具有挑战性的,其中每个路由层仅可以路由一个方向(水平或垂直)。
20.目前存在用于确定连接路由的不同自动化方法,如利用数学优化技术和分析路由模型的方法。然而,这些当前方法可能受到所有设计规则可被表达为整数编程模型的线性
约束的假设的限制。另外,一些当前方法需要在开始求解过程之前预先计算次优路由候选者。
21.与现有方法的限制相比,本公开提供了确定电路的端子之间的连接的一般解决方案。本文中公开了一种基于机器学习(ml)的方法,其使用诸如深度rl之类的强化学习(rl)来确定电路的连接的路由。所公开的ml方法利用rl来优化使用游戏过程的电路连接的路由。在该方法中,训练代理来完成用于路由环境内的电路的路由连接的任务。代理向路由环境发送路由动作,并且作为回报,从路由环境接收观察和奖赏(reward)。该奖赏提供关于完成路由环境内的路由任务的路由动作的成功的测量。
22.例如,所公开的方法收集并跟踪电路中路由连接的游戏过程。该游戏可被玩多次并记录rl代理在玩该游戏时所收集的奖赏。游戏的路由动作由策略网络控制,该策略网络可以是神经网络(nn),其中nn的参数控制该策略。策略可以涉及选择路由动作的概率,其中如果对于某个路由动作存在高概率,则将可能选择该路由动作。
23.在玩游戏之后,可以针对给定参数的集合确定给予rl代理的平均奖赏数量。因此,可确定具有作为输入的参数和作为输出的平均奖赏的待优化的策略。因此,游戏可以在跟踪参数和所得到的奖赏的同时运行多个迭代。可以优化参数,然后可以跟踪和优化另一组参数和奖赏。另外,本文公开的自动化路由可以使技术设计共同优化成为可能,从而允许例如同时优化标准单元设计模板和gpu设计以实现甚至更好的性能。
24.不同于至少一些现有方法,本文公开的ml方法对于网的数量和电路的大小中的至少一个是不可知的。换言之,策略网络的参数与网的数量、电路的大小或两者的组合无关。网是连接在一起的电路的端子的集合。路由电路的网就是连接网的端子,即端子组。端子组是两个或更多个端子,并且电路可具有多个端子组。作为电路的连接性的描述的网表包括电路中的电子元件的列表和元件所连接的端子的列表。因而,可以从网表确定电路的网的数量。本文公开的ml方法可以使用电路的所有网或使用少于电路的所有网来创建nn。例如,可以使用常规路由算法预路由电路的一个或更多个网,并且可以使用如本文所公开的ml方法来路由剩余的网。
25.如本文公开的ml方法可以加速设计过程并且还实现与手动设计相同的单元面积。在电路数据上训练,rl代理学习创建用于连接电路的一些或所有网的端子的质量路由。然后,rl代理可以直接应用于新的电路,或者在新的电路上重新训练以实现甚至更好的结果。电路可以是不同技术节点(包括7nm和5nm的finfet技术)的ic。电路可以是标准单元或手动设计。
26.图1示出了根据本公开的原理构造的电路路由系统100的示例的框图。电路路由系统100是rl系统,其确定电路的网的端子组之间的最佳连接路由。电路路由系统100可以确定用于所有电路网或少于所有电路网的连接路由。例如,其他类型的路由算法或系统可用于路由一个或更多个网,电路路由系统100可用于剩余的网。电路路由系统100包括路由环境110和rl代理120。电路路由系统100被配置成使用路由环境110将电路的路由过程建模为用于rl代理120的游戏过程。
27.路由环境110是表示用于连接电路的网的端子组的网格空间的游戏环境。路由环境可以是具有三层和三维网格的基于网格的路由环境,如图3中所表示的。三层可以是端子层、水平层和垂直层。路由环境110将根据rl代理120生成的路由动作来路由网。路由环境
110评估新的路由动作,并向rl代理120发送至少一个奖赏。路由环境110可通过确定例如路由动作是否完成端子组之间的连接、路由动作是否添加用于完成连接的段、路由动作是否符合drc等来评估新的路由动作。路由环境110基于当前路由状态(即,游戏状态)和诸如经由经典代理

环境回路执行的动作来产生奖赏。所生成的奖赏可以包括三种不同的类型。一种类型的奖赏指示路由动作是否是非法的。这些是防止代理创建非法动作的负奖赏。另一种类型的奖赏指示新的路由操作是否创建了连接的路由段,即该新的路由动作与端子连接。这些是用于鼓励rl代理120采取与现有端子相连接的路由动作的正奖赏的示例。第三种类型的奖赏是当网被完全路由时给出的网路由奖赏。该奖赏的数量可以与所路由的线长度相关联。较短的线长度可以导致较大的奖赏以鼓励rl代理优化线(即,连接)的长度。
28.除了由路由环境110给出的路由奖赏之外,路由环境110还可以给出drc奖赏。对于一个、多个或每个游戏步骤,路由环境110可评估当前路由的drc并计算drc的数量。游戏步骤对应于所执行的路由动作。图3提供了路由环境中的不同游戏步骤的示例。如果当前drc的数量高于先前drc的数量,则路由环境110可生成对代理的负奖赏,否则生成正奖赏。
29.路由环境110还将向rl代理120发送游戏状态图像(即,游戏图像)。游戏图像表示路由环境110的游戏状态空间,其包括网格空间中的当前路由动作的结果以及对路由环境110的观察。游戏图像可对应于针对电路的每个网或至少一些网创建的两个图像:一个用于网本身的路由,一个用于其他一切的路由,其代表对特定网的阻塞。
30.rl代理120观察路由环境110中的当前游戏状态,并向路由环境110发送将改变电路的网的当前游戏状态的路由动作。rl代理120包括学习处理器124和函数近似器128。rl代理120可在包含学习处理器124和函数近似器128的处理器(例如,gpu)上实现。学习处理器124和函数近似器128也可在通信地耦合在一起的不同处理器上实现。
31.学习处理器124被配置成与函数近似器128合作以提供最优策略,该最优策略将在路由任务过程中接收到的累积奖赏最大化。学习处理器124由学习算法引导,该学习算法可以是一个或更多个nn,诸如卷积神经网络(cnn)或图神经网络(gnn)。学习处理器124接收游戏图像,并根据路由动作、游戏图像、奖赏或其组合中的至少一个来更新函数近似器128的参数。照此,学习处理器124可基于来自路由环境110的游戏图像和奖赏来更新函数近似器128的可调整参数。学习处理器124提供函数近似器128的不依赖于路由环境110的游戏状态空间的每个维度的参数。相反,函数近似器128的可调参数与网的数量和/或设计尺寸或电路的设计尺寸的部分(例如,高度、宽度或两者)无关。函数近似器128的参数可基于游戏状态空间的层数。
32.函数近似器128被配置为选择被发送到路由环境110的路由动作。函数近似器128可以基于成功概率来选择路由动作。图2提供了使用成功概率来选择路由动作的示例。函数近似器128可以是一个或更多个nn,诸如深度神经网络(dnn)或具有可调参数的另一类型的功能网络。函数近似器128可以是例如处理器上的dnn,其包括学习处理器124的一个或更多个nn。函数近似器128可包括策略组件,也被称为策略网络,其可使用映射来基于来自路由环境110的观察结果来选择路由动作。函数近似器128还可包括价值组件(value component)。价值组件(也被称为价值网络(value network))可基于计算当前游戏状态的预期累积分数来将价值或分数分配给游戏状态。该价值是可以在rl代理120的训练过程中使用的价值预测器,诸如训练rl的玩家评委模型的评委。
33.函数近似器128还可以基于其他过程来选择路由动作。可以使用深度q学习算法(深度q网络(dqn)),其中游戏状态被用作输入,并且dqn生成可能的路由动作的q值作为输出。例如,函数近似器128可使用每个网格的估计价值,生成用于路由动作的q值,然后使用贪婪函数来确定将什么路由动作发送到路由环境110。图2和图4提供了用于rl代理120的架构的示例。
34.图2示出了根据本公开的原理的用于路由电路的网的rl代理200的模型的架构的示例的图。rl代理200可用于路由电路的一个或更多个(包括全部)网。rl代理200包括学习处理器210和函数近似器220。函数近似器220包括策略网络224和价值网络228。rl代理200可使用启用gpu的近端策略优化强化算法(ppo2)来实现。
35.如图所示,学习处理器210是对应于深度学习算法的cnn的组合。如以上关于图1所述,还可以使用其他nn,例如gnn。对于图2的以下讨论,cnn将用作元件编号210的示例。cnn 210从路由环境(图2中未示出)接收游戏图像并且生成用于策略网络224和价值网络228的参数。策略网络224预测在当前游戏状态下可用的每个动作的概率,而价值网络228预测当前状态的值。策略网络224和价值网络228被建立在路由环境(诸如图1的路由环境110)的游戏状态空间的顶部上,该路由环境可被用来处理强化学习算法。函数近似器220的策略网络224和价值网络228可使用一个或更多个nn来实现。
36.本公开有利地认识到,如果cnn 210基于游戏状态空间被本地构建,则策略网络224和价值网络228的参数将取决于游戏状态空间的参数,并且所得到的代理可以与网数量有关、与设计大小有关、或两者。另外,rl代理200的课程(curriculum)训练将是困难的(如果不是不可能的话)。照此,rl代理200的cnn 210可以与网无关和/或与设计大小无关。因此,rl代理200是可转移模型,该模型可在不同的网数量和电路设计大小上进行训练和推理,这允许使得训练大网格和网可行的课程训练。
37.关于游戏状态空间,rl代理200可以与基于网格的三层路由环境(如图3中所表示的)一起使用。三层可以是端子层、垂直层和水平层。照此,策略网络224被构造用于将网分配给网格(层,y,x)。路由环境的游戏状态空间为四维矩阵s[n,k,y,x],其中n为网id,k为层id,且y和x为特定网格的垂直和水平坐标。当网n被指派给(y,x)上的层k时,s[n,k,y,x]被设置为1,否则为0。在该示例中,游戏状态空间完全捕获环境的路由配置,并且路由环境的动作空间将特定网分配给特定层上的特定网格。因此,动作空间是具有每步总共n*k*y*x个选择的分立的动作空间。如果来自代理的一些动作与现有路由重叠并且将被路由环境丢弃,则它们是非法的。由此,代替提供针对动作的正奖赏,路由环境可以向代理发送负奖赏。
[0038]
如上所述,rl代理200可以与网数量无关或与设计大小无关,并且不取决于n、y、或x中的至少一者,或可以与网数量和设计大小两者无关,并且不取决于n、y、和x。cnn 210可取决于k,因为存在固定数量的层,这对于实际路由问题也是真实的。因此,rl代理200是可转移模型,该模型可在不同的网数量和/或电路设计大小上进行训练和推理,这允许课程训练,其使得训练大网格和网可行。
[0039]
对于rl代理200,为由rl代理200路由的每个网创建两个游戏图像:一个用于网络本身的路由,一个用于其他所有事物的路由,rl代理200代表对特定网的阻塞。两个游戏图像(在本示例中每个具有3层)被馈送至cnn 210的第一层,以在本示例中创建具有(h,w)的大小和512个通道的维度的图像的输出。所得图像表示特定网的特征空间。类似地,可以创
建所有n个网的特征空间,如由图2中的网1的多层图像和网n的多层图像所表示的。
[0040]
被路由的每个网的特征空间图像被提供给策略网络224的全连接层(fc)和非线性层(relu),以为网1至n的每个特征空间图像创建具有k个输出的阵列(h,w),即,具有n*k个输出的维度的阵列(h,w),其随后被组合并被应用于softmax分类。n可以等于电路的所有网或小于电路的所有网。
[0041]
对于图2,游戏状态空间的每一层具有相同的设计大小,即,相同的h和w。然而,如图4所示,游戏状态空间的层可具有不同大小的h和/或w。游戏状态空间的不同层可以全部映射到公共网格中,或者针对不同的层可以使用不同的cnn。
[0042]
将来自策略网络224的fc

relu的输出阵列馈送至最终softmax层,该最终softmax层使用softmax函数来创建(n*k*h*w)个动作中的每个动作的概率。softmax函数提供(n*k*h*w)个动作的一个全体。rl代理200选择评级最高的路由动作并发送给路由环境以用于下一动作。
[0043]
对于价值网络228,n个网中的每一个的特征空间图像被一起池化以形成向量,在该示例中其具有512的维度,并且价值网络228的fc

relu连接层用于预测当前游戏状态的单个值。游戏状态的值或分数可以基于计算当前游戏状态的预期累积分数,并且可以用于rl代理200的训练过程。rl代理200可以不知道网的数量和设计大小。这样,rl代理200的权重将不取决于任何n或h或w参数。rl代理200还可以不知道n、h、w、或h和w参数之一。图2中示出的fc

relu、池和softmax表示函数近似器220的nn的不同层。
[0044]
如上所述,rl代理200可与基于网格的三层路由环境一起使用。为了训练rl代理,路由环境可以为网创建随机端子位置,作为每个游戏的初始条件。一旦rl代理被训练,可通过在给定当前路由状态的情况下推理rl代理200来用给定的网端子路由设计。rl代理200将计算每个动作的概率,并选择具有最高概率的动作作为路由动作。
[0045]
为了使图2的模型适于7nm或5nm标准单元路由环境,可以调整游戏状态空间和动作空间以反映7nm路由网格。还可以使用附加程序来生成单元布局并检查drc。例如,不同布局编辑器或生成器可以用于生成单元布局并检查drc。基于简单的基于网格的命令或包括专有程序的其他类似程序的virtuoso布局生成器可以用于检查drc并且生成布局。
[0046]
图2提供了一次玩路由游戏的示例,其中两个图像被提供给cnn 210。实质上,图像的各层连接在一起,得到用于网的三层和用于所有其他网的三层。该示例中的每个层是导致到cnn 210的六个通道输入的通道。利用六个通道输入,cnn生成具有高度h和宽度w以及512的维度的矩阵。图3提供一次玩路由游戏的示例,其可向图2的cnn 210提供两个图像。
[0047]
图3示出了用于在三维空间的路由环境的动作空间300中路由两个网的rl代理的动作序列,并提供了为rl代理(诸如rl代理200)的学习处理器创建三层图像的示例。图3提供了一个简单的路由问题,其示出了所公开的方法的可行性。简单的路由问题是基于网格的三层路由问题,其示出了可用作真实环境中的类似模型的基础的环境,所述真实环境将包括例如路由之间的通孔和空间。在该问题中,三层是代表网络端子的端子层;h层仅用于水平路由,v层仅用于垂直路由。代替单方向路由,还可使用具有多个方向路由层的其他路由环境。这两个网可以是电路的所有网或少于电路的所有网。
[0048]
开源工具(诸如gym环境)可以用于创建与图3一起使用的路由环境。gym是用于开发和比较rl算法的工具包,并且与多个数值计算库(包括tensorflow和theano)兼容。也可
以使用其他类似环境来创建路由环境。
[0049]
在图3中示出了11个游戏步骤作为示例来路由两个网,即第一网和第二网。在路由环境的三维网格中示出了11个步骤。对于此示例中的每个步骤,选择网格位置之一用于连接第一网的端子或第二网的端子。网格位置表示对应于将线放置在网格空间上的连接点,该网格空间由路由环境并且根据诸如图1和图2中所讨论的策略函数来定义。选择用于连接网的端子的网格位置的顺序可以变化。如果端子以drc干净的方式连接,路由环境将奖赏该代理。有利地,drc可以在玩游戏时以及在连接网时被检查。这导致最小化drc的数量并且最大化正确提供优化路由的连接的数量。当drc减少时,路由环境可以给出正奖赏,当drc增加时,可以给出负奖赏。drc的非限制性示例包括导之间的空间、通孔之间的空间和多个网之间的交互。
[0050]
在图3的路由环境的五乘五网格中示出了端子层、水平层和垂直层。水平层可以通过通孔连接到端子层和垂直层。图3的连接步骤中的每一者由路由动作起始,例如来自图1

2的函数估计器。在游戏开始时,第一网(端子312和316)和第二网(端子322和326)中的每一个的两个端子位于如步骤0中所示的路由环境中。端子可以随机定位,并且没有首先连接哪些网端子的预定顺序。游戏可以简单地在每个步骤中为网分配网格位置,并且可以随机地为两个网分配网格位置。每个端子位于端子层上。连接第一网的端子312、316在步骤1中以单个网格位置开始。步骤2至3示出了被选择来连接第一网的端子312、316的附加网格位置。步骤4示出了该第一网的两个端子312、316之间的连接路由318通过选择另一个网格位置而完成。连接第一网端子312、316的连接路由318的每个网格位置在位于端子层上的第一网端子312、316上方的水平层上。随着第一网的完成,路由环境向代理提供奖赏。另外,当选择网格位置时,路由环境可以向代理提供奖赏。例如,当游戏继续再玩一个或更多个步骤时,可以给出负奖赏,使得总游戏步骤(等于总线长)将被最小化。
[0051]
在步骤5中,连接第二网端子322、326开始于选择水平层上的网格位置。游戏在步骤6

9中继续,因为第二网端子322、326之间的路由通过上升并经过连接路由318来确定。在步骤10中,通过选择第二网端子326上方的水平层上的另一网格位置,完成第二网端子322、326之间的连接路由328。水平层和垂直层的组合用于完成第二网端子322、326之间的连接路由328。在连接路由328完成的情况下,路由环境向代理提供奖赏。另外,当选择用于第二网的网格位置时,路由环境可以向代理提供奖赏。虽然从图3中不明显,但是当路由符合drc时,给出用于完成第一网和第二网的奖赏。因而,drc符合性可以在路由期间实现。
[0052]
图3表示在路由环境的动作空间300中具有两个网的简单游戏。然而,游戏是可扩展的,并且可以应用于多于两个网、具有多于两个端子的网、以及它们的组合。rl代理(诸如代理120或200)可使用这两个网来训练,并随后被用于推理其他电路的设计。可应用课程训练来递增地训练rl代理,诸如用于具有较大的网数量和设计大小的问题配置。训练可以仅2个网和5x5网格设计开始,并且以更多网和更大大小逐渐训练。例如,可以递增地训练不知道网和/或设计大小的模型,其中(n=2,5x5)、(n=2,5x30)、(n=3,5x30)并且然后(n=4,5x30)。不管被路由的网的数量或端子的数量如何,可以在顺序学习过程中利用每个步骤来选择单个连接点(网格位置)。
[0053]
图4示出了根据本公开的原理的用于路由电路的网的rl代理400的模型的另一个架构的示例的图。rl代理400可用于路由包括亚10nmfinfet标准单元(例如,针对7nm单元)
的电路的网中的至少一些网。为了避免公开专有的finfet技术节点信息,与路由环境一起使用的路由层可称为m0

mm,扩散层称为diff,并且多晶层称为poly。图4的示例使用路由层m0至m3。与rl代理200一样,rl代理400还可以使用ppo2来实现。rl代理400包括学习处理器410和函数近似器420。学习处理器410可以是nn的组合,诸如cnn或gnn。类似于图2,学习处理器410是cnn的组合。对于图4的以下讨论,cnn将用作具有元件编号410的示例。函数近似器420包括策略网络424和价值网络428。函数近似器420可以是与cnn 410相同的处理器(诸如gpu)上的dnn,或者是另一个处理器。
[0054]
类似于图2中使用的3层环境,价值和策略网络424、428也可以是不知道网和/或设计大小的。对于图2,在路由环境中的动作空间的每一层具有相同的网格大小h和w,并且游戏状态空间具有相同的大小,即,相同的h和w。然而,图4预期游戏状态空间的层可具有不同大小的h和/或w。因而,可存在映射到路由环境的公共网格结构的具有不同大小的多个层。路由环境(图4中未示出)可用于将组件从路由环境的路由动作空间映射到公共游戏状态空间。来自路由环境的游戏图像表示公共游戏状态空间。然后,将来自游戏状态空间的组件映射到路由环境的动作空间。针对游戏图像的每一层的策略网络424的池化层可进行从游戏状态空间到路由环境的动作空间的映射(跨步和偏移)。在图4中,具有维度h和w的上标表示游戏状态空间。
[0055]
因此,类似于以上关于图2

3所讨论的3层网格路由环境,示例7nm单元的所有路由层、多晶层和扩散层可以被映射到公共游戏状态空间(即,图像空间)中。因此,游戏状态空间仍可为s[n,k,y,x],其中n为正被路由的网的数量,k为层的总数,且y和x为路由环境中的网格的坐标。当将路由环境的不同层映射到公共游戏状态空间时,可以使用依赖于技术的设计特定映射规则。n可以小于电路网的总数。
[0056]
对于图4,路由环境的动作空间针对一个或更多个层具有不同的网格大小。代替如图2中的n*k*x*y维,动作空间具有(n 1)*(x1*y1 x2*y2

xm*ym)维,其中m为层数。网的数量也是n 1个网,其包括代表用于不是原始电路的部分的网的路由的虚网(dummy net)。可能需要虚网来满足drc规则。虚拟网是不与网相关联但用于符合drc的附加路由形状。例如,可能需要连接的特定金属密度来满足drc规则。虚网可以用于提供足够量的金属并且验证已经满足金属密度。
[0057]
对于n个网中的每个网,每个层也可以具有不同的动作空间集合。作为示例,在动作层中可仅包含路由层,且多晶层及扩散层不用于路由。此外,公共网格结构用于路由环境中的所有层,并且每个层的路由动作是用偏移(ox,oy)和步幅(sx,sy)来填充游戏状态空间中的网格的(w,h)设计大小。由于在不同层中w、h、sx、sy不同,则每层的动作数量不同。层i的动作的总数由(x
i
*y
i
)表示,其中x
i
=(x

w
i

ox
i
)/sx
i
1,y
i
=(y

h
i

oy
i
)/sy
i
1。
[0058]
与策略网络224不同,策略网络424通过为每个层合池化h和w并且然后向全连接层提供池化的值中的每个值来处理由cnn 410提取的特征。然后将在策略网络424的fc

relu层之后得到的图4中的示例路由层m0

m3中的每一个的n 1个向量连接并应用于softmax分类。针对所有网和所有层将预测合并在一起以形成用于在路由环境中路由的新的(n 1)*(x1*y1 x2*y2

xm*ym)动作策略预测。
[0059]
价值网络428针对来自cnn 410的所有网池化h和w,并且向fc

relu连接层提供具有512维度的向量,以预测当前游戏状态的一个单一值。图4中示出的fc

relu、池和softmax
表示函数近似器420的nn的不同层。
[0060]
图5示出了使用强化学习来构建用于路由电路的网的模型并且根据本公开的原理来执行的方法500的示例的流程图。这些网可以用于连接电路的端子组。该电路可以具有多个组(如多对)端子来连接。可以使用一个或更多个处理器来执行方法500,并且该方法500可以是自动的。作为具有用于使用网连接端子的网格空间的游戏环境的路由环境也可以用于模型的创建。例如,可以使用诸如本文公开的学习处理器和路由环境。路由环境的网格空间可以是三维网格。方法500创建的模型可以用于rl代理,例如rl代理120、200和400。方法500可以用于少于电路的所有网。照此,在方法500的以下讨论中使用的网可以是电路的网中的至少一些网。方法500开始于步骤505。
[0061]
在步骤510中,创建第一图像和第二图像,其中第一图像表示使用网在路由环境中连接端子组,并且第二图像表示在用于连接的路由环境中的阻塞。第一和第二图像具有多个路由层,并针对被路由的每个网而创建。路由层可用于在单个方向上路由、在多个方向上路由、或单个方向和多个方向路由两者的组合。第一和第二图像可以是对应于来自路由环境的游戏状态空间的游戏图像。路由环境可以创建游戏图像。
[0062]
在步骤520中,基于每个网的第一图像和第二图像,创建用于每个网的特征空间图像。用于每个网的特征空间图像由对应于路由环境的网格的高度和宽度来定义。针对路由环境的网格的不同层,高度、宽度或两者可以是不同的。如果不同,维度可映射到公共网格,诸如通过图4的策略网络424。可以使用一个或更多个cnn(如图2和图4的cnn 210或410)来创建特征空间图像。
[0063]
在步骤530中,创建策略函数,其提供用于基于每个网的特征空间图像选择用于连接端子的路由动作的概率。策略函数具有与网的数量和电路的大小无关的可调参数。创建策略函数可以包括将每个网的特征空间图像应用于nn的fc

relu层以创建具有输出的阵列,将网的所有输出进行组合以生成组合输出,以及将组合输出提供给nn的softmax层以创建用于选择路由动作的概率。策略网络224和策略网络424提供生成策略函数的示例。
[0064]
在步骤540中,基于每个网的特征空间图像的池化来创建价值函数。价值函数为端子组提供当前路由状态的价值预测器。创建价值函数可包括将通过池化生成的向量应用于nn的fc

relu层,以提供用于价值预测器的单个值。价值网络228和价值网络428提供生成价值预测器的示例。
[0065]
在步骤550中,针对所考虑的电路的每个端子组重复步骤510至540。一旦正被路由的电路的所有网被连接,该模型就完成并且可以用于路由电路的网。该模型是可以在不同的网数量和/或电路设计大小上训练和推理的可转移模型。这样,该模型可以用于课程训练,其使得大网格和网的训练是可行的。可以使用初始数目为两个网来生成该模型。该方法继续到步骤560,并以rl代理的模型结束。
[0066]
图6示出了根据本公开的原理的采用游戏训练rl代理以确定电路的路由连接的方法600的示例的流程图。rl代理可被递增地训练,诸如经由课程训练。可以使用一个或更多个处理器来执行方法600,并且方法600可以是自动化的。路由环境也可以用于训练。例如,可以使用诸如本文公开的学习处理器和路由环境。rl代理可使用近端策略优化算法来实现。方法600开始于步骤605。
[0067]
在步骤610中,rl代理观察路由环境中的端子之间的当前路由状态。端子可随机地
定位在路由环境的网格中。网格可以是三维网格。这些端子可以是位于路由环境中的电路网的端子组。rl代理可经由由路由环境生成的游戏图像来观察当前路由状态(也被称为当前游戏状态)。
[0068]
在步骤620中,路由动作从rl代理被提供给路由环境。路由动作改变路由环境中端子位置之间的当前路由状态,并且基于与网的数量和/或电路大小无关的用于路由网的模型。该模型提供用于基于网的特征空间图像选择用于连接端子位置的路由动作的概率,并基于网的特征空间图像的池化提供端子位置的当前路由状态的价值预测器。训练的方法600可重复多次,并且网的数量和/或电路的大小或路由环境在多次中的每一次中递增地增加以创建用于训练的附加模型。用于该模型的网的初始数目可以是两个。该模型可以例如通过方法500来创建。
[0069]
在步骤630中,由路由环境评估路由动作。路由环境可以例如通过确定路由动作完成端子组之间的连接以及路由动作是否符合drc来评估,
[0070]
在步骤640中,将基于评估的奖赏从路由环境提供给rl代理。奖赏可以是指示路由动作的合法性的奖赏,其指示路由动作是否创建连接的路由段、指示网何时被完全路由等。可以对每个路由动作给出多于一个奖赏。
[0071]
在步骤650中,rl代理基于奖赏来优化端子位置之间的路由。rl代理可通过选择返回最多奖赏的路由动作来优化路由。rl代理可以通过优化端子位置之间的路由来完成网。
[0072]
可以针对所考虑的电路的每个网端子组(如针对所有网或少于所有网)重复步骤610至650。网的初始数量可以是两个。对于训练,比如对于课程训练,可以增加网的数量和电路的大小。方法600继续到步骤660,并以可用于路由电路中的连接的经训练的模型结束。
[0073]
图7示出了根据本公开的原理的采用游戏过程确定电路的端子组与rl代理之间的路由连接的方法700的示例的流程图。方法700可由一个或更多个处理器自动执行。可以使用一个或更多个处理器来执行方法600,并且方法600可以是自动的。也可以使用路由环境。例如,诸如本文公开的学习处理器和路由环境可用于方法700的至少一部分。rl代理可以是例如图1、图2和图4的rl代理。方法700开始于步骤705。
[0074]
在步骤710中,接收具有已知端子组的电路设计。电路可以是不同技术节点(包括7nm和5nm的finfet技术)的ic。电路可以是标准单元或手动设计。电路设计可以指示网的数量和电路的每个网的端子组。电路设计可以包括提供网和端子组数据的网表。
[0075]
在步骤720中,在路由环境中建立端子组的端子位置。端子可以由路由环境定位在网格中,例如三维网格。端子可随机地定位在路由环境中。路由环境可以是开源工具,诸如gym环境,或者用于开发和比较rl算法的另一工具包。可以定位网中的至少一些网的端子,并且在路由环境中定位后续网的端子之前确定该网的路由。可以使用每个网的端子。
[0076]
在步骤730中,在路由环境中执行路由动作。这些路由动作由rl代理生成并发送到路由环境。每个路由动作在路由环境的动作空间中选择一网格位置来连接端子组。这样,由rl代理生成多个路由动作,并发送给路由环境,用于连接网中的至少一些网的端子组。在完成网之后,生成用于后续网的路由动作,直到完成要路由的每个网。
[0077]
在步骤740中,观察路由环境内的当前游戏状态。rl代理可基于由路由环境生成的用于当前路由状态的游戏图像来观察游戏状态。用于网的游戏图像对应于来自路由环境的游戏状态空间,并且包括表示使用网在路由环境中连接端子组的第一图像和表示在用于连
接的路由环境中的阻塞的第二图像。游戏图像可以具有多个路由层,并且可以用于在单个方向上路由、在多个方向上路由、或者单个和多个方向路由的组合。rl代理可从游戏图像创建特征空间图像,并使用特征空间图像来调节用于选择路由动作的参数。对于第一网的每个路由状态,然后对于后续网的每个路由状态,按照序列顺序观察游戏状态。
[0078]
在步骤750中,使用rl代理来确定已知端子组之间的网的路由。有利地,所述rl代理基于与网的数量和/或电路的大小无关的模型。确定网的路由可以通过推理模型来执行。
[0079]
rl代理可以在评估来自rl代理的路由动作时基于从路由环境接收到的奖赏来确定网的路由。例如,路由环境可从rl代理接收改变路由状态的路由动作,评估路由环境中的路由动作,并基于该评估来奖赏rl代理。rl代理可通过使用特征空间图像计算可用路由动作的概率并选择比路由动作中的剩余路由动作具有更高的概率的路由动作,来选择要发送到路由环境的路由动作。用于连接网的端子组的路由可以基于对rl代理产生最高奖赏值的路由动作。可以按顺序确定网的路由,其中完成第一网,然后是后续的网,然后是下一个网等。
[0080]
该奖赏由路由环境提供,并且包括指示路由动作的合法性的奖赏、指示路由动作是否在已知端子之间创建了连接的路由段的奖赏、和指示网何时被完全路由的奖赏。奖赏还可以包括对设计规则检查的奖赏。方法700继续到步骤760并结束。
[0081]
来自方法700的路由的网可以用在设计流程中以产生电路。例如,可以在设计流程的物理设计部分中使用路由的网,该设计流程包括规划不同电气元件的布局、安放电气元件、以及确定电气元件的端子之间的连接的路由。
[0082]
方法700可用于确定作为标准单元的ic的网路由。因此,方法700可以用于创建标准单元的单元库。标准单元库可以用于小于10nm(诸如7nm和5nm)的finfet技术节点。由方法700创建的标准单元中的一个或更多个可用于构造gpu。
[0083]
方法500、600和700的至少部分可以被实现为计算机程序产品,所述计算机程序产品具有存储在非暂态计算机可读介质上的一系列操作指令,所述操作指令在由处理器执行时指示该处理器执行所述方法的操作。图8提供了具有可以用于方法500至700的至少一部分的处理器的计算系统以及在此公开的rl代理的示例。
[0084]
图8示出了计算系统800的示例的框图,在所述计算系统中可以实现本文中所公开的系统、方法或装置的至少一部分。计算系统800提供包含在具有一个或更多个其他设备的系统中的并行处理单元gpu 805的示例。计算系统800可以体现在单个半导体衬底上并且可以包括诸如附加gpu之类的其他设备。gpu 805可以经由一个或更多个互连(诸如高速互连)耦合到附加的gpu。gpu 805可耦合到处理器850,例如主机处理器和存储器880。处理器850可以是另一gpu或诸如cpu的主机处理器。存储器880可以包括多个存储器设备。gpu 805包括接口810、控制单元820、存储器接口830和处理集群840。gpu 805可包括未示出但通常包含于gpu中的附加组件,例如通信总线和互连。计算系统800或计算系统的至少一部分可以在云计算平台上。例如,gpu 805、处理器850、存储器880或两个或更多个的组合可以在位于云计算环境中的服务器上,诸如在数据中心中。数据中心可以是gpu数据中心。gpu 805、处理器850和存储器880中的一个或更多个也可以分布在不同的计算设备上,并且计算设备可以远离彼此。例如,处理器850和存储器880可以位于一个计算设备或系统上,并且gpu 805可以位于另一个计算设备或系统上。
[0085]
接口810是输入和输出接口,其被配置为与外部组件(诸如处理器850)传送数据、命令和其他信息。接口810可以通过常规互连发送和接收数据和命令。接口810可连接到路由环境以接收输入数据。例如,该数据可以是用于构建、训练和采用rl代理的路由模型的游戏图像和奖赏。接收到的通信可被发送到gpu 805的各个组件,诸如控制单元820。控制单元820被配置为管理处理流,配置用于处理由流定义的任务的处理集群840,将任务分配给处理集群840,并且管理任务在处理集群840上的执行。由任务生成的结果可以被引导到存储器接口830。存储器接口830被配置成将结果存储在存储器(诸如存储器880)中。例如,用于ic的路由的网可存储在存储器880中。除了写入存储器880之外,存储器接口830还被配置为从存储器880读取数据。存储器880还可以存储软件或代码,所述软件或代码对应于用于使用本文所公开的模型来构建用于rl代理的模型和/或ic中的路由连接的算法,如图2

7中所表示的。代码可以指示处理集群840的操作。存储器880可以是或者包括非暂态计算机可读介质。
[0086]
处理集群840包括用于处理任务的多个处理核。处理核可被优化用于矩阵数学运算,并且可被用于训练nn,诸如训练如本文所公开的rl代理。处理核还可用于构建用于rl代理的模型,并使用该模型来路由ic中的连接。处理集群840可以包括指示处理核的操作以用于任务的并行处理的管线管理器。处理集群840还可以包括用于处理任务的附加组件,诸如存储器管理单元。
[0087]
上述装置、系统或方法的部分可体现在不同数字数据处理器或计算机中或由不同数字数据处理器或计算机执行,其中所述计算机被编程或存储软件指令的序列的可执行程序,以执行所述方法的一个或更多个步骤。此类程序的软件指令可表示算法,且可在非暂态数字数据存储介质上以机器可执行形式编码,例如,磁盘或光盘、随机存取存储器(ram)、磁性硬盘、闪存和/或只读存储器(rom),以使不同类型的数字数据处理器或计算机能够执行一种或更多种上述方法或本文描述的功能、系统或装置中的一个、多个或所有步骤。
[0088]
数字数据处理器或计算机可以由一个或更多个gpu、一个或更多个cpu、一个或更多个其他处理器类型或其组合组成。数字数据处理器和计算机可以位于彼此邻近、邻近用户、在云环境、数据中心中、或位于其组合中。例如,一些组件可以位于用户附近,并且一些组件可以位于云环境或数据中心中。
[0089]
gpu可以体现在单个半导体衬底上,包括在具有一个或更多个其他设备(诸如附加gpu、存储器和cpu)的系统中。gpu可包含在图形卡上,所述图形卡包含一个或更多个存储器设备且被配置为与计算机的母板接合。gpu可以是在单个芯片上与cpu位于同一地点的集成gpu(igpu)。配置是指例如设计、构造或编程有用于执行一个或更多个任务的必要逻辑和/或特征。
[0090]
处理器或计算机可以是位于数据中心中的gpu机架的部分。gpu机架可以是包括高性能gpu计算节点和存储节点的高密度(hd)gpu机架。高性能gpu计算节点可以是被设计用于在图形处理单元(gpgpu)上进行通用计算以加速深度学习应用的服务器。例如,gpu计算节点可以是来自加利福尼亚州圣克拉拉市的nvidia公司的dgx产品线的服务器。
[0091]
由hd gpu机架提供的计算密度对于ai计算和针对ai计算的gpu数据中心是有利的。hd gpu机架可以与反应式机器、自主机器、自感知机器和自学习机器一起使用,这些机器都需要大量计算密集型服务器基础设施。例如,采用hd gpu机架的gpu数据中心可提供支
持大规模深度神经网络(dnn)训练所需的存储和联网,诸如用于路由网的本文公开的nn。
[0092]
本文公开的nn包括可以用输入数据训练以解决复杂问题的多层连接节点。例如,输入图像可以是用作用于构建、训练和采用用于rl代理的路由模型的输入数据的游戏图像。一旦nn被训练,nn就可被部署并用于在推理过程中标识和分类对象或模式,nn通过该推理过程从给定输入提取有用信息。例如,nn可以用于确定电路网的端子组之间的连接。
[0093]
在训练期间,数据在正向传播阶段中流过nn,直到产生指示对应于输入的标记的预测。当nn未正确地标记输入时,分析正确标记与预测标记之间的误差,并且在反向传播阶段期间针对层的特征调整权重,所述反向传播阶段正确地标记训练数据集中的输入。利用针对矩阵数学运算优化的成千上万的处理核,诸如以上所指出的gpu能够递送训练用于人工智能和机器学习应用的nn所需的性能。
[0094]
所公开的实施例的各部分可以涉及具有非暂态计算机可读介质的计算机存储产品,这些计算机存储产品在其上具有用于执行不同计算机实现的操作的程序代码,这些计算机实现的操作包含装置、设备的一部分或执行本文所阐述的方法的步骤。本文中所使用的非暂态是指除了暂态的传播信号之外的所有计算机可读介质。非暂态计算机可读介质的示例包括但不限于:磁介质,诸如硬盘、软盘和磁带;诸如cd

rom盘之类的光介质;诸如光软盘之类的磁光介质;以及专门配置成存储和执行程序代码的硬件设备,诸如rom和ram设备。程序代码的示例包括诸如由编译器产生的机器代码和包含可由计算机使用解释器执行的更高级代码的文件两者。
[0095]
在解释本公开时,应以与上下文一致的最宽泛的可能方式来解释所有术语。具体地,术语“包括(comprises)”和“包含(comprising)”应被解释为以非排他性方式提及元件、部件或步骤,指示所提及的元件、部件或步骤可以存在、或利用、或与其他未明确提及的元件、部件或步骤组合。
[0096]
本技术所属领域的技术人员将了解,可对所述实施例进行其他和进一步添加、删除、替代和修改。还应当理解的是,在此使用的术语仅是出于描述具体实施例的目的,并且不旨在是限制性的,因为本公开的范围将仅由权利要求限制。除非另外定义,否则在此使用的所有技术和科学术语具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。虽然类似或等效于在此描述的那些方法和材料的任何方法和材料也可以用于本公开的实践或测试中,但是在此描述了有限数量的示例性方法和材料。
[0097]
发明内容中所公开的每个方面可以组合地具有从属权利要求的一个或更多个附加特征。应注意,除非上下文另外明确指出,否则如在此和所附权利要求书中所使用的,单数形式“一个”、“一种”和“该”包括复数指示物。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献