CN117521576B - 运算资源共享方法、装置、设备和介质 - Google Patents
运算资源共享方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN117521576B CN117521576B CN202410021414.6A CN202410021414A CN117521576B CN 117521576 B CN117521576 B CN 117521576B CN 202410021414 A CN202410021414 A CN 202410021414A CN 117521576 B CN117521576 B CN 117521576B
- Authority
- CN
- China
- Prior art keywords
- input data
- data distribution
- distribution matrix
- monte carlo
- node
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 239000011159 matrix material Substances 0.000 claims abstract description 238
- 238000004088 simulation Methods 0.000 claims abstract description 23
- 238000013461 design Methods 0.000 claims abstract description 21
- 238000010845 search algorithm Methods 0.000 claims abstract description 12
- 238000012916 structural analysis Methods 0.000 claims abstract description 9
- 230000008569 process Effects 0.000 claims description 28
- 238000004422 calculation algorithm Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000005457 optimization Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请提供了一种运算资源共享方法、装置、设备和介质,该方法包括:对逻辑电路设计文件进行结构分析,得到针对同一运算的运算时序不重叠的多个运算分支,根据至少两个输入数据的状态描述信息,构建初始输入数据分布矩阵,根据初始输入数据分布矩阵,构建预设蒙特卡洛树搜索算法的蒙特卡洛树,根据搜索到的当前节点的模拟访问次数,计算当前节点的路径价值,根据当前节点的路径价值,对蒙特卡洛树进行节点拓展,根据蒙特卡洛树中的节点确定逻辑电路中针对同一运算的输入选择器的输入配置,直至蒙特卡洛树中的最后一个节点满足预设条件。基于路径价值进行节点搜索以确定选择器的输入配置,在减小选择器面积的同时,能更快达到最优解,降低复杂度。
Description
技术领域
本申请涉及数字集成电路技术领域,具体而言,涉及一种运算资源共享方法、装置、设备和介质。
背景技术
在电子设计自动化(Electronic design automation,EDA)优化算法中,对生成电路的性能优化一直是开发的热点。其中,资源共享作为较为成熟的优化方法,能够将Verilog中时序上互斥、相似功能的运算单元进行合并,从而减少电路面积。
目前,在进行资源共享的过程中,在减少运算单元的同时,会增加输入选择器(Mux),从而抵消掉合并运算单元所带来的面积收益,而输入选择器的面积,又与选择器的输入通道数量相关,为了在有限搜索时间内获得相对好的结果,通常采用贪心算法和一些基于测试结果的超参数设置进行权衡以确定选择器的输入通道数量。
然而,贪心算法在很多情况下无法达到最优解,并且即便对中间状态进行剪枝处理过程也比较复杂。
发明内容
有鉴于此,本申请实施例提供了一种运算资源共享方法、装置、设备和介质,以基于路径价值进行节点搜索以确定选择器的输入配置,使运算分支实现资源共享,能够更快达到最优解,简化处理过程。
第一方面,本申请实施例提供了一种资源共享方法,包括:
对逻辑电路设计文件进行结构分析,得到逻辑电路设计文件对应逻辑电路中针对同一运算的运算时序不重叠的多个运算分支,每个运算分支包括:至少两个输入数据的状态描述信息;
根据所述至少两个输入数据的状态描述信息,构建初始输入数据分布矩阵;
根据所述初始输入数据分布矩阵,构建预设蒙特卡洛树搜索算法的蒙特卡洛树;
在对所述蒙特卡洛树中的节点进行搜索的过程中,根据搜索到的当前节点的模拟访问次数,采用预设负反馈算法,计算所述当前节点的路径价值;
根据所述当前节点的路径价值,对所述蒙特卡洛树进行节点拓展,并根据所述蒙特卡洛树中的节点确定所述逻辑电路中针对所述同一运算的输入选择器的输入配置,直至所述蒙特卡洛树中的最后一个节点满足预设条件。
在一可选的实施方式中,所述根据所述当前节点的路径价值,对所述蒙特卡洛树进行节点拓展,并根据所述蒙特卡洛树中的节点确定所述逻辑电路中针对所述同一运算的输入选择器的输入配置,直至所述蒙特卡洛树中的最后一个节点满足预设条件,包括:
根据多个所述当前节点的路径价值,从所述蒙特卡洛树中多个所述当前节点的拓展分支中,确定路径价值最高的目标拓展分支;
根据所述初始输入数据分布矩阵,对所述蒙特卡洛树进行节点拓展,得到所述蒙特卡洛树中所述目标拓展分支下的当前节点的输入数据分布矩阵,并根据所述蒙特卡洛树中的节点确定所述输入选择器的输入配置,直至所述最后一个节点的输入数据分布矩阵满足预设数据分布条件。
在一可选的实施方式中,所述根据所述初始输入数据分布矩阵,对所述蒙特卡洛树进行节点拓展,得到所述蒙特卡洛树中所述目标拓展分支下的当前节点的输入数据分布矩阵,并根据所述蒙特卡洛树中的节点确定所述输入选择器的输入配置,包括:
遍历所述初始输入数据分布矩阵中的任意两列,得到所述任意两列的遍历结果,所述任意两列的遍历结果用于指示所述任意两列是否覆盖所述多个运算分支;
若所述任意两列覆盖所述多个运算分支,从所述初始输入数据分布矩阵中将所述任意两列删除,根据删除后的输入数据分布矩阵,确定所述初始输入数据分布矩阵的第一子节点的输入数据分布矩阵,以对所述蒙特卡洛树进行节点拓展;
将所述任意两列对应的输入数据作为一个输入选择器的输入配置;
根据所述第一子节点的输入数据分布矩阵,确定另一个输入选择器的输入配置。
在一可选的实施方式中,所述根据所述初始输入数据分布矩阵,对所述蒙特卡洛树进行节点拓展,得到所述蒙特卡洛树中所述目标拓展分支下的当前节点的输入数据分布矩阵,并根据所述蒙特卡洛树中的节点确定所述输入选择器的输入配置,包括:
若所述任意两列未覆盖所述多个运算分支,则从所述初始输入数据分布矩阵中将所述任意两列删除,根据删除后的输入数据分布矩阵以及所述任意两列的或运算结果,确定所述初始输入数据分布矩阵的第二子节点的输入数据分布矩阵,以对所述蒙特卡洛树进行节点拓展;
根据所述第二子节点的输入数据分布矩阵中的所述或运算结果和目标列,确定一个输入选择器的输入配置;
根据所述第二子节点的输入数据分布矩阵中除了所述或运算结果和目标列之外的其它列,确定另一个输入选择器的输入配置。
在一可选的实施方式中,所述根据删除后的输入数据分布矩阵,确定所述初始输入数据分布矩阵的第一子节点的输入数据分布矩阵,包括:
若所述任意两列的与运算结果中包括1,则根据所述删除后的输入数据分布矩阵以及所述与运算结果,确定所述第一子节点的输入数据分布矩阵。
在一可选的实施方式中,所述根据删除后的输入数据分布矩阵以及所述任意两列的或运算结果,确定所述初始输入数据分布矩阵的第二子节点的输入数据分布矩阵,包括:
若所述任意两列的与运算结果中包括1,则根据所述删除后的输入数据分布矩阵、所述或运算结果以及所述与运算结果,确定所述第二子节点的输入数据分布矩阵。
在一可选的实施方式中,所述遍历所述初始输入数据分布矩阵中的任意两列,得到所述任意两列的遍历结果,包括:
若所述任意两列的或运算结果全为1,则所述遍历结果指示所述任意两列覆盖所述多个运算分支;
若所述任意两列的或运算结果不全为1,则确定所述遍历结果指示所述任意两列未覆盖所述多个运算分支。
第二方面,本申请实施例还提供了一种资源共享装置,包括:
分析模块,用于对逻辑电路设计文件进行结构分析,得到逻辑电路设计文件对应逻辑电路中针对同一运算的运算时序不重叠的多个运算分支,每个运算分支包括:至少两个输入数据的状态描述信息;
构建模块,用于根据所述至少两个输入数据的状态描述信息,构建初始输入数据分布矩阵;
所述构建模块,还用于根据所述初始输入数据分布矩阵,构建预设蒙特卡洛树搜索算法的蒙特卡洛树;
计算模块,用于在对所述蒙特卡洛树中的节点进行搜索的过程中,根据搜索到的当前节点的模拟访问次数,采用预设负反馈算法,计算所述当前节点的路径价值;
拓展模块,用于根据所述当前节点的路径价值,对所述蒙特卡洛树进行节点拓展,并根据所述蒙特卡洛树中的节点确定所述逻辑电路中针对所述同一运算的输入选择器的输入配置,直至所述蒙特卡洛树中的最后一个节点满足预设条件。
在一可选的实施方式中,拓展模块,具体用于:
根据多个所述当前节点的路径价值,从所述蒙特卡洛树中多个所述当前节点的拓展分支中,确定路径价值最高的目标拓展分支;
根据所述初始输入数据分布矩阵,对所述蒙特卡洛树进行节点拓展,得到所述蒙特卡洛树中所述目标拓展分支下的当前节点的输入数据分布矩阵,并根据所述蒙特卡洛树中的节点确定所述输入选择器的输入配置,直至所述最后一个节点的输入数据分布矩阵满足预设数据分布条件。
在一可选的实施方式中,拓展模块,具体用于:
遍历所述初始输入数据分布矩阵中的任意两列,得到所述任意两列的遍历结果,所述任意两列的遍历结果用于指示所述任意两列是否覆盖所述多个运算分支;
若所述任意两列覆盖所述多个运算分支,从所述初始输入数据分布矩阵中将所述任意两列删除,根据删除后的输入数据分布矩阵,确定所述初始输入数据分布矩阵的第一子节点的输入数据分布矩阵,以对所述蒙特卡洛树进行节点拓展;
将所述任意两列对应的输入数据作为一个输入选择器的输入配置;
根据所述第一子节点的输入数据分布矩阵,确定另一个输入选择器的输入配置。
在一可选的实施方式中,拓展模块,具体用于:
若所述任意两列未覆盖所述多个运算分支,则从所述初始输入数据分布矩阵中将所述任意两列删除,根据删除后的输入数据分布矩阵以及所述任意两列的或运算结果,确定所述初始输入数据分布矩阵的第二子节点的输入数据分布矩阵,以对所述蒙特卡洛树进行节点拓展;
根据所述第二子节点的输入数据分布矩阵中的所述或运算结果和目标列,确定一个输入选择器的输入配置;
根据所述第二子节点的输入数据分布矩阵中除了所述或运算结果和目标列之外的其它列,确定另一个输入选择器的输入配置。
在一可选的实施方式中,拓展模块,具体用于:
若所述任意两列的与运算结果中包括1,则根据所述删除后的输入数据分布矩阵以及所述与运算结果,确定所述第一子节点的输入数据分布矩阵。
在一可选的实施方式中,拓展模块,具体用于:
若所述任意两列的与运算结果中包括1,则根据所述删除后的输入数据分布矩阵、所述或运算结果以及所述与运算结果,确定所述第二子节点的输入数据分布矩阵。
在一可选的实施方式中,拓展模块,具体用于:
若所述任意两列的或运算结果全为1,则所述遍历结果指示所述任意两列覆盖所述多个运算分支;
若所述任意两列的或运算结果不全为1,则确定所述遍历结果指示所述任意两列未覆盖所述多个运算分支。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面任一项所述的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面任一项所述的方法。
本申请提供了一种运算资源共享方法、装置、设备和介质,其中,该方法包括:对逻辑电路设计文件进行结构分析,得到逻辑电路设计文件对应逻辑电路中针对同一运算的运算时序不重叠的多个运算分支,每个运算分支包括:至少两个输入数据的状态描述信息,根据至少两个输入数据的状态描述信息,构建初始输入数据分布矩阵,根据初始输入数据分布矩阵,构建预设蒙特卡洛树搜索算法的蒙特卡洛树,在对蒙特卡洛树中的节点进行搜索的过程中,根据搜索到的当前节点的模拟访问次数,采用预设负反馈算法,计算当前节点的路径价值,根据当前节点的路径价值,对蒙特卡洛树进行节点拓展,并根据蒙特卡洛树中的节点确定逻辑电路中针对同一运算的输入选择器的输入配置,直至蒙特卡洛树中的最后一个节点满足预设条件。基于路径价值进行节点搜索以确定选择器的输入配置,在减小选择器面积的同时,使多个运算分支实现针对同一运算的运算单元的资源共享,能够更快达到最优解,降低复杂度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的运算资源共享方法的流程示意图一;
图2为本申请实施例提供的运算资源共享方法的流程示意图二;
图3为本申请实施例提供的运算资源共享方法的流程示意图三;
图4为本申请实施例提供的运算资源共享方法的流程示意图四;
图5为本申请实施例提供的运算资源共享装置的结构示意图;
图6为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在电子设计自动化(Electronic design automation,EDA)优化算法中,对生成电路的性能优化一直是开发的热点。其中,面积、时序是最为重要的性能指标,对于面积优化来说,运算单元的资源共享作为较为成熟的优化方法,能够将逻辑电路设计文件(即Verilog文件)中时序上互斥、相似功能的运算单元进行合并,以减少面积,在运算单元的资源共享过程中,在减少运算单元的同时会增加输入选择器(Mux),输入选择器的面积与输入选择器的输入配置数量相关,因此如何确定输入配置数量从而减小输入选择器的面积,是资源分配算法的重要问题。
然而目前所采用的贪心算法在很多情况下并非最优解,尤其是在规模较小的电路下,其可优化的空间仍不可忽略,而贪心算法的优化效果更差,并且若对中间状态进行枚举,即使有一定的状态剪枝,也是指数级别的复杂度,这样的时间开销是不可接受的。
基于此,本申请考虑到蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)具有时间可控、能更好地探索更有潜力的状态的特性,通过构建蒙特卡洛树,根据节点的路径价值对蒙特卡洛树进行节点拓展,并根据蒙特卡洛树中的节点确定逻辑电路中针对同一运算的输入选择器的输入配置,在减小选择器面积的同时,使多个运算分支实现针对同一运算的运算单元的资源共享,能够更快达到最优解,降低复杂度。
图1为本申请实施例提供的运算资源共享方法的流程示意图一,本实施例的执行主体可以为电子设备,如终端、电脑。
如图1所示,该方法可以包括:
S101、对逻辑电路设计文件进行结构分析,得到逻辑电路设计文件对应逻辑电路中针对同一运算的运算时序不重叠的多个运算分支。
其中,逻辑电路设计文件可以为Verilog文件,对逻辑电路设计文件进行结构分析,生成网表文件,网表文件中包括各运算部件的数据流关系,其中,运算部件可以包括乘法运算部件、加法运算部分等,各运算部件的数据流关系可以理解为各运算部件的运算数据的运算时序依赖关系,例如,先进行乘法运算再进行加法运算,运算时序可以理解为运算时间。
对网表文件进行分析,得到逻辑电路设计文件对应逻辑电路中针对同一运算的运算时序不重叠的多个运算分支,其中,逻辑电路中的同一运算例如可以为乘法运算、加法运算,各运算对应至少一组运算数据,一组运算数据包括进行各运算的至少两个输入数据。
其中,一组运算数据对应一个运算分支,每个运算分支包括:至少两个输入数据的状态描述信息,一个输入数据的状态描述信息用于指示该输入数据在该分支的存在个数,例如,1表示该输入数据在该运算分支中存在一个,0表示该输入数据在该运算分支中不存在。
以加法运算为例,包括三个运算分支,分别是分支1、分支2、分支3,分支1是a+b,分支2是a+c,分支3是b+c,至少两个输入数据为a、b、c表1为输入数据的状态描述信息,如表1所示,分支1中a和b的状态描述信息为1,c的状态描述信息为0,分支2中a和c的状态描述信息为1,b的状态描述信息为0,分支3中b和c的状态描述信息为1,a的状态描述信息为0。
表1
S102、根据至少两个输入数据的状态描述信息,构建初始输入数据分布矩阵。
根据至少两个输入数据的状态描述信息,构建初始输入数据分布矩阵,初始输入数据分布矩阵中的元素为至少两个输入数据的状态描述信息,初始输入数据分布矩阵的列表示输入数据,行表示运算分支以表1为例,初始输入数据分布矩阵为。
S103、根据初始输入数据分布矩阵,构建预设蒙特卡洛树搜索算法的蒙特卡洛树。
将初始输入数据分布矩阵作为根节点,构建预设蒙特卡洛树搜索算法的蒙特卡洛树,并对蒙特卡洛树中的节点进行搜索,搜索到的第一个节点为根节点,并对蒙特卡洛树中根节点的子节点进行迭代搜索。
S104、在对蒙特卡洛树中的节点进行搜索的过程中,根据搜索到的当前节点的模拟访问次数,采用预设负反馈算法,计算当前节点的路径价值。
在对蒙特卡洛树中的节点进行搜索的过程中,根据搜索到的当前节点的模拟访问次数,采用预设负反馈算法,计算当前节点的路径价值,其中,当前节点的路径价值可以理解为基于当前节点进行子节点拓展的价值。
其中,模拟访问次数可以理解为通过仿真(Simulatin)计算得到的当前节点的访问次数,在一些实施例中,可通过采用仿真算法,对蒙特卡洛树中的当前节点进行子节点模拟拓展,直至蒙特卡洛树中的最后一个节点的输入数据分布矩阵满足预设数据分布条件,然后获取从蒙特卡洛树中的当前节点到最后一个节点的操作步数,根据操作步数计算当前节点的模拟访问次数,其中,操作步数越多,模拟访问次数越多,操作步数越少,模拟访问次数越少。关于仿真确定最后一个节点的过程与实际进行节点拓展以确定最后一个节点的过程类似。
采用预设负反馈算法,根据搜索到的当前节点的模拟访问次数,采用预设负反馈算法,计算当前节点的路径价值,其中,模拟访问次数越多,路径价值越低,模拟访问次数越少,路径价值越高。
值得说明的是,在采用仿真算法计算当前节点的模拟访问次数时,可设定仿真时长,在该仿真时长内对当前节点的部分子节点进行模拟拓展,也就是说,在模拟仿真阶段为降低处理开销,无需对当前节点的全部子节点进行模拟拓展,另外,若在该仿真时长内,若未拓展至输入数据分布满足预设数据分布条件的最后一个节点,则还可以基于当前节点到当前拓展到的节点的模拟操作次数估算出当前节点的路径价值。
S105、根据当前节点的路径价值,对蒙特卡洛树进行节点拓展,并根据蒙特卡洛树中的节点确定逻辑电路中针对同一运算的输入选择器的输入配置,直至蒙特卡洛树中的最后一个节点满足预设条件。
根据当前节点的路径价值,以路径价值最高的当前节点所在路径对蒙特卡洛树进行节点拓展,并根据蒙特卡洛树中的节点确定逻辑电路中针对同一运算的输入选择器的输入配置,重复该过程对蒙特卡洛树中的节点进行搜索并基于搜索到的节点的路径价值进行节点拓展,直至蒙特卡洛树中的最后一个节点满足预设条件,预设条件例如可以为最后一个节点的输入数据分布满足预设数据分布条件。
其中,输入选择器和同一运算的运算单元连接,输入选择器的输入配置为运算时序不重叠的各运算分支对应的一个输入数据,这样对于运算时序不重叠的各运算分支来说,可以在不同运算时序,通过输入选择器选择各运算分支的一个输入数据来输入至一个运算单元进行运算,以实现运算单元的资源共享。
也就是说,在节点搜索过程中,不断估算搜索到的节点的路径价值,来选取最优可能产生最优解的搜索分支以继续进行节点拓展,并且在该过程中同时根据蒙特卡洛树中的节点确定输入选择器的输入配置。
值得说明的是,可以采用UCB算法的预设负反馈算法,计算节点的路径价值,其中,蒙特卡洛树搜索的主要步骤有四个,分别是选择、拓展、模拟以及反向传播,其搜索拓展过程并非将状态遍历,而是每次拓展一次子节点,并对其进行模拟求解估算节点拓展价值,再将价值向上一直传递到根节点,开始下一轮的搜索过程,在该过程中,通过UCB算法的引入,使其能够同时考虑节点的路径价值和访问次数,当一个节点被访问太多次,搜索过程会对其失去兴趣,转而对其它节点进行搜索。
在本实施例中,基于路径价值进行节点搜索以确定选择器的输入配置,在减小选择器面积的同时,使多个运算分支实现针对同一运算的运算单元的资源共享,能够更快达到最优解,降低复杂度,并且,采用带有反馈的蒙特卡洛树搜索算法,为了平衡新节点与原有节点之间的决策取舍,引入了UCB算法来指导搜索算法进行拓展决策,当然,除了UCB算法外,还可以使用其它启发式策略来指导拓展决策,从而使蒙特卡洛树搜索算法更快地获得最优解(即更快确定输入选择器的输入配置)。
图2为本申请实施例提供的运算资源共享方法的流程示意图二,如图2所示,在一可选的实施方式中,步骤S104,根据当前节点的路径价值,对蒙特卡洛树进行节点拓展,并根据蒙特卡洛树中的节点确定逻辑电路中针对同一运算的输入选择器的输入配置,直至蒙特卡洛树中的最后一个节点满足预设条件,包括:
S201、根据多个当前节点的路径价值,从蒙特卡洛树中多个当前节点的拓展分支中,确定路径价值最高的目标拓展分支。
搜索到的当前节点的数量为多个,根据多个当前节点的路径价值,从蒙特卡洛树中多个当前节点的拓展分支中,确定路径价值最高的拓展分支为目标拓展分支,也即,对蒙特卡洛树中路径价值最高的当前节点进行节点拓展。
以初始输入数据分布矩阵为例,对蒙特卡洛树进行节点搜索,搜索得到的多个当前节点1、节点2、节点3,分别对应的输入数据分布矩阵为/>、、/>。
对节点1、节点2、节点3分别进行模拟仿真,计算各节点的路径价值,若节点1的路径价值最高,则确定节点1所在的拓展分支为目标拓展分支,也即沿着节点1对蒙特卡洛树进行节点搜索和拓展。
S202、根据初始输入数据分布矩阵,对蒙特卡洛树进行节点拓展,得到蒙特卡洛树中目标拓展分支下的当前节点的输入数据分布矩阵,并根据蒙特卡洛树中的节点确定输入选择器的输入配置,直至最后一个节点的输入数据分布矩阵满足预设数据分布条件。
根据初始输入数据分布矩阵,对蒙特卡洛树中目标拓展分支下的当前节点进行子节点拓展,得到目标拓展分支下的当前节点的输入数据分布矩阵,将目标拓展分支下的当前节点的输入数据分布矩阵作为初始输入数据分布矩阵,重复该过程,继续对蒙特卡洛树进行搜索,根据搜索到的多个当前节点的路径价值,从蒙特卡洛树中多个当前节点的拓展分支中,确定路径价值最高的目标拓展分支,根据初始输入数据分布矩阵,对蒙特卡洛树进行节点拓展,得到蒙特卡洛树中目标拓展分支下的当前节点的输入数据分布矩阵,同时在该过程中,根据蒙特卡洛树中的节点确定输入选择器的输入配置,直至蒙特卡洛树中的最后一个节点的输入数据分布矩阵满足预设数据分布条件,其中,预设数据分布条件可以为输入数据分布矩阵为只包含元素为0的矩阵即空矩阵,或者行数为1但存在一个非为0元素的矩阵。
值得说明的是,当最后一个节点的输入数据分布矩阵为只包含元素为0的矩阵时,说明将所有运算分支的输入数据均已分配至输入选择器,当最后一个节点的输入数据分布矩阵为行数为1但存在一个非为0元素的矩阵,说明所有运算分支的输入数据中只存在一个输入数据未被分配至输入选择器,则可分配一个运算单元作为输入选择器连接的运算单元的后级运算单元,将这个输入数据作为后级运算单元的一个输入,后级运算单元的另一个输入为输入选择器连接的运算单元的输出。
图3为本申请实施例提供的运算资源共享方法的流程示意图三,如图3所示,在一可选的实施方式中,步骤S202,根据初始输入数据分布矩阵,对蒙特卡洛树进行节点拓展,得到蒙特卡洛树中目标拓展分支下的当前节点的输入数据分布矩阵,并根据蒙特卡洛树中的节点确定输入选择器的输入配置,可以包括:
S301、遍历初始输入数据分布矩阵中的任意两列,得到任意两列的遍历结果。
遍历初始输入数据分布矩阵中的任意两列,判断任意两列的元素中每一行是否覆盖多个运算分支,以得到任意两列的遍历结果,遍历结果用于指示任意两列的元素是否覆盖多个运算分支。
若任意两列的每一行均存在非0的元素,说明任意两列覆盖多个运算分支,也即,将任意两列对应的输入数据作为一个输入选择器的输入配置,即该输入选择器的两个输入配置为任意两列对应的两个输入数据,该输入选择器针对各运算分支,都可以选出一个输入数据作为运算单元的输入。
以初始输入数据分布矩阵为例,取第一列和第二列/>,第一列和第二列的每一行均存在非0的元素,则输入选择器的输入为第一列对应的输入数据a和第二列对应的输入数据b,也即找到一个输入选择器的共享策略。
若任意两列的其中一行的元素均为0,说明任意两列未覆盖多个运算分支,说明将任意两列对应的输入数据作为一个输入选择器的输入时,该输入选择器针对所有运算分支都能选出一个输入数据作为运算单元的输入。
以初始输入数据分布矩阵例,取第一列和第四列/>,第一列和第四列的第三行不存在非0的元素,则说明将第一列和第二列对应的输入数据作为一个输入选择器的输入配置时,该输入选择器也无法选出所有运算分支的一个输入数据作为运算单元的输入,则后续还可在此基础上给该输入选择器增加输入配置。
在一可选的实施方式中,步骤S301,遍历初始输入数据分布矩阵中的任意两列,得到任意两列的遍历结果,可以包括:
若任意两列的或运算结果全为1,则遍历结果指示任意两列覆盖多个运算分支,若任意两列的或运算结果不全为1,则确定遍历结果指示任意两列未覆盖多个运算分支。
对任意两列的每一行元素进行或运算,得到任意两列的或运算结果,若任意两列的或运算结果全为1,则说明任意两列的遍历结果指示任意两列覆盖多个运算分支,若任意两列的或运算结果不全为1,则确定遍历结果指示任意两列未覆盖多个运算分支。
S302、若任意两列覆盖多个运算分支,从初始输入数据分布矩阵中将任意两列删除,根据删除后的输入数据分布矩阵,确定初始输入数据分布矩阵的第一子节点的输入数据分布矩阵,以对蒙特卡洛树进行节点拓展。
若任意两列覆盖多个运算分支,则从初始输入数据分布矩阵中将任意两列删除,将删除后的输入数据分布矩阵作为初始输入数据分布矩阵的第一子节点的输入数据分布矩阵,以对蒙特卡洛树进行节点拓展,其中,蒙特卡洛树中目标拓展分支下的当前节点为初始输入数据分布矩阵的第一子节点,初始输入数据分布矩阵的第一子节点可以理解为目标拓展分支下的当前节点,即目标拓展分支下初始输入数据分布矩阵对应根节点的子节点。
S303、将任意两列对应的输入数据作为一个输入选择器的输入配置。
若任意两列覆盖多个运算分支,则将任意两列对应的输入数据作为一个输入选择器的输入配置,例如,初始输入数据分布矩阵的第一列和第二列的每一行均存在非0的元素,则将第一列对应的输入数据a和第二列对应的输入数据b作为一个输入选择器的两个输入配置,即输入选择器的输入为第一列对应的输入数据a和第二列对应的输入数据b,也即找到一个输入选择器的共享策略,一个输入选择器的输入配置构建完成,该输入选择器具有两个输入通道。
S304、根据第一子节点的输入数据分布矩阵,确定另一个输入选择器的输入配置。
若任意两列覆盖多个运算分支,则根据第一子节点的输入数据分布矩阵,确定另一个输入选择器的输入配置,其中,可以将第一子节点的输入数据分布矩阵作为初始输入数据分布矩阵,按照上述实现过程,遍历第一子节点的输入数据分布矩阵中的任意两列,直至最后一个节点的输入数据分布矩阵满足预设数据分布条件。
在第一子节点的输入数据分布矩阵中的任意两列覆盖多个运算分支时,确定第一子节点的输入数据分布矩阵中的任意两列为另一个输入选择器的输入配置,即另一个输入选择器的输入为第一子节点的输入数据分布矩阵中的任意两列对应的输入数据。
以初始输入数据分布矩阵例,第一列至第四列分别对应输入数据a、b、c、d,取第一列和第二列/>,第一列和第二列的各行均存在非0的元素,说明第一列和第二列覆盖了多个运算分支,则将第一列和第二列删除得到删除后的输入数据分布矩阵/>,即第一子节点的输入数据分布矩阵,遍历第一子节点的输入数据分布矩阵中的第一列和第二列,均存在非0的元素,说明第一子节点的输入数据分布矩阵中的第一列和第二列,则将第一子节点的输入数据分布矩阵中的第一列对应的输入数据c和第二列对应的输入数据d作为另一个输入选择器的输入,即该输入选择器具有两个输入通道。
当然,在构建另一个输入选择器的输入配置时,若第一子节点的输入数据分布矩阵中的任意两列无法覆盖多个运算分支,则还可以参照如下实施例中关于初始输入数据分布矩阵中的任意两列无法覆盖多个运算分支的实现过程。
在一可选的实施方式中,步骤S302,根据删除后的输入数据分布矩阵,确定初始输入数据分布矩阵的第一子节点的输入数据分布矩阵,包括:
若任意两列的与运算结果中包括1,则根据删除后的输入数据分布矩阵以及与运算结果,确定第一子节点的输入数据分布矩阵。
对任意两列的每一行元素进行与运算,得到任意两列的与运算结果,若任意两列的与运算结果中包括1,则说明一个输入选择器的输入有两种情况,以初始输入数据分布矩阵为例,取第一列和第三列/>,第一列的输入数据为a,第三列的输入数据为c,第二行和第三行的与运算结果中包括1,说明一个输入选择器在第二分支可以选择a或c,这样的情况称为溢出,这两种选择分别为输入选择器在第一分支选择a、第二三分支选择c或者a,或者,第一二分支选择a,第三分支选择c。
在本实施例中,由于输入选择器在两种情况下均可行,则可根据需求确定,如选取数值较小的作为一个输入选择器的选择如a,a大于c,该输入选择器在第二分支选c,该输入选择器的输入为a和c。
将与运算结果作为新的列向量,和删除后的输入数据分布矩阵进行组合得到第一子节点的输入数据分布矩阵,其中,与运算结果表征保留的a,然后按照上述实现过程,确定另一个输入选择器的输入配置。
例如,第一列和第三列的与运算结果为,组合得到的第一子节点的输入数据分布矩阵为/>,其中,该矩阵中第一列表示b,第二列表示a,则或运算结果全为1,则另一个输入选择器的输入为a和b。
在本实施例中,通过考虑任意两列的与运算结果得到第一子节点的输入数据分布矩阵,在减小选择器面积的同时,能够更快达到最优解,降低复杂度。
图4为本申请实施例提供的运算资源共享方法的流程示意图四,如图4所示,在一可选的实施方式中,步骤S202,根据初始输入数据分布矩阵,对蒙特卡洛树进行节点拓展,得到蒙特卡洛树中目标拓展分支下的当前节点的输入数据分布矩阵,并根据蒙特卡洛树中的节点确定输入选择器的输入配置,可以包括:
S401、若任意两列未覆盖多个运算分支,则从初始输入数据分布矩阵中将任意两列删除,根据删除后的输入数据分布矩阵以及任意两列的或运算结果,确定初始输入数据分布矩阵的第二子节点的输入数据分布矩阵,以对蒙特卡洛树进行节点拓展。
若初始输入数据分布矩阵的任意两列未覆盖多个运算分支,则从初始输入数据分布矩阵中将任意两列删除,根据删除后的输入数据分布矩阵以及任意两列的或运算结果进行组合,生成初始输入数据分布的第二子节点的输入数据分布矩阵,其中,初始输入数据分布矩阵的第二子节点可以理解为目标拓展分支下的当前节点,即目标拓展分支下初始输入数据分布矩阵对应根节点的子节点。
以初始输入数据分布矩阵例,取第一列和第四列/>,由于第一列和第四列的第三行不存在非0的元素,则计算第一列和第四列的或运算结果为,从初始输入数据分布矩阵中将第一列和第四列删除,删除后的输入数据分布矩阵为,组合得到第二子节点的输入数据分布矩阵为/>,也即将或运算结果重新插入以作为第二子节点一个新的列向量,该或运算结果表征输入数据a和d。
其中,蒙特卡洛树中目标拓展分支下的当前节点为初始输入数据分布矩阵的第二子节点,初始输入数据分布矩阵的第二子节点可以理解为目标拓展分支下的当前节点,即目标拓展分支下初始输入数据分布矩阵对应根节点的子节点。
S402、根据第二子节点的输入数据分布矩阵中的或运算结果和目标列,确定一个输入选择器的输入配置。
其中,第二子节点的输入数据分布矩阵中的目标列为与或运算结果进行或运算后,所得到的或运算结果全为1的矩阵列。
将第二子节点的输入数据分布矩阵中的或运算结果与第二子节点的输入数据分布矩阵中的多个列进行或运算,从多个列中确定目标列,将目标列对应的输入数据和或运算结果对应的输入数据作为一个输入选择器的输入配置,即一个输入选择器的输入为其它列对应的输入数据和或运算结果对应的输入数据。其中,第二子节点的输入数据分布矩阵中或运算结果对应初始输入数据分布矩阵中任意两列对应的输入数据。
以第二子节点的输入数据分布矩阵为例,将该矩阵中的或运算结果和第一列/>进行或运算后得到全为1的或运算结果/>,则将或运算结果/>对应的输入数据a和d以及第一列/>对应的输入数据b作为第一输入选择器的输入,即该输入选择器具有三个输入通道。
S403、根据第二子节点的输入数据分布矩阵中除了或运算结果和目标列之外的其它列,确定另一个输入选择器的输入配置。
根据第二子节点的输入数据分布矩阵中除了或运算结果和目标列之外的其它列,确定目标输入数据分布矩阵,目标输入数据分布矩阵对应节点为搜素到的路径价值最高的节点,则按照上述实现过程,确定另一个输入选择器的输入配置,其中,若目标输入数据分布矩阵中任意两列覆盖多个运算分支,则可参照上述实施例中关于初始输入数据分布矩阵中的任意两列覆盖多个运算分支的实现过程,若目标输入数据分布矩阵中任意两列未覆盖多个运算分支,则可参照步骤S401-S402的实现过程,直至最后一个节点的输入数据分布矩阵满足预设数据分布条件。
以第二子节点的输入数据分布矩阵为例,或运算结果和第一列进行或运算后得到/>,说明已经找到一个输入选择器的共享策略,则得到目标输入数据分布矩阵/>,/>表示第二子节点的输入数据分布矩阵的第二列,/>表示基于或运算结果和目标列已经找到一个输入选择器的共享策略,表征或运算结果对应的输入数据a和d以及目标列对应的输入数据b。
针对目标输入数据分布矩阵,将第一列和第二列或运算后得到全为1的结果,则说明第二子节点的输入数据分布矩阵的第二列对应的输入数据b、或运算结果对应的输入数据a和d以及第一列对应的输入数据b作为另一个输入选择器的输入配置,即另一个输入选择器具有四个输入通道。
在一可选的实施方式中,步骤S401,根据删除后的输入数据分布矩阵以及任意两列的或运算结果,确定初始输入数据分布矩阵的第二子节点的输入数据分布矩阵,可以包括:
若任意两列的与运算结果中包括1,则根据删除后的输入数据分布矩阵、或运算结果以及与运算结果,确定第二子节点的输入数据分布矩阵。
对任意两列的每一行元素进行与运算,得到任意两列的与运算结果,若任意两列的与运算结果中包括1,则说明一个输入选择器的输入有两种情况,以初始输入数据分布矩阵为例,取第一列和第四列/>的或运算结果为/>,第一列至第四列的输入分别为a、b、c、d,第一列和第四列的第一行的与运算结果中包括1,说明一个输入选择器在第一分支可以选择a或d,这样的情况称为溢出,这两种选择分别为输入选择器在第一分支选择a、第二分支选择d,或者第一二分支选择d。
在本实施例中,由于输入选择器在两种情况下均可行,则可根据需求确定,如选取数值较小的作为一个输入选择器的选择如a,a大于d,该输入选择器在第二分支选d,该输入选择器的输入为a和d,或者d。
将与运算结果作为新的列向量,和删除后的输入数据分布矩阵以及或运算结果进行组合得到第二子节点的输入数据分布矩阵,其中,与运算结果表征保留的d,然后按照上述过程,确定两个输入选择器的输入配置。
综上,将上述实施例中的每一次 “或与”操作所形成的节点,记录成为蒙特卡洛树搜索的节点,“或与”操作并最终到达终止状态(即最后一个节点满足预设数据分布条件)时,所形成的操作序列则构成1个完整的搜索路径,在该搜索过程中在,可以不断地根据各个节点的收益估算值,来选取最有可能产生最优解的搜索分支,来进行继续的搜索。
在本实施例中,通过考虑任意两列的与运算结果得到第一子节点的输入数据分布矩阵,在减小选择器面积的同时,能够更快达到最优解,降低复杂度。
在一些实施例中,输入选择器的面积与输入数据的信号选择布尔表达式相关,因此在软件算法上,通过合并化简相同输入数据的信号选择布尔表达式,能够简化逻辑电路,其中,输入选择器的面积正比于输入选择器的输入通道数量。
图5为本申请实施例提供的运算资源共享装置的结构示意图,该装置可以集成在电子设备中。如图5所示,该装置可以包括:
分析模块501,用于对逻辑电路设计文件进行结构分析,得到逻辑电路设计文件对应逻辑电路中针对同一运算的运算时序不重叠的多个运算分支,每个运算分支包括:至少两个输入数据的状态描述信息;
构建模块502,用于根据至少两个输入数据的状态描述信息,构建初始输入数据分布矩阵;
构建模块502,还用于根据初始输入数据分布矩阵,构建预设蒙特卡洛树搜索算法的蒙特卡洛树;
计算模块503,用于在对蒙特卡洛树中的节点进行搜索的过程中,根据搜索到的当前节点的模拟访问次数,采用预设负反馈算法,计算当前节点的路径价值;
拓展模块504,用于根据当前节点的路径价值,对蒙特卡洛树进行节点拓展,并根据蒙特卡洛树中的节点确定逻辑电路中针对同一运算的输入选择器的输入配置,直至蒙特卡洛树中的最后一个节点满足预设条件。
在一可选的实施方式中,拓展模块504,具体用于:
根据多个当前节点的路径价值,从蒙特卡洛树中多个当前节点的拓展分支中,确定路径价值最高的目标拓展分支;
根据初始输入数据分布矩阵,对蒙特卡洛树进行节点拓展,得到蒙特卡洛树中目标拓展分支下的当前节点的输入数据分布矩阵,并根据蒙特卡洛树中的节点确定输入选择器的输入配置,直至最后一个节点的输入数据分布矩阵满足预设数据分布条件。
在一可选的实施方式中,拓展模块504,具体用于:
遍历初始输入数据分布矩阵中的任意两列,得到任意两列的遍历结果,任意两列的遍历结果用于指示任意两列是否覆盖多个运算分支;
若任意两列覆盖多个运算分支,从初始输入数据分布矩阵中将任意两列删除,根据删除后的输入数据分布矩阵,确定初始输入数据分布矩阵的第一子节点的输入数据分布矩阵,以对蒙特卡洛树进行节点拓展;
将任意两列对应的输入数据作为一个输入选择器的输入配置;
根据第一子节点的输入数据分布矩阵,确定另一个输入选择器的输入配置。
在一可选的实施方式中,拓展模块504,具体用于:
若任意两列未覆盖多个运算分支,则从初始输入数据分布矩阵中将任意两列删除,根据删除后的输入数据分布矩阵以及任意两列的或运算结果,确定初始输入数据分布矩阵的第二子节点的输入数据分布矩阵,以对蒙特卡洛树进行节点拓展;
根据第二子节点的输入数据分布矩阵中的或运算结果和目标列,确定一个输入选择器的输入配置;
根据第二子节点的输入数据分布矩阵中除了或运算结果和目标列之外的其它列,确定另一个输入选择器的输入配置。
在一可选的实施方式中,拓展模块504,具体用于:
若任意两列的与运算结果中包括1,则根据删除后的输入数据分布矩阵以及与运算结果,确定第一子节点的输入数据分布矩阵。
在一可选的实施方式中,拓展模块504,具体用于:
若任意两列的与运算结果中包括1,则根据删除后的输入数据分布矩阵、或运算结果以及与运算结果,确定第二子节点的输入数据分布矩阵。
在一可选的实施方式中,拓展模块504,具体用于:
若任意两列的或运算结果全为1,则遍历结果指示任意两列覆盖多个运算分支;
若任意两列的或运算结果不全为1,则确定遍历结果指示任意两列未覆盖多个运算分支。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
图6为本申请实施例提供的电子设备的结构示意图,包括:处理器601、存储器602和总线603,存储器602存储有处理器601可执行的机器可读指令,当电子设备运行时,处理器601与存储器602之间通过总线603通信,处理器601执行机器可读指令,以执行上述方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行,所述处理器执行上述方法。
在本申请实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例中其它所述的方法,关于具体执行的方法步骤和原理参见实施例的说明,在此不再详细赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种运算资源共享方法,其特征在于,包括:
对逻辑电路设计文件进行结构分析,得到逻辑电路设计文件对应逻辑电路中针对同一运算的运算时序不重叠的多个运算分支,每个运算分支包括:至少两个输入数据的状态描述信息;
根据所述至少两个输入数据的状态描述信息,构建初始输入数据分布矩阵;
根据所述初始输入数据分布矩阵,构建预设蒙特卡洛树搜索算法的蒙特卡洛树;
在对所述蒙特卡洛树中的节点进行搜索的过程中,根据搜索到的当前节点的模拟访问次数,采用预设负反馈算法,计算所述当前节点的路径价值;
根据所述当前节点的路径价值,对所述蒙特卡洛树进行节点拓展,并根据所述蒙特卡洛树中的节点确定所述逻辑电路中针对所述同一运算的输入选择器的输入配置,直至所述蒙特卡洛树中的最后一个节点满足预设条件;
所述根据所述当前节点的路径价值,对所述蒙特卡洛树进行节点拓展,并根据所述蒙特卡洛树中的节点确定所述逻辑电路中针对所述同一运算的输入选择器的输入配置,直至所述蒙特卡洛树中的最后一个节点满足预设条件,包括:
根据多个所述当前节点的路径价值,从所述蒙特卡洛树中多个所述当前节点的拓展分支中,确定路径价值最高的目标拓展分支;
根据所述初始输入数据分布矩阵,对所述蒙特卡洛树进行节点拓展,得到所述蒙特卡洛树中所述目标拓展分支下的当前节点的输入数据分布矩阵,并根据所述蒙特卡洛树中的节点确定所述输入选择器的输入配置,直至所述最后一个节点的输入数据分布矩阵满足预设数据分布条件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述初始输入数据分布矩阵,对所述蒙特卡洛树进行节点拓展,得到所述蒙特卡洛树中所述目标拓展分支下的当前节点的输入数据分布矩阵,并根据所述蒙特卡洛树中的节点确定所述输入选择器的输入配置,包括:
遍历所述初始输入数据分布矩阵中的任意两列,得到所述任意两列的遍历结果,所述任意两列的遍历结果用于指示所述任意两列是否覆盖所述多个运算分支;
若所述任意两列覆盖所述多个运算分支,从所述初始输入数据分布矩阵中将所述任意两列删除,根据删除后的输入数据分布矩阵,确定所述初始输入数据分布矩阵的第一子节点的输入数据分布矩阵,以对所述蒙特卡洛树进行节点拓展;
将所述任意两列对应的输入数据作为一个输入选择器的输入配置;
根据所述第一子节点的输入数据分布矩阵,确定另一个输入选择器的输入配置。
3.根据权利要求2所述的方法,其特征在于,所述根据所述初始输入数据分布矩阵,对所述蒙特卡洛树进行节点拓展,得到所述蒙特卡洛树中所述目标拓展分支下的当前节点的输入数据分布矩阵,并根据所述蒙特卡洛树中的节点确定所述输入选择器的输入配置,包括:
若所述任意两列未覆盖所述多个运算分支,则从所述初始输入数据分布矩阵中将所述任意两列删除,根据删除后的输入数据分布矩阵以及所述任意两列的或运算结果,确定所述初始输入数据分布矩阵的第二子节点的输入数据分布矩阵,以对所述蒙特卡洛树进行节点拓展;
根据所述第二子节点的输入数据分布矩阵中的所述或运算结果和目标列,确定一个输入选择器的输入配置;
根据所述第二子节点的输入数据分布矩阵中除了所述或运算结果和目标列之外的其它列,确定另一个输入选择器的输入配置。
4.根据权利要求2所述的方法,其特征在于,所述根据删除后的输入数据分布矩阵,确定所述初始输入数据分布矩阵的第一子节点的输入数据分布矩阵,包括:
若所述任意两列的与运算结果中包括1,则根据所述删除后的输入数据分布矩阵以及所述与运算结果,确定所述第一子节点的输入数据分布矩阵。
5.根据权利要求3所述的方法,其特征在于,所述根据删除后的输入数据分布矩阵以及所述任意两列的或运算结果,确定所述初始输入数据分布矩阵的第二子节点的输入数据分布矩阵,包括:
若所述任意两列的与运算结果中包括1,则根据所述删除后的输入数据分布矩阵、所述或运算结果以及所述与运算结果,确定所述第二子节点的输入数据分布矩阵。
6.根据权利要求2所述的方法,其特征在于,所述遍历所述初始输入数据分布矩阵中的任意两列,得到所述任意两列的遍历结果,包括:
若所述任意两列的或运算结果全为1,则所述遍历结果指示所述任意两列覆盖所述多个运算分支;
若所述任意两列的或运算结果不全为1,则确定所述遍历结果指示所述任意两列未覆盖所述多个运算分支。
7.一种运算资源共享装置,其特征在于,包括:
分析模块,用于对逻辑电路设计文件进行结构分析,得到逻辑电路设计文件对应逻辑电路中针对同一运算的运算时序不重叠的多个运算分支,每个运算分支包括:至少两个输入数据的状态描述信息;
构建模块,用于根据所述至少两个输入数据的状态描述信息,构建初始输入数据分布矩阵;
所述构建模块,还用于根据所述初始输入数据分布矩阵,构建预设蒙特卡洛树搜索算法的蒙特卡洛树;
计算模块,用于在对所述蒙特卡洛树中的节点进行搜索的过程中,根据搜索到的当前节点的模拟访问次数,采用预设负反馈算法,计算所述当前节点的路径价值;
拓展模块,用于根据所述当前节点的路径价值,对所述蒙特卡洛树进行节点拓展,并根据所述蒙特卡洛树中的节点确定所述逻辑电路中针对所述同一运算的输入选择器的输入配置,直至所述蒙特卡洛树中的最后一个节点满足预设条件;
所述拓展模块,具体用于:
根据多个所述当前节点的路径价值,从所述蒙特卡洛树中多个所述当前节点的拓展分支中,确定路径价值最高的目标拓展分支;
根据所述初始输入数据分布矩阵,对所述蒙特卡洛树进行节点拓展,得到所述蒙特卡洛树中所述目标拓展分支下的当前节点的输入数据分布矩阵,并根据所述蒙特卡洛树中的节点确定所述输入选择器的输入配置,直至所述最后一个节点的输入数据分布矩阵满足预设数据分布条件。
8.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行权利要求1至6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410021414.6A CN117521576B (zh) | 2024-01-08 | 2024-01-08 | 运算资源共享方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410021414.6A CN117521576B (zh) | 2024-01-08 | 2024-01-08 | 运算资源共享方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117521576A CN117521576A (zh) | 2024-02-06 |
CN117521576B true CN117521576B (zh) | 2024-04-26 |
Family
ID=89757073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410021414.6A Active CN117521576B (zh) | 2024-01-08 | 2024-01-08 | 运算资源共享方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117521576B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117726149B (zh) * | 2024-02-08 | 2024-05-03 | 天津大学 | 一种基于人工智能的智能制造资源配置方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110427261A (zh) * | 2019-08-12 | 2019-11-08 | 电子科技大学 | 一种基于深度蒙特卡洛树搜索的边缘计算任务分配方法 |
CN110674470A (zh) * | 2019-10-25 | 2020-01-10 | 中国人民解放军国防科技大学 | 一种动态环境中多机器人的分布式任务规划方法 |
JP2020009122A (ja) * | 2018-07-06 | 2020-01-16 | 国立研究開発法人産業技術総合研究所 | 制御プログラム、制御方法及びシステム |
CN110989352A (zh) * | 2019-12-06 | 2020-04-10 | 上海应用技术大学 | 一种基于蒙特卡洛树搜索算法的群体机器人协同搜索方法 |
CN111679679A (zh) * | 2020-07-06 | 2020-09-18 | 哈尔滨工业大学 | 基于蒙特卡洛树搜索算法的机器人状态规划方法 |
CN112464611A (zh) * | 2020-12-11 | 2021-03-09 | 电子科技大学 | 一种基于云端协同智能处理的pcb自动布线系统 |
CN112528591A (zh) * | 2020-12-11 | 2021-03-19 | 电子科技大学 | 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法 |
CN115494873A (zh) * | 2022-09-28 | 2022-12-20 | 南京航空航天大学 | 时序约束下一种基于蒙特卡洛树搜索架构的异构多无人机协同任务分配方法 |
-
2024
- 2024-01-08 CN CN202410021414.6A patent/CN117521576B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020009122A (ja) * | 2018-07-06 | 2020-01-16 | 国立研究開発法人産業技術総合研究所 | 制御プログラム、制御方法及びシステム |
CN110427261A (zh) * | 2019-08-12 | 2019-11-08 | 电子科技大学 | 一种基于深度蒙特卡洛树搜索的边缘计算任务分配方法 |
CN110674470A (zh) * | 2019-10-25 | 2020-01-10 | 中国人民解放军国防科技大学 | 一种动态环境中多机器人的分布式任务规划方法 |
CN110989352A (zh) * | 2019-12-06 | 2020-04-10 | 上海应用技术大学 | 一种基于蒙特卡洛树搜索算法的群体机器人协同搜索方法 |
CN111679679A (zh) * | 2020-07-06 | 2020-09-18 | 哈尔滨工业大学 | 基于蒙特卡洛树搜索算法的机器人状态规划方法 |
CN112464611A (zh) * | 2020-12-11 | 2021-03-09 | 电子科技大学 | 一种基于云端协同智能处理的pcb自动布线系统 |
CN112528591A (zh) * | 2020-12-11 | 2021-03-19 | 电子科技大学 | 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法 |
CN115494873A (zh) * | 2022-09-28 | 2022-12-20 | 南京航空航天大学 | 时序约束下一种基于蒙特卡洛树搜索架构的异构多无人机协同任务分配方法 |
Non-Patent Citations (1)
Title |
---|
群智进化理论及其在智能机器人中的应用;戚骁亚;刘创;富宸;甘中学;;中国工程科学;20180815(04);第109-119页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117521576A (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117521576B (zh) | 运算资源共享方法、装置、设备和介质 | |
EP3825841A1 (en) | Method and device for parallel computation of a network model | |
JPH11219378A (ja) | 分解及び分割によるハードウェアの検証並びに表現方法 | |
CN112163394B (zh) | 一种cpu芯片设计方法、装置及电子设备 | |
Dao et al. | Efficient computation of ECO patch functions | |
CN111597768B (zh) | 用于构建版图图案集的方法、设备和计算机可读存储介质 | |
CN111914441B (zh) | 一种轮胎模型的优化方法及设备 | |
GB2529170A (en) | Circuit design generator | |
CN112001491A (zh) | 针对处理器确定神经网络架构的搜索方法和装置 | |
US9053041B2 (en) | System, method, and computer program product for performing graph coloring | |
CN114386349A (zh) | 系统级数字电路的布线方法及装置、设备、存储介质 | |
CN114564904A (zh) | Fpga全路径快速时序分析方法、装置、计算机和存储介质 | |
Yue et al. | Scalability and generalization of circuit training for chip floorplanning | |
CN112257368A (zh) | 时钟布局方法、装置、eda工具及计算机可读存储介质 | |
US8281263B2 (en) | Propagating design tolerances to shape tolerances for lithography | |
CN116401992A (zh) | 一种节点路由路径优化方法及装置 | |
US20230252192A1 (en) | Hardware trojan detection method, hardware trojan detection device, and program for hardware trojan detection | |
Brayton et al. | An integrated technology mapping environment | |
CN110059880A (zh) | 一种服务发现方法及装置 | |
US7181720B2 (en) | Process and device for circuit design by means of high-level synthesis | |
CN113435149B (zh) | 一种优化fpga综合效果的测试例自动生成方法 | |
CN116805155B (zh) | 一种lstm网络处理方法、装置、设备及可读存储介质 | |
Almeida et al. | E-RVP: An Initial Design Rule Violation Predictor Using Placement Information | |
Xu et al. | FPGA autotuning optimization based on structural equation modeling | |
Ruospo | An Evolutionary Approach for Functional Verification of RISC-V cores |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |