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

一种基于深度学习的芯片配置设计方法、装置及介质与流程

2022-03-23 04:12:06 来源:中国专利 TAG:


1.本发明实施例涉及芯片设计技术领域,尤其涉及一种基于深度学习的芯片配置设计方法,装置及介质。


背景技术:

2.随着芯片规模越来越大,芯片中的模块数量也逐渐变得庞大,模块之间的连接关系也逐渐变得复杂。由于各个模块的功能和容量规模不同,就会造成数据处理能力各不相同。合理的芯片设计就需要平衡各个模块间数据的吞吐量;此外,再结合芯片能耗最优和芯片尺寸等其他因素,合理配置芯片中所包含的模块就十分关键。
3.芯片设计发展至今,通常都是根据经验和实验对芯片模块进行配置,无法摆脱大量的人工参与,需要繁琐的人工实验和验证,无法提高芯片设计的效率。


技术实现要素:

4.有鉴于此,本发明实施例期望提供一种基于深度学习的芯片配置设计方法,装置及介质;能够降低芯片设计过程中人工参与的工作量,提高芯片设计效率。
5.本发明实施例的技术方案是这样实现的:第一方面,本发明实施例提供了一种基于深度学习的芯片配置设计方法,所述方法包括:确定实现待设计芯片的功能单元类型;基于各功能单元类型的特性设置各功能单元类型对应的属性信息;从各功能单元类型的候选功能单元中选择各功能单元类型对应的目标功能单元加入到待设计芯片的布局;基于设定的深度学习算法将所有目标功能单元按照设定的约束条件进行布局布线,直至按照所述约束条件对布局布线的评价表征值最大。
6.第二方面,本发明实施例提供了一种基于深度学习的芯片配置设计装置,所述装置包括:确定部分、设置部分、选择部分和布局部分;其中,所述确定部分,经配置为确定实现待设计芯片的功能单元类型;所述设置部分,经配置为基于各功能单元类型的特性设置各功能单元类型对应的属性信息;所述选择部分,经配置为从各功能单元类型的候选功能单元中选择各功能单元类型对应的目标功能单元加入到待设计芯片的布局;所述布局部分,经配置为基于设定的深度学习算法将所有目标功能单元按照设定的约束条件进行布局布线,直至按照所述约束条件对布局布线的评价表征值最大。
7.第三方面,本发明实施例提供了一种计算设备,所述计算设备包括:通信接口,存储器和处理器;各个组件通过总线系统耦合在一起;其中,所述通信接口,用于在与其他外部网元之间进行收发信息过程中,信号的接收和
发送;所述存储器,用于存储能够在所述处理器上运行的计算机程序;所述处理器,用于在运行所述计算机程序时,执行第一方面所述基于深度学习的芯片配置设计方法的步骤。
8.第四方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有基于深度学习的芯片配置设计程序,所述基于深度学习的芯片配置设计程序被至少一个处理器执行时实现第一方面所述基于深度学习的芯片配置设计方法的步骤。
9.本发明实施例提供了一种基于深度学习的芯片配置设计方法,装置及介质;为待设计芯片选择完成功能单元之后,按照深度学习的方法对功能单元的布局和配置进行分析,获得符合设定约束条件的最佳的芯片布局布线;降低了芯片设计过程中,特别是在芯片布局布线过程中人工参与的工作量,提高芯片设计效率。
附图说明
10.图1为本发明实施例提供的一种基于深度学习的芯片配置设计方法流程示意图;图2为本发明实施例提供的基于深度学习的芯片配置设计装置组成示意图;图3为本发明实施例提供的一种计算设备的硬件结构示意图。
具体实施方式
11.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
12.为了降低芯片设计过程中人工参与的工作量,提高芯片设计效率,本发明实施例期望能够将深度学习方案应用于芯片设计过程中,基于此,参见图1,其示出了本发明实施例提供的一种基于深度学习的芯片配置设计方法,该方法可以包括:s101:确定实现待设计芯片的功能单元类型;s102:基于各功能单元类型的特性设置各功能单元类型对应的属性信息;s103:从各功能单元类型的候选功能单元中选择各功能单元类型对应的目标功能单元加入到待设计芯片的布局;s104:基于设定的深度学习算法将所有目标功能单元按照设定的约束条件进行布局布线,直至按照所述约束条件对布局布线的评价表征值最大。
13.通过图1所示的技术方案,为待设计芯片选择完成功能单元之后,按照深度学习的方法对功能单元的布局和配置进行分析,获得符合设定约束条件的最佳的芯片布局布线;降低了芯片设计过程中,特别是在芯片布局布线过程中人工参与的工作量,提高芯片设计效率。
14.对于图1所示的技术方案,在一些可能的实现方式中,所述确定实现待设计芯片的功能单元类型,包括:基于所述待设计芯片需执行的目标任务确定所述待设计芯片所需的功能组件;针对每个所述功能组件确定对应的功能单元类型。
15.对于上述实现方式,需要说明的是,在进行芯片布局布线方面内容的设计之前,需要根据待设计芯片的需求确定芯片的规格,比如待设计芯片所包含的功能单元。在实现方
式中,以设计图像处理器(gpu,graphics processing unit)为例,常规的gpu所涉及的图像渲染管线可以包括以下功能单元:任务拆分单元,任务调度单元、执行核单元、图元装配单元、像素测试单元、像素后处理单元、内存管理单元、缓存单元、数据路由单元、显存单元等;基于此,当待设计芯片为gpu时,基于其所需执行的图像处理的目标任务,能够确定所需的功能组件包括以上所述的常规gpu所包括的这些类型的功能单元。对于这些功能组件来说,每个功能组件对应一功能单元类型,而经过长期的芯片设计经验的积累,每个功能单元类型均可以包括多个可供选择的候选功能单元。可以理解地,对于每个功能单元类型来说,其所包括的候选功能单元之间,并不会存在实现功能上的区别,其间的区别仅在于各候选功能单元之间的参数或特性等属性。
16.对于图1所示的技术方案,在一些可能的实现方式中,所述基于各功能单元类型的特性设置各功能单元类型对应的属性信息,包括:根据每个功能单元类型在执行所述目标任务时所需的对应特性确定每个功能单元类型对应的属性信息;其中,所述属性信息包括:数据输入的前驱节点、数据输出的后继节点、数据吞吐率、所占芯片的面积以及与其他功能单元之间的连接关系。
17.基于上述实现方式,在一些示例中,所述从各功能单元类型的候选功能单元中选择各功能单元类型对应的目标功能单元加入到待设计芯片的布局,包括:根据期望的芯片布局从各功能单元类型的候选功能单元中为实际芯片布局选取对应的目标功能单元,并更新所述实际芯片布局状态。
18.对于上述实现方式及其示例,需要说明的是,面对每个功能单元类型中所包括的多个候选功能单元,优选基于实际待设计芯片所期望的布局选择获得目标功能单元,从而更新实际芯片布局状态,可以理解地,此时由于并没有将功能单元放入芯片布局中,此时芯片布局状态为不包括任何单元,此时,随着功能单元不断地放入芯片布局,实际芯片布局状态也随之不断进行更新。具体来说,优选地,所述根据期望的芯片布局从各功能单元类型的候选功能单元中为实际芯片布局选取对应的目标功能单元,包括:当所述实际芯片布局状态不完全时,按照执行所述目标任务过程的数据流走向,基于由所述数据输入的前驱节点、数据输出的后继节点以及功能单元之间的连接关系所形成的前驱后继关系图在所述实际芯片布局中配置功能单元类型;当所述实际芯片布局中完成配置功能单元类型后,根据所述数据吞吐率以及所占芯片的面积从各功能单元类型的候选功能单元中选取对应的目标功能单元加入至所述实际芯片布局中。
19.对于上述优选示例,举例来说,一方面,当实际芯片布局中的功能单元不完全时,本发明实施例优选以数据流的先后顺序选择放入芯片布局中的功能单元,比如应用各功能单元之间的关于数据的前驱后继关系,优先选择数据流首先流入的功能单元。仍然以gpu为例,数据首先流入显存中,之后才是后续的任务拆分单元、任务调度单元等其他单元。可以理解地,上述前驱后继关系图会在执行s102的过程中,随着设置各功能单元类型的属性信息的过程进行配置并获得。另一方面,当功能单元选择完善后,可以根据各功能单元的数据吞吐率、芯片布局密度等属性信息,在候选功能单元中选择一个目标功能单元加入到芯片布局中;举例来说,若前驱功能单元的数据吞吐率大于后继功能单元,那么本发明实施例更倾向选择后继功能单元,并且两者之间的差距越大,其被选择的优先级越高;对于芯片布局
密度来说,本发明实施例更倾向于使芯片密度低,因此优选选择单元面积小的功能单元;在具体实施过程中,本发明实施例将为上述两个因素之间设置均衡系数以便于方案后续的处理。可以理解地,目标功能单元选择完毕后,仍然需要更新芯片布局状态。
20.基于以上阐述,在待设计芯片的芯片布局中加入完成目标功能单元之后,就需要对这些目标功能单元在一些特定的约束条件下进行布局布线。在一些可能的实现方式中,所述设定的约束条件包括:所述待设计芯片的性能、能耗、布局密度和面积;相应地,所述基于设定的深度学习算法将所有目标功能单元按照设定的约束条件进行布局布线,直至按照所述约束条件对布局布线的评价表征值最大,包括:通过所述深度学习算法在当前迭代过程将所有目标功能单元进行布局布线,按照所述待设计芯片的性能、能耗、布局密度和面积对当前迭代过程的布线结果进行评估,获取当前迭代过程的评估表征值;根据所述当前迭代过程的评估表征值通过所述深度学习算法进行下一次迭代过程的布局布线,直至评估表征值最大。
21.对于上述实现方式,在具体实施过程中,具体来说,关于芯片布局布线的问题可以转化为围绕芯片布局优化的问题,即将网表的节点也就是描述芯片的图形,映射到芯片画布上,当然,芯片画布属于一个有界的二维空间,从而能够优化功耗、性能和面积(ppa)。这个优化问题可以利用强化学习来解决。具体实施流程包括:首先,当芯片画布和网表均为空时,放置目标功能单元的过程主要考虑四个主要的元素,即:state,表示所有状态的集合,即芯片画布上每一个可能放置目标功能单元的情况;action,表示所有可能采取的行动集合,举例来说,设定当前要放置的位置,可能的动作就是在不违反密度或者拥塞等约束下所有可能放置该目标功能单元的位置的集合;state transfer,表示给定一个状态state和一个行动action的前提下,下一个state可能的概率分布;reward,表示在一个state中采取某个action时得到的奖励,在芯片尚未完全布局完成时,所有的action对应的reward均为0,直到最后一个action给定完毕。基于此,可以定义reward包括芯片布局考虑的因素,比如线长和拥塞程度等。
22.接着,在每一次放置目标功能单元的过程中,每放置一个目标功能单元就会对应一个上述四个元素,直至当芯片内的功能单元全部放置完毕后并达到最终状态,获得最后的奖励值。
23.基于以上阐述,在布局布线过程中,期望在设定的布线和布局密度的约束下,使功耗、性能和面积最小化。通过重复执行这些元素,深度学习算法中的策略网络将会主动学习并采取积累奖励最大化的行动。当给出布局后的累计奖励后,就可以使用近端策略优化算法来更新策略网络的参数,从而达到优化网络的目的;直到最后得到一个最优的放置模型来对芯片进行布局布线。
24.需要说明的是,在芯片性能满足要求的情况下,芯片中可能存在有多种功能单元的布局布线组合的情况,为了判断出哪一种布局布线组合可以在性能符合要求的同时,还能最好平衡各个模块间数据的吞吐量、芯片能耗最优和芯片尺寸等因素。本发明实施例结合这些因素定义各种功能单元的组合以及评估的标准,利用芯片放置模型得到各种组合的芯片的最优布局。通过评估标准选择最优的功能单元组合。
25.需要说明的是,本发明实施例优选采用当前较为成熟的深度学习方法,根据当前
芯片布局中所包含的功能单元自动进行布局布线,其所期望的布线结果应当是在满足芯片布局密度要求的前提下,面积以及能耗达到最优。具体来说,当前述完成目标功能选取并更新芯片布局状态之后,就可以开始基于选取的目标功能单元按照上述期望的布线结果进行布局布线,通过迭代评估的方式达到面积和能耗的最优。
26.对于上述实现方式,对于每次布局布线的迭代过程来说,需要对该次迭代过程的布局状态进行记录和评估,基于此,在一些示例中,所述按照所述待设计芯片的性能、能耗、布局密度和面积对当前迭代过程的布线结果进行评估,获取当前迭代过程的评估表征值,包括:对所述待设计芯片的性能、能耗、布局密度和面积设置对应的权值;记录当前迭代过程的布线结果;基于权值以及所述待设计芯片的性能、能耗、布局密度和面积对当前迭代过程的布线结果进行评分,获取当前迭代过程的评估表征值。
27.对于上述示例,需要说明的是,在当前迭代过程中,可以记录当前迭代次数下的芯片布局的状态信息,举例来说,可以包含当前迭代次数下芯片布局中包含的功能单元,各个功能单元的位置、连接关系,当前迭代次数下的芯片布局中所剩余空间的位置,当前最优布局下的能耗、面积、性能,可供选择的功能单元等信息。可以理解地,这些信息不仅为深度学习进行迭代布局布线提供数据支撑,同样也为评估当前迭代过程的布线结果进行支持。
28.对于布线结果的评估,本发明实施例优选根据前述约束条件,对当前芯片布局进行评分。对于上述约束条件来说,芯片性能与芯片中包含的功能单元数量呈成正相关,也就是说,功能单元的数量越多,芯片性能也相对就越强;能耗和面积可以从自动布局布线功能中得到;芯片布局的密度可以在完成当前迭代次数的自动布局布线后,根据芯片布局中功能单元数量计算出。在本发明实施例中,优选地,芯片布局的规则为各功能单元间降低耦合,功能不重叠。这也是在不断迭代中选择出最佳配比的重要依据。举例来说,当芯片布局中功能单元不完善时,评估表征值为零;而当功能单元布设完善后,评估表征值为正数,并且随着深度学习算法不断地对芯片布局进行配置,芯片性能不断增强、密度不断变大、能耗不断增高;最终,在平衡性能、能耗和密度后,评估表征值可以达到最大,此时芯片布局中所包含的单元配比就可以认为是在当前功能单元属性下最优的配比。
29.基于前述技术方案相同的发明构思,参见图2,其示出了本发明实施例提供的一种基于深度学习的芯片配置设计装置20,所述装置20可以包括:确定部分201、设置部分202、选择部分203和布局部分204;其中,所述确定部分201,经配置为确定实现待设计芯片的功能单元类型;所述设置部分202,经配置为基于各功能单元类型的特性设置各功能单元类型对应的属性信息;所述选择部分203,经配置为从各功能单元类型的候选功能单元中选择各功能单元类型对应的目标功能单元加入到待设计芯片的布局;所述布局部分204,经配置为基于设定的深度学习算法将所有目标功能单元按照设定的约束条件进行布局布线,直至按照所述约束条件对布局布线的评价表征值最大。
30.在一些示例中,所述确定部分201,经配置为:基于所述待设计芯片需执行的目标任务确定所述待设计芯片所需的功能组件;
针对每个所述功能组件确定对应的功能单元类型。
31.在一些示例中,所述设置部分202,经配置为:根据每个功能单元类型在执行所述目标任务时所需的对应特性确定每个功能单元类型对应的属性信息;其中,所述属性信息包括:数据输入的前驱节点、数据输出的后继节点、数据吞吐率、所占芯片的面积以及与其他功能单元之间的连接关系。
32.在一些示例中,所述选择部分203,经配置为:根据期望的芯片布局从各功能单元类型的候选功能单元中为实际芯片布局选取对应的目标功能单元,并更新所述实际芯片布局状态。
33.在一些示例中,所述选择部分203,经配置为:当所述实际芯片布局状态不完全时,按照执行所述目标任务过程的数据流走向,基于由所述数据输入的前驱节点、数据输出的后继节点以及功能单元之间的连接关系所形成的前驱后继关系图在所述实际芯片布局中配置功能单元类型;当所述实际芯片布局中完成配置功能单元类型后,根据所述数据吞吐率以及所占芯片的面积从各功能单元类型的候选功能单元中选取对应的目标功能单元加入至所述实际芯片布局中。
34.在一些示例中,所述设定的约束条件包括:所述待设计芯片的性能、能耗、布局密度和面积;相应地,所述布局部分204,经配置为:通过所述深度学习算法在当前迭代过程将所有目标功能单元进行布局布线;按照所述待设计芯片的性能、能耗、布局密度和面积对当前迭代过程的布线结果进行评估,获取当前迭代过程的评估表征值;根据所述当前迭代过程的评估表征值通过所述深度学习算法进行下一次迭代过程的布局布线,直至评估表征值最大。
35.基于上述示例,所述布局部分204,经配置为:对所述待设计芯片的性能、能耗、布局密度和面积设置对应的权值;记录当前迭代过程的布线结果;基于权值以及所述待设计芯片的性能、能耗、布局密度和面积对当前迭代过程的布线结果进行评分,获取当前迭代过程的评估表征值。
36.可以理解地,在本实施例中,“部分”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是单元,还可以是模块也可以是非模块化的。
37.另外,在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
38.所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom, read only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘
等各种可以存储程序代码的介质。
39.因此,本实施例提供了一种计算机存储介质,所述计算机存储介质存储有基于深度学习的芯片配置设计程序,所述基于深度学习的芯片配置设计程序被至少一个处理器执行时实现上述技术方案中所述基于深度学习的芯片配置设计方法步骤。
40.根据上述基于深度学习的芯片配置设计装置20以及计算机存储介质,参见图3,其示出了本发明实施例提供的一种能够实施上述基于深度学习的芯片配置设计装置20的计算设备30的具体硬件结构,该计算设备30可以为无线装置、移动或蜂窝电话(包含所谓的智能电话)、个人数字助理(pda)、视频游戏控制台(包含视频显示器、移动视频游戏装置、移动视频会议单元)、膝上型计算机、桌上型计算机、电视机顶盒、平板计算装置、电子书阅读器、固定或移动媒体播放器,等。计算设备30包括:通信接口301,存储器302和处理器303;各个组件通过总线系统304耦合在一起。可理解,总线系统304用于实现这些组件之间的连接通信。总线系统304除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统304。其中,所述通信接口301,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;所述存储器302,用于存储能够在所述处理器303上运行的计算机程序;所述处理器303,用于在运行所述计算机程序时,执行上述技术方案中所述基于深度学习的芯片配置设计步骤。
41.可以理解,本发明实施例中的存储器302可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器 (programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器 (dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,drram)。本文描述的系统和方法的存储器302旨在包括但不限于这些和任意其它适合类型的存储器。
42.而处理器303可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器303中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器303可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array, fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,
可编程只读存储器或者电可擦写可编程 存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器302,处理器303读取存储器302中的信息,结合其硬件完成上述方法的步骤。
43.可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(application specific integrated circuits,asic)、数字信号处理器(digital signal processing,dsp)、数字信号处理设备(dsp device,dspd)、可编程逻辑设备(programmable logic device,pld)、现场可编程门阵列(field-programmable gate array,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术所述功能的其它电子单元或其组合中。
44.对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等) 来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
45.可以理解地,上述基于深度学习的芯片配置设计装置20以及计算设备30的示例性技术方案,与前述基于深度学习的芯片配置设计方法的技术方案属于同一构思,因此,上述对于基于深度学习的芯片配置设计装置20以及计算设备30的技术方案未详细描述的细节内容,均可以参见前述基于深度学习的芯片配置设计方法的技术方案的描述。本发明实施例对此不做赘述。
46.需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
47.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

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

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

相关文献