CN117768356B - 预测方法及装置、电子设备与存储介质 - Google Patents
预测方法及装置、电子设备与存储介质 Download PDFInfo
- Publication number
- CN117768356B CN117768356B CN202410190259.0A CN202410190259A CN117768356B CN 117768356 B CN117768356 B CN 117768356B CN 202410190259 A CN202410190259 A CN 202410190259A CN 117768356 B CN117768356 B CN 117768356B
- Authority
- CN
- China
- Prior art keywords
- node
- target
- kth
- module
- memory
- 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 83
- 230000005284 excitation Effects 0.000 claims abstract description 152
- 230000005540 biological transmission Effects 0.000 claims abstract description 34
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012546 transfer Methods 0.000 claims description 12
- 230000008450 motivation Effects 0.000 claims description 2
- 238000013461 design Methods 0.000 abstract description 7
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 238000002347 injection Methods 0.000 description 4
- 239000007924 injection Substances 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种芯片的片上网络拓扑性能的预测方法及装置、电子设备与存储介质。片上网络包括多个节点,多个节点包括第一节点和与第一节点连接的至少一个第二节点。该预测方法包括:通过目标激励模块将激励输入第一节点,其中,激励包括多个激励配置文件;基于每个激励配置文件,执行第一节点与目标运算模块之间、第一节点与第二节点之间、第一节点与目标激励模块之间的数据传输;记录每个激励配置文件下的第一节点与目标运算模块之间、第一节点与第二节点之间、第一节点与目标激励模块之间的数据传输的目标访存耗时。该预测方法可以快速验证NoC拓扑的预期性能,实现了NoC拓扑性能预测的快速迭代,有利于探索并指导新一代芯片的片上网络拓扑设计。
Description
技术领域
本公开的实施例涉及一种芯片的片上网络拓扑性能的预测方法、预测装置、电子设备与存储介质。
背景技术
系统级芯片(System on Chip,SoC)将微处理器、模拟知识产权核(IntellectualProperty Core,IP核)、数字IP核和存储器(或片外存储控制接口)等模块集成在单一芯片上,它通常是客户定制的或是面向特定用途的标准产品。随着SoC技术的发展,芯片内部集成的操作单元(Processing Element,PE)或计算核越来越多,在一颗芯片中可能会集成数以百记的处理器内核(包括同构处理器内核和异构处理器内核)、数以千计控制器IP核等等。在此情况下,操作单元之间的互联成为了SoC性能一个重要组成部分。
发明内容
本公开至少一实施例提供一种芯片的片上网络拓扑性能的预测方法,其中,所述片上网络包括多个节点,所述多个节点中的每个节点与对应的运算模块和激励模块连接,所述多个节点包括第一节点和与所述第一节点连接的至少一个第二节点,所述第一节点与对应的目标运算模块和目标激励模块连接,所述预测方法包括:通过所述目标激励模块将激励输入所述第一节点,其中,所述激励包括多个激励配置文件;基于所述多个激励配置文件中的每个激励配置文件,执行所述第一节点与所述目标运算模块之间、所述第一节点与所述至少一个第二节点之间、所述第一节点与所述目标激励模块之间的数据传输;记录所述每个激励配置文件下的所述第一节点与所述目标运算模块之间、所述第一节点与所述至少一个第二节点之间、所述第一节点与所述目标激励模块之间的数据传输的目标访存耗时。
例如,在本公开至少一实施例提供的预测方法中,所述多个激励配置文件包括第一激励配置文件至第N激励配置文件,所述多个激励配置文件中的第k激励配置文件包括第k访存数据和所述第k访存数据的访问模式信息,其中,N为大于1的整数,k = 1, 2, …, N。
例如,在本公开至少一实施例提供的预测方法中,所述第k访存数据的访问模式信息包括统一内存访问模式和非一致性内存访问模式。
例如,在本公开至少一实施例提供的预测方法中,将所述激励输入所述第一节点,包括:使用所述第一节点、所述至少一个第二节点、所述目标激励模块和所述目标运算模块的模型架构信息配置预配置文件;基于配置后的所述预配置文件,将所述多个激励配置文件输入所述第一节点。
例如,在本公开至少一实施例提供的预测方法中,所述多个激励配置文件包括第一激励配置文件至第N激励配置文件,所述多个激励配置文件中的第k激励配置文件包括第k访存数据和所述第k访存数据的尺寸信息,所述预测方法还包括:基于所述第k访存数据的尺寸信息和所述第k激励配置文件下的目标访存耗时,计算并输出所述第k激励配置文件下的目标流量信息。
例如,在本公开至少一实施例提供的预测方法中,所述第k访存数据的尺寸信息包括所述第k访存数据的数据量大小和/或所述第k访存数据中包含的访存请求数量,基于所述第k访存数据的尺寸信息和所述第k激励配置文件下的目标访存耗时,计算并输出所述第k激励配置文件下的目标流量信息,包括:基于所述第k访存数据的数据量大小和所述第k激励配置文件下的目标访存耗时,计算并输出所述第k激励配置文件下的带宽,和/或基于所述第k访存数据中包含的访存请求数量和所述第k激励配置文件下的目标访存耗时,计算并输出所述第k激励配置文件下执行每个访存请求的平均耗时。
例如,在本公开至少一实施例提供的预测方法中,所述芯片包括多个操作单元,所述目标运算模块包括所述多个操作单元中的至少一个操作单元,所述第一节点与所述至少一个操作单元连接,基于所述多个激励配置文件中的每个激励配置文件,执行所述第一节点与所述目标运算模块之间的数据传输,包括:基于所述每个激励配置文件,执行所述第一节点与所述至少一个操作单元中每个操作单元之间的数据传输。
例如,在本公开至少一实施例提供的预测方法中,所述至少一个操作单元中的操作单元的数量大于1。
例如,在本公开至少一实施例提供的预测方法中,所述至少一个操作单元包括第一操作单元至第M操作单元,其中,M为大于1的整数,所述预测方法还包括:在所述第一节点上设置M个可配置接口;将所述M个可配置接口中的第i个可配置接口配置为与所述至少一个操作单元中的第i个操作单元连接,其中,i = 1, 2, …, M。
例如,在本公开至少一实施例提供的预测方法中,记录所述每个激励配置文件下的所述第一节点与所述目标运算模块之间、所述第一节点与所述至少一个第二节点之间、所述第一节点与所述目标激励模块之间的数据传输的目标访存耗时,包括:在所述每个激励配置文件下,记录所述第一节点与所述目标运算模块之间的第一访存耗时,记录所述第一节点与所述至少一个第二节点中每个第二节点之间的第二访存耗时,以及记录所述第一节点与所述目标激励模块之间的第三访存耗时;记录所述目标访存耗时。
例如,在本公开至少一实施例提供的预测方法中,所述多个激励配置文件包括第一激励配置文件至第N激励配置文件,所述多个激励配置文件中的第k激励配置文件包括第k访存数据,所述第k访存数据中包含第k标识信息,其中,N为大于1的整数,k = 1, 2, …,N,在所述每个激励配置文件下,记录所述第一节点与所述目标运算模块之间的第一访存耗时,记录所述第一节点与所述至少一个第二节点中每个第二节点之间的第二访存耗时,以及记录所述第一节点与所述目标激励模块之间的第三访存耗时,包括:在所述第k激励配置文件下,当所述第k访存数据由所述第一节点传输至所述目标运算模块时,以及当所述第k访存数据从所述目标运算模块返回至所述第一节点时,基于所述第k标识信息记录所述第一节点与所述目标运算模块之间的第一访存耗时;当所述第k访存数据由所述第一节点传输至所述每个第二节点时,以及当所述第k访存数据从所述每个第二节点返回至所述第一节点时,基于所述第k标识信息记录所述第一节点与所述每个第二节点之间的第二访存耗时;以及当所述第k访存数据由所述第一节点传输至所述目标激励模块时,以及当所述第k访存数据从所述目标激励模块返回至所述第一节点时,基于所述第k标识信息记录所述第一节点与所述目标激励模块之间的第三访存耗时。
例如,在本公开至少一实施例提供的预测方法中,所述芯片包括多个操作单元,所述目标运算模块包括所述多个操作单元中的至少一个操作单元,所述第一节点与所述至少一个操作单元连接,所述预测方法还包括:在所述每个激励配置文件下,记录所述至少一个操作单元中每个操作单元的访存子耗时,得到所述第一访存耗时。
本公开至少一实施例还提供一种芯片的片上网络拓扑性能的预测装置,其中,所述片上网络包括多个节点,所述多个节点中的每个节点与对应的运算模块和激励模块连接,所述多个节点包括第一节点和与所述第一节点连接的至少一个第二节点,所述第一节点与对应的目标运算模块和目标激励模块连接,所述预测装置包括:输入模块,配置为通过所述目标激励模块将激励输入所述第一节点,其中,所述激励包括多个激励配置文件;执行模块,配置为基于所述多个激励配置文件中的每个激励配置文件,执行所述第一节点与所述目标运算模块之间、所述第一节点与所述至少一个第二节点之间、所述第一节点与所述目标激励模块之间的数据传输;记录模块,配置为记录所述每个激励配置文件下的所述第一节点与所述目标运算模块之间、所述第一节点与所述至少一个第二节点之间的数据传输、所述第一节点与所述目标激励模块之间的目标访存耗时。
例如,在本公开至少一实施例提供的预测装置中,所述芯片包括多个操作单元,所述目标运算模块包括所述多个操作单元中的至少一个操作单元,所述第一节点与所述至少一个操作单元连接,所述执行模块还配置为,基于所述每个激励配置文件,执行所述第一节点与所述至少一个操作单元中每个操作单元之间的数据传输。
例如,在本公开至少一实施例提供的预测装置中,所述至少一个操作单元中的操作单元的数量大于1。
例如,在本公开至少一实施例提供的预测装置中,所述记录模块还配置为:在所述每个激励配置文件下,记录所述第一节点与所述目标运算模块之间的第一访存耗时,记录所述第一节点与所述至少一个第二节点中每个第二节点之间的第二访存耗时,记录所述第一节点与所述目标激励模块之间的第三访存耗时,以及记录所述目标访存耗时。
本公开至少一实施例还提供一种电子设备。该电子设备包括:处理器;存储器,包括一个或多个计算机程序模块;其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块用于实现本公开任一实施例提供的芯片的片上网络拓扑性能的预测方法。
本公开至少一实施例还提供一种存储介质,存储有非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时实现本公开任一实施例提供的芯片的片上网络拓扑性能的预测方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1是一种芯片的片上网络拓扑的结构框图;
图2为本公开至少一实施例提供的芯片的片上网络拓扑性能的预测方法的示例性流程图;
图3为图2的步骤S130的一个示例性流程图;
图4为本公开至少一实施例提供的芯片的片上网络拓扑性能的预测方法的一个示例的示意图;
图5为本公开至少一实施例提供的芯片的片上网络拓扑性能的预测方法的另一个示例的示意图;
图6为本公开的至少一实施例提供的芯片的片上网络拓扑性能的预测装置的示意框图;
图7为本公开的至少一实施例提供的一种电子设备的示意框图;
图8为本公开的至少一实施例提供的另一种电子设备的示意框图;以及
图9为本公开的至少一实施例提供的一种存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
下面通过几个具体的实施例对本公开进行说明。为了保持本公开实施例的以下说明清楚且简明,可省略已知功能和已知部件的详细说明。当本公开实施例的任一部件在一个以上的附图中出现时,该部件在每个附图中由相同或类似的参考标号表示。
片上网络(Network on Chip,NoC)是一种在芯片(例如,系统级芯片SoC)上实现的互联网络,用于实现芯片上各模块之间的互联和通信。NoC是多核技术的主要组成部分,芯片的多个操作单元(PE)或计算核之间可以通过NoC等通信方式来实现数据交换和协同合作。NoC将多个操作单元之间的数据传输实现为通信节点(例如,路由器等)之间的数据转发,从而为操作单元节约了一部分的计算资源。相比传统总线式系统,NoC不再受限于总线架构,可以扩展任意数量的操作单元;在需要对片上系统功能进行扩展时,只需要将设计好的功能模块通过网络接口接入,无需重新设计网络整体架构。此外,NoC避免了总线架构在同一时刻只能有一对通信节点进行通信,可以实现同一时刻多对通信节点之间的通信。
图1是一种芯片的片上网络拓扑的结构框图。
例如,如图1所示,片上网络NoC是由多个通信节点(R01, R02, …, R0A)来连通多条点对点的数据链路交互构建而成;多个通信节点连接到芯片(例如,SoC)的多个操作单元(PE01, …, PE0X, …, PE0Y, …, PE0Z);这里,X、Y、Z和A均为大于1的整数。例如,通过图1中的多个通信节点,访存数据可以在多个操作单元之间自由传输,以实现对各个操作单元的数据访问或数据存储。例如,NoC的通信节点可以实现为路由器等传输元件,由多个通信节点实现与之连接的多个操作单元之间的访存数据的转发。
随着芯片的复杂度增加,在芯片开发的探索过程中,片上网络NoC的拓扑性能是重要的验证和探索对象。如何提供一种可配置、可扩展、周期精确、能提供关键性能数据的NoC拓扑性能的预测方法,对于芯片开发是非常重要的。然而,在进行不同的NoC拓扑结构的性能分析时,一方面,开发人员较多地依赖对已有拓扑的理论分析,缺乏可靠的并且能够实现快速迭代的拓扑性能预测模型,导致探索新一代拓扑设计的难度较大;另一方面,当前的NoC拓扑性能预测方法支持的激励注入模式较为单一,不支持在单次运行后就得到定制化的、全面的性能数据,并且可配置结构较为单一,不支持通信节点连接多操作单元的预测结构,从而不能很好地支持图形处理器(GPU)、通用图形处理器(GPGPU)等复杂处理单元的性能预测需求。
本公开至少一实施例提供一种芯片的片上网络拓扑性能的预测方法。片上网络包括多个节点,每个节点与对应的运算模块和激励模块连接,多个节点包括第一节点和与第一节点连接的至少一个第二节点,第一节点与对应的目标运算模块和目标激励模块连接。该预测方法包括:通过目标激励模块将激励输入第一节点,其中,激励包括多个激励配置文件;基于每个激励配置文件,执行第一节点与目标运算模块之间、第一节点与第二节点之间、第一节点与目标激励模块之间的数据传输;记录每个激励配置文件下的第一节点与目标运算模块之间、第一节点与第二节点之间的数据传输的目标访存耗时。
本公开的至少一实施例还提供一种芯片的片上网络拓扑性能的预测装置、电子设备与存储介质,用于实现上述实施例的芯片的片上网络拓扑性能的预测方法。
本公开至少一实施例提供的方法、装置、电子设备以及存储介质,在单次输入并运行多个激励配置文件后,可以得到不同注入激励下的NoC拓扑中数据访存过程的目标访存耗时,从而可以快速验证NoC拓扑的预期性能,实现了NoC拓扑性能预测的快速迭代,有利于探索并指导新一代芯片的片上网络拓扑设计。
下面,将参考附图详细地说明本公开至少一实施例。应当注意的是,不同的附图中相同的附图标记将用于指代已描述的相同的元件。
图2为本公开至少一实施例提供的芯片的片上网络拓扑性能的预测方法的示例性流程图。
例如,如图2所示,本公开至少一实施例提供了一种芯片的片上网络拓扑性能的预测方法,该片上网络包括多个节点(Node),每个节点与对应的运算模块和激励模块连接,多个节点包括第一节点和与第一节点连接的一个或多个第二节点,第一节点与对应的目标运算模块和目标激励模块连接。例如,该方法包括以下步骤S110~S130。
步骤S110:通过目标激励模块将激励输入第一节点。
例如,在步骤S110中,片上网络NoC的多个节点是与运算模块连接的多个通信节点。例如,运算模块可以是芯片(例如,SoC)中的操作单元(或计算核),操作单元中可以包括各类IP核、处理器等,本公开的实施例对此不作限制。例如,激励模块也可以是芯片中的操作单元;对于第一节点,与第一节点连接的任一个或多个操作单元都可以被配置为产生激励的目标激励模块,具体可以根据实际需要进行配置,本公开的实施例对此不作限制。
例如,在步骤S110中,从NoC的多个节点中选取第一节点,通过在第一节点输入当前激励来对NoC拓扑性能进行预测;第一节点可以与一个或多个第二节点连接,第二节点可以是NoC的多个节点中除第一节点之外的全部或部分节点,第二节点的具体数量和位置取决于NoC的实际拓扑架构,本公开的实施例对此不作限制。
需要说明的是,第一节点可以指代NoC多个节点中的任意一个节点,目标运算模块指代与第一节点对应连接的运算模块;在一些示例中,目标运算模块也可能与第二节点连接,具体根据实际需要进行设置,本公开的实施例对此不作限制。在本公开至少一实施例中,多个节点可以实现为路由器,也可以根据实际需要实现为其他类型的具有数据转发功能的传输元件,本公开的实施例对此也不作限制。
例如,在步骤S110中,激励包括多个激励配置文件,通过激励配置文件可以选择用于输入第一节点的访存数据以及该访存数据的数量大小、所包含的访存请求数量、访问模式等信息。例如,不同的激励配置文件中包含的访存数据及其相关信息不同;通过单次输入并运行多个激励配置文件,可以对不同激励下的NoC拓扑性能进行全面地预测。
在一些示例中,多个激励配置文件包括第一激励配置文件至第N激励配置文件,第k激励配置文件包括第k访存数据和第k访存数据的访问模式信息,其中,N为大于1的整数,k= 1, 2, …, N。例如,第k访存数据用于实现对一个或多个运算模块中的操作单元的数据访问或数据存储。例如,第k访存数据的访问模式信息包括统一内存访问(uniform memoryaccess,UMA)模式和非一致性内存访问(non-uniform memory access,NUMA)模式等。例如,通过不同的访问模式可以得到不同的第k访存数据。
例如,在统一内存访问UMA模式中,芯片的每个操作单元(或计算核)可以访问其他操作单元的存储空间,所有操作单元对存储空间的访问具有相同的访存耗时,也即所有操作单元共享相同的内存地址空间。例如,在非一致性内存访问NUMA模式中,芯片的每个操作单元的都有自己的存储空间,每个操作单元仅对自己的存储空间进行唯一的访问。
例如,当芯片架构不同时,UMA模式和NUMA模式的具体实现方式也不同。例如,NUMA模式可以包括NUMA4、NUMA8、NUMA16等多种类型(数字表示操作单元或计算核的数量);UMA模式和NUMA模式也可以根据实际需要选取其他类型的实现方式,本公开的实施例对此不作限制。
需要说明的是,第k访存数据的访问模式信息除了包括UMA和NUMA这两种模式,还可以包括其他类型的访问模式,具体可以根据实际需要进行选择,本公开的实施例对此不作限制。
步骤S120:基于每个激励配置文件,执行第一节点与目标运算模块之间、第一节点与至少一个第二节点之间、第一节点与目标激励模块之间的数据传输。
例如,在步骤S120中,在第一节点输入当前激励之后,在每个激励配置文件下,对应的访存数据在第一节点与目标运算模块之间、第一节点与一个或多个第二节点之间、第一节点与目标激励模块之间进行传输。例如,当第一节点和第二节点为路由器等传输元件时,数据传输可以实现为第一节点与目标运算模块之间、第一节点与一个或多个第二节点之间、第一节点与目标激励模块之间的访存数据的转发。
步骤S130:记录每个激励配置文件下的第一节点与目标运算模块之间、第一节点与至少一个第二节点之间、第一节点与目标激励模块之间的数据传输的目标访存耗时。
例如,在步骤S130中,对于输入第一节点的每个激励配置文件,可以通过日志文件(log)来记录对应的访存数据在第一节点与目标运算模块之间、第一节点与每个第二节点之间、第一节点与目标激励模块之间进行传输的目标访存耗时。例如,该目标访存耗时即为对应激励配置文件中的访存数据在NoC拓扑中进行传输的总耗时。
例如,在步骤S130中,可以分别记录访存数据由目标激励模块传输至第一节点的耗时、由第一节点传输至目标运算模块的耗时、从目标运算模块返回至第一节点的耗时、由第一节点传输至每个第二节点的耗时、从每个第二节点返回至第一节点的耗时以及从第一节点返回至目标激励模块的耗时;此外,还可以记录从目标激励模块发送访存请求至访存结果返回目标激励模块的总的目标访存耗时。
在一些示例中,也可以通过图3的方式得到目标访存耗时。图3为图2的步骤S130的一个示例性流程图。
例如,如图3所示,图2的步骤S130可以进一步包括步骤S131~S132。
步骤S131:在每个激励配置文件下,记录第一节点与目标运算模块之间的第一访存耗时,记录第一节点与至少一个第二节点中每个第二节点之间的第二访存耗时,以及记录第一节点与目标激励模块之间的第三访存耗时;
步骤S132:记录目标访存耗时。
例如,在步骤S131中,为了得到目标访存耗时,可以分段记录第一节点与目标运算模块之间的第一访存耗时、第一节点与每个第二节点之间的第二访存耗时以及第一节点与目标激励模块之间的第三访存耗时。
需要说明的是,第一访存耗时包括第一节点与目标运算模块之间的数据双向传递的耗时,例如包括发出耗时和返回耗时;第二访存耗时包括第一节点与对应第二节点之间的数据双向传递的耗时,例如包括发出耗时和返回耗时;第三访存耗时包括第一节点与目标激励模块之间的数据双向传递的耗时,例如包括发出耗时和返回耗时。
例如,在步骤S132中,还可以记录从激励模块发送访存请求至访存结果返回激励模块的总的目标访存耗时。在一些示例中,目标访存耗时是第一访存耗时、第二访存耗时和第三访存耗时之和。
例如,多个激励配置文件中的第k激励配置文件包括第k访存数据,第k访存数据中包含第k标识信息(ID_k)。例如,图3的步骤S131可以进一步包括步骤S1311~S1313(图中未示出):
步骤S1311:在第k激励配置文件下,当第k访存数据由第一节点传输至目标运算模块时,以及当第k访存数据从目标运算模块返回至第一节点时,基于第k标识信息(ID_k)记录第一节点与目标运算模块之间的第一访存耗时;
步骤S1312:当第k访存数据由第一节点传输至每个第二节点时,以及当第k访存数据从每个第二节点返回至第一节点时,基于第k标识信息(ID_k)记录第一节点与每个第二节点之间的第二访存耗时;
步骤S1313:当第k访存数据由第一节点传输至目标激励模块时,以及当第k访存数据从目标激励模块返回至第一节点时,基于第k标识信息记录第一节点与目标激励模块之间的第三访存耗时。
例如,在步骤S1311、步骤S1312和步骤S1313中,当激励输入第一节点时,会启动一个计时器。例如,当第k访存数据在第一节点与目标运算模块之间、第一节点与第二节点之间或第一节点与目标激励模块之间进行交互时,第k标识信息(ID_k)被转发时的时间点都会被记录到日志文件(log)里,从而可以记录得到第一访存耗时、每个第二访存耗时和第三访存耗时;当整个访存过程结束时,计时器记录的最终值,即为目标访存耗时(total_time)。例如,通过在每笔访存数据中设置对应的标识信息,可以方便开发人员追踪第k访存数据在传输过程中的各个时间点,从而可以准确地记录第一访存耗时、每个第二访存耗时、第三访存耗时以及最终的目标访存耗时。
在本公开至少一实施例中,通过分段记录第一访存耗时、每个第二访存耗和第三访存耗时时,当记录的目标访存耗时大于或小于正常耗时区间时,可以根据记录的每一段的第一访存耗时、第二访存耗时或第三访存耗时去查找是否某一段存在异常,然后去排查对应节点的访存通路是否发生了拥堵,从而可以找到出现问题的具体位置,进而可以为NoC拓扑性能的改进提供合理化建议。
在一些示例中,多个激励配置文件中的第k激励配置文件还包括第k访存数据的尺寸信息。例如,如图2所示,本公开至少一实施例提供的芯片的片上网络拓扑性能的预测方法还可以包括步骤S140。
步骤S140:基于第k访存数据的尺寸信息和第k激励配置文件下的目标访存耗时,计算并输出第k激励配置文件下的目标流量信息。
例如,第k访存数据的尺寸信息包括第k访存数据的数据量大小(trans_size)和/或第k访存数据中包含的访存请求数量(request_count),在此基础上,目标流量信息可以用带宽(bandwidth)和/或执行每个访存请求的平均耗时(average)来表示。
可选地,步骤S140可以进一步包括:基于第k访存数据的数据量大小(trans_size)和第k激励配置文件下的目标访存耗时(total_time),计算并输出第k激励配置文件下的带宽(bandwidth),例如用公式(1)表示:
bandwidth= trans_size ÷ total_time 公式(1)
可选地,步骤S140可以进一步包括:基于第k访存数据中包含的访存请求数量(request_count)和第k激励配置文件下的目标访存耗时(total_time),计算并输出第k激励配置文件下执行每个访存请求的平均耗时(average),例如用公式(2)表示:
average = total_time ÷ request_count 公式(2)
例如,根据步骤S140得到的目标流量信息,可以预测第k激励配置文件下的NoC拓扑性能。例如,基于带宽(bandwidth)可以得到该NoC拓扑中的数据传输效率,基于平均耗时(average)可以得到该NoC拓扑中执行每个访存请求的平均耗时。
需要说明的是,除了带宽和平均耗时,目标流量信息也可以表示为用于评估NoC拓扑性能的其他参数,具体可以根据实际需要进行选择,本公开的实施例对此不作限制。
在一些示例中,图2的步骤S110可以包括步骤S111~S112(图中未示出)。
步骤S111:使用第一节点、至少一个第二节点、目标激励模块和目标运算模块的模型架构信息配置预配置文件;
步骤S112:基于配置后的预配置文件,将多个激励配置文件输入第一节点。
例如,在步骤S111中,可以基于NoC拓扑架构,将第一节点、第二节点、目标激励模块和目标运算模块的模型架构信息写入预配置文件;进一步地,在步骤S112中,通过修改预配置文件即可完成不同的激励配置文件的组合的设计,以根据配置后的预配置文件将选取的多个激励配置文件输入第一节点,从而可以根据不同的NoC拓扑架构选取对应的激励配置文件的组合。
图4为本公开至少一实施例提供的芯片的片上网络拓扑性能的预测方法的一个示例的示意图。例如,图4为图2所示的芯片的片上网络拓扑性能的预测方法的一个具体示例。
例如,如图4所示,示例的NoC包括节点1、节点2、节点3和节点4,每个节点与对应的运算模块(运算模块1、运算模块2、运算模块3和运算模块4)连接,每个节点与对应的激励模块(激励模块1、激励模块2、激励模块3和激励模块4)连接。例如,将节点1作为第一节点,则与节点1连接的节点2和节点4为第二节点,与节点1连接的运算模块1为目标运算模块。
例如,如图4所示,首先执行图2的步骤S110,通过激励模块1(即目标激励模块)将激励输入节点1(即第一节点),通过在节点1输入激励来对NoC拓扑性能进行预测。相应地,也可以选取节点2、节点3或节点4作为第一节点,通过激励模块2、激励模块3、激励模块4分别在节点2、节点3或节点4输入激励来对NoC拓扑性能进行预测,具体预测过程与将节点1作为第一节点时的预测过程基本类似,这里不再赘述。
例如,如图4所示,激励模块1输入的激励中包括第1激励配置文件、第2激励配置文件、……、第N激励配置文件,这里N为大于1的整数。例如,不同的激励配置文件中包含的访存数据及其相关信息不同;通过单次输入并运行多个激励配置文件,可以对不同激励下的NoC拓扑性能进行全面地、快速地预测。
例如,激励模块1输入的第k激励配置文件包括第k访存数据和第k访存数据的访问模式信息,这里k = 1, 2, …, N。例如,第k访存数据用于实现对一个或多个运算模块中的操作单元进行数据访问或数据存储。例如,第k访存数据的访问模式信息包括UMA模式和NUMA模式等。例如,通过不同的访问模式可以得到不同的第k访存数据。
例如,如图4所示,进一步地,执行图2的步骤S120,基于第1激励配置文件至第N激励配置文件中的每个激励配置文件,执行节点1与运算模块1之间、节点1与节点2以及节点1与节点4之间、节点1与激励模块1之间的数据传输。例如,当节点1~4为路由器等传输元件时,数据传输可以实现为节点1与运算模块1之间、节点1与节点2和节点4之间的访存数据的转发。
例如,如图4所示,进一步地,执行图2的步骤S130,对于输入节点1的每个激励配置文件,可以通过日志文件(log)来记录对应的访存数据在节点1与激励模块1之间、节点1与运算模块1之间、节点1与节点2以及节点1与节点4之间进行传输的目标访存耗时total_time。例如,该目标访存耗时total_time即为在对应激励配置文件下的访存数据在NoC拓扑中进行传输的总耗时。
例如,如图4所示,在执行图3的步骤S131时,在每个激励配置文件下,记录节点1与运算模块1之间的第一访存耗时t1,记录节点1与节点2之间的第二访存耗时t2-1,记录节点1与节点4之间的第二访存耗时t2-2,以及记录节点1与激励模块1之间的第三访存耗时t3;进一步地,在执行图3的步骤S132时,记录目标访存耗时total_time。例如,total_time =t1 + t2-1 + t2-2 + t3。
例如,激励模块1输入的第k激励配置文件中的第k访存数据中包含第k标识信息(ID_k)。例如,如图4所示,在执行步骤S1311时,在第k激励配置文件下,当第k访存数据由节点1传输至运算模块1时,以及当第k访存数据从运算模块1返回至节点1时,基于第k标识信息ID_k记录节点1与运算模块1之间的第一访存耗时t1。例如,如图4所示,在执行步骤S1312时,当第k访存数据由节点1传输至节点2时,以及当第k访存数据从节点2返回至节点1时,基于第k标识信息ID_k记录节点1与节点2之间的第二访存耗时t2-1;当第k访存数据由节点1传输至节点4时,以及当第k访存数据从节点4返回至节点1时,基于第k标识信息ID_k记录节点1与节点4之间的第二访存耗时t2-2。例如,如图4所示,在执行步骤S1313时,当第k访存数据由节点1传输至激励模块1时,以及当第k访存数据从激励模块1返回至节点1时,基于第k标识信息ID_k记录节点1与节点2之间的第三访存耗时t3。
例如,通过分段记录第一访存耗时t1、第二访存耗时t2-1、t2-2和第三访存耗时t3,当得到的目标访存耗时total_time大于或小于正常耗时区间时,可以根据记录的第一访存耗时t1、第二访存耗时t2-1、t2-2和第三访存耗时t3去查找是否某一段存在异常。例如,如果第一访存耗时t1明显存在异常,则可以去排查节点1和运算模块1之间的访存通路是否发生了拥堵;如果查找到该通路发生拥堵,则可以进一步分析找到出现问题的具体位置,进而可以为NoC拓扑性能的改进提供合理化建议。
例如,如图4所示,激励模块1输入的第k激励配置文件还包括第k访存数据的尺寸信息。进一步地,执行图2的步骤S140,基于第k访存数据的尺寸信息和第k激励配置文件下的目标访存耗时,计算并输出第k激励配置文件下的目标流量信息。例如,根据目标流量信息,可以预测第k激励配置文件下的NoC拓扑性能。
例如,第k访存数据的尺寸信息包括第k访存数据的数据量大小trans_size和/或第k访存数据中包含的访存请求数量request_count,在此基础上,目标流量信息可以用带宽bandwidth和/或执行每个访存请求的平均耗时average来表示。例如,带宽bandwidth和平均耗时average的计算方法可以参考如上描述的公式(1)和公式(2),在此不再赘述。
需要说明的是,图4所示的NoC拓扑结构和预测方法的实现方式仅为一个示例,NoC拓扑中的节点数量、所连接的运算模块、连接方式和具体实现方式等均可以根据实际需要进行选择,本公开的实施例对此不作限制。
本公开至少一实施例提供的预测方法,在单次输入并运行多个激励配置文件后,可以得到不同注入激励下的NoC拓扑中数据访存过程的目标访存耗时,从而可以快速验证NoC拓扑的预期性能,实现了NoC拓扑性能预测的快速迭代,有利于探索并指导新一代芯片的片上网络拓扑设计。
在一些示例中,芯片包括多个操作单元(PE),目标运算模块中包括前述多个操作单元中的至少一个操作单元,第一节点与目标运算模块中包含的一个或多个操作单元连接。在一些示例中,目标运算模块中包含的操作单元中的操作单元的数量大于1。例如,图2的步骤S120可以进一步包括步骤S121(图中未示出):基于每个激励配置文件,执行第一节点与至少一个操作单元中每个操作单元之间的数据传输。
例如,在步骤S121中,在第一节点输入当前激励之后,在每个激励配置文件下,对应的访存数据在第一节点与目标运算模块中的每个操作单元之间进行传输。例如,对于输入第一节点的第k激励配置文件中的第k访存数据,在步骤S121中,第k访存数据可以实现对目标运算模块中的每个操作单元的数据访问或数据存储。
在本公开至少一实施例中,操作单元可以为芯片内部的计算核,具体可以为IP核或其它类型的处理器内核,本公开的实施例对操作单元的种类、数量、连接方式和访问模式等均不作限制。
在一些示例中,目标运算模块中包含的多个操作单元,多个操作单元包括第一操作单元至第M操作单元,其中,M为大于1的整数。例如,本公开至少一实施例提供的芯片的片上网络拓扑性能的预测方法还可以包括步骤S150~S160(图中未示出)。
步骤S150:在第一节点上设置M个可配置接口;
步骤S160:将M个可配置接口中的第i个可配置接口配置为与M个操作单元中的第i个操作单元连接,这里i = 1, 2, …, M。
例如,为了实现第一节点与M个操作单元的连接,在步骤S150中,可以在第一节点上设置M个可配置接口;在步骤S160中,将第一节点上的第i个可配置接口配置为与第i个操作单元连接。例如,具体地,通过改变第一节点的接口框架为可配置,将第一节点上的接口数量扩展至M个,从而实现第一节点的每个接口与对应操作单元之间的连接。
例如,进一步地,本公开至少一实施例提供的预测方法还包括:在每个激励配置文件下,记录每个操作单元的访存子耗时。
例如,在每个激励配置文件下,每个操作单元的访存子耗时的值可以等于第一节点与每个操作单元之间双向传递的耗时、第二访存耗时和第三访存耗时之和,也可以根据实际NoC架构选取其他的传输路径的耗时作为每个操作单元的访存子耗时,本公开的实施例对此不作限制。
在一些示例中,执行图2的步骤S140得到的目标流量信息还可以包括对应每个访存子耗时的子流量信息。例如,第一节点与第i个操作单元之间的子流量信息可以用子带宽(sub_bandwidth)和/或执行每个访存请求的子平均耗时(sub_average)来表示。例如,根据子流量信息,可以预测第k激励配置文件下第一节点与第i个操作单元之间的传输性能。
可选地,步骤S140可以进一步包括:基于第k访存数据的数据量大小(trans_size)和第k激励配置文件下的第i个操作单元的访存子耗时(sub_time),计算并输出第k激励配置文件下的子带宽(sub_bandwidth),例如用公式(3)表示:
sub_bandwidth= trans_size ÷ sub_time 公式(3)
可选地,步骤S140可以进一步包括:基于第k访存数据中包含的访存请求数量(request_count)和第k激励配置文件下的第i个操作单元的访存子耗时(sub_time),计算并输出第k激励配置文件下执行每个访存请求的子平均耗时(sub_average),例如用公式(4)表示:
sub_average = sub_time ÷ request_count 公式(4)
本公开至少一实施例提供的预测方法,支持第一节点连接多操作单元的NoC拓扑预测结构,并且通过在第一节点上设置可配置接口,可以对第一节点上可连接操作单元的数量进行扩展,从而能够很好地支持GPU、GPGPU等复杂处理单元的性能预测需求。
图5为本公开至少一实施例提供的芯片的片上网络拓扑性能的预测方法的另一个示例的示意图。例如,图5为图2所示的芯片的片上网络拓扑性能的预测方法的另一个具体示例,在该示例中,第一节点与目标运算模块中的多个操作单元连接。
例如,如图5所示,包括节点1、节点2、节点3和节点4,每个节点与对应的运算模块(运算模块1、运算模块2、运算模块3和运算模块4)连接,每个节点与对应的激励模块(激励模块1、激励模块2、激励模块3和激励模块4)连接。例如,每个运算模块包括多个操作单元PE,每个节点与对应的运算模块中的多个操作单元PE(PE_1, …, PE_M、PE_2-1, …, PE_2-X、PE_3-1, …, PE_3-Y以及PE_4-1, …, PE_4-Z)连接。例如,图5中的M、X、Y和Z均为大于1的整数,M、X、Y和Z彼此之间可以相同也可以不同。例如,将节点1作为第一节点,则与节点1连接的节点2和节点4为第二节点,与节点1连接的运算模块1为目标运算模块。例如,节点1与运算模块1中的M个操作单元(PE_1, …, PE_M)连接。
需要说明的是,除了每个节点连接多个操作单元之外,图5中的NoC拓扑的其他结构和功能与图4中基本相同,这里不再赘述。相应地,对于本公开至少一实施例提供的预测方法的执行过程,以下仅就图5与图4中执行过程不同的部分进行描述。
例如,如图5所示,在执行图2的步骤S120的过程中,执行步骤S121,基于第1激励配置文件、第2激励配置文件、……、第N激励配置文件中的每个激励配置文件,分别执行节点1与操作单元PE_1之间、……、节点1与操作单元PE_M之间的数据传输。例如,对于输入节点1的第k激励配置文件中的第k访存数据,第k访存数据可以实现对每个操作单元PE(PE_1,…, PE_M)的数据访问或数据存储。
例如,如图5所示,在执行图2的步骤S130的过程中,在每个激励配置文件下,记录操作单元PE_1的访存子耗时t1-1,……,记录操作单元PE_M的访存子耗时t1-M。
例如,节点1与第i个操作单元之间的子流量信息可以用子带宽sub_bandwidth和/或执行每个访存请求的子平均耗时sub_average来表示。例如,子带宽sub_bandwidth和子平均耗时sub_average的计算方法可以参考如上描述的公式(3)和公式(4),在此不再赘述。
例如,以图5所示的NoC拓扑预测模型为例,其中,将多个激励配置文件(case1-1,case1-2,…, case1-N)输入节点1,节点1假设与4个操作单元(PE_1, PE_2, PE_3, PE_4)连接,即M=4;通过执行本公开至少一实施例提供的预测方法,日志文件(log)记录的NoC拓扑性能的部分预测数据的一个示例如表1所示。例如,在表1中,sub_time表示对应操作单元的访存子耗时,trans_size表示每笔访存数据中的数据量大小,request_count表示每笔访存数据中包含的访存请求数量。
表1—NoC拓扑性能的部分预测数据
由表1得到的性能数据可知,根据本公开至少一实施例提供的预测方法,在单次输入并运行多个激励配置文件后,可以得到不同注入激励下、第一节点连接不同操作单元时的NoC拓扑的各项性能数据,从而可以全面、快速验证NoC拓扑的预期性能,实现了NoC拓扑性能预测的全面、快速迭代,有利于探索并指导新一代芯片的片上网络拓扑设计。
需要说明的是,图5所示的NoC拓扑结构和预测方法的实现方式仅为一个示例,NoC拓扑中的节点数量、所连接的操作单元数量、连接方式和具体实现方式等均可以根据实际需要进行选择,本公开的实施例对此不作限制。
图6为本公开的至少一实施例提供的芯片的片上网络拓扑性能的预测装置的示意框图。
例如,如图6所示,本公开至少一实施例提供了一种芯片的片上网络拓扑性能的预测装置200,该片上网络包括多个节点,每个节点与对应的运算模块和激励模块连接,多个节点包括第一节点和与第一节点连接的至少一个第二节点,第一节点与对应的目标运算模块和目标激励模块连接。例如,该预测装置200包括输入模块210、执行模块220和记录模块230。
例如,输入模块210配置为,通过目标激励模块将激励输入第一节点,该激励包括多个激励配置文件。也即是,该输入模块210可以被配置为执行例如图2所示的步骤S110。
例如,执行模块220配置为,基于多个激励配置文件中的每个激励配置文件,执行第一节点与目标运算模块之间、第一节点与至少一个第二节点之间、第一节点与目标激励模块之间的数据传输。也即是,该执行模块220可以被配置为执行例如图2所示的步骤S120。
例如,记录模块230配置为,记录每个激励配置文件下的第一节点与目标运算模块之间、第一节点与至少一个第二节点之间、第一节点与目标激励模块之间的数据传输的目标访存耗时。也即是,该记录模块230可以被配置为执行例如图2所示的步骤S130。
在一些示例中,多个激励配置文件包括第一激励配置文件至第N激励配置文件,多个激励配置文件中的第k激励配置文件包括第k访存数据和第k访存数据的访问模式信息,其中,N为大于1的整数,k = 1, 2, …, N。例如,第k访存数据的访问模式信息包括统一内存访问模式和非一致性内存访问模式。
在一些示例中,预测装置200还包括计算/输出模块240(图中未示出)。例如,多个激励配置文件中的第k激励配置文件包括第k访存数据和第k访存数据的尺寸信息;计算/输出模块240配置为基于第k访存数据的尺寸信息和第k激励配置文件下的目标访存耗时,计算并输出第k激励配置文件下的目标流量信息。也即是,该计算/输出模块240可以被配置为执行例如图2所示的步骤S140。
例如,计算/输出模块240还配置为:基于第k访存数据的数据量大小和第k激励配置文件下的目标访存耗时,计算并输出第k激励配置文件下的带宽,和/或,基于第k访存数据中包含的访存请求数量和第k激励配置文件下的目标访存耗时,计算并输出第k激励配置文件下执行每个访存请求的平均耗时。
在一些示例中,输入模块210还配置为:使用第一节点、至少一个第二节点、目标激励模块和目标运算模块的模型架构信息配置预配置文件;基于配置后的预配置文件,将多个激励配置文件输入第一节点。
在一些示例中,芯片包括多个操作单元,目标运算模块包括多个操作单元中的至少一个操作单元,第一节点与至少一个操作单元连接。例如,执行模块220还配置为,基于每个激励配置文件,执行第一节点与至少一个操作单元中每个操作单元之间的数据传输。例如,目标运算模块中至少一个操作单元中的操作单元的数量大于1。
例如,目标运算模块中的至少一个操作单元包括第一操作单元至第M操作单元,其中,M为大于1的整数。例如,预测装置200还包括配置模块250(图中未示出),配置模块250配置为:在第一节点上设置M个可配置接口;将M个可配置接口中的第i个可配置接口配置为与至少一个操作单元中的第i个操作单元连接,其中,i = 1, 2, …, M。也即是,该配置模块250可以被配置为执行前述的步骤S150~S160。
在一些示例中,记录模块230还配置为:在每个激励配置文件下,记录第一节点与目标运算模块之间的第一访存耗时,记录第一节点与至少一个第二节点中每个第二节点之间的第二访存耗时,记录第一节点与目标激励模块之间的第三访存耗时,以及记录目标访存耗时。
例如,多个激励配置文件中的第k激励配置文件包括第k访存数据,第k访存数据中包含第k标识信息,记录模块230还配置为:在第k激励配置文件下,当第k访存数据由第一节点传输至目标运算模块时,以及当第k访存数据从目标运算模块返回至第一节点时,基于第k标识信息记录第一节点与目标运算模块之间的第一访存耗时;当第k访存数据由第一节点传输至每个第二节点时,以及当第k访存数据从每个第二节点返回至第一节点时,基于第k标识信息记录第一节点与每个第二节点之间的第二访存耗时;当第k访存数据由第一节点传输至目标激励模块时,以及当第k访存数据从目标激励模块返回至第一节点时,基于第k标识信息记录第一节点与目标激励模块之间的第三访存耗时。
例如,记录模块230还配置为:在每个激励配置文件下,记录至少一个操作单元中每个操作单元的访存子耗时。
由于在上述描述例如图2~图5所示的预测方法的过程中,已经对上述预测装置200的操作所涉及的内容的细节进行了介绍,因此这里为简洁起见不再赘述,相关细节可参照以上关于图2~图5的描述。
需要说明的是,图6所示的预测装置200中上述的各个模块可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些模块可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。作为示例,参照图6描述的装置可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其它能够执行程序指令的装置,但不限于此。
另外,尽管以上在描述预测装置200时将其划分为用于分别执行相应处理的模块,然而,本领域技术人员清楚的是,各模块执行的处理也可以在装置中不进行任何具体模块划分或者各模块之间并无明确划界的情况下执行。此外,以上参照图6描述的预测装置200并不限于包括以上描述的模块,而是还可以根据需要增加一些其它模块(例如,读取模块、控制模块等),或者以上模块也可被组合。
本公开的至少一实施例还提供一种电子设备,该电子设备包括处理器和存储器;该存储器包括一个或多个计算机程序模块;该一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上文描述的本公开的实施例提供的预测方法。
图7为本公开的至少一实施例提供的一种电子设备的示意框图。
例如,如图7所示,该电子设备300包括处理器310和存储器320。例如,存储器320用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器310用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器310运行时可以执行根据如上描述的预测方法的一个或多个步骤。存储器320和处理器310可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器310可以是中央处理单元(CPU)、图形处理器(GPU)、通用图形处理器(GPGPU)、数字信号处理器(DSP)或者具有性能预测能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86、RISC-V或ARM架构等。处理器310可以为通用处理器或专用处理器,可以控制电子设备300中的其它组件以执行期望的功能。
例如,存储器320可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式光盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器310可以运行一个或多个计算机程序模块,以实现电子设备300的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,电子设备300的具体功能和技术效果可以参考上文中关于本公开至少一实施例提供的芯片的片上网络拓扑性能的预测方法的描述,此处不再赘述。
图8为本公开的至少一实施例提供的另一种电子设备的示意框图。
例如,如图8所示,该电子设备400例如适于用来实施本公开实施例提供的预测方法。需要注意的是,图8示出的电子设备400仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
例如,如图8所示,电子设备400可以包括处理装置(例如中央处理器、图形处理器等)41,其可以根据存储在只读存储器(ROM)42中的程序或者从存储装置48加载到随机访问存储器(RAM)43中的程序而执行各种适当的动作和处理。在RAM 43中,还存储有电子设备400操作所需的各种程序和数据。处理装置41、ROM 42以及RAM 43通过总线44彼此相连。输入/输出(I/O)接口45也连接至总线44。通常,以下装置可以连接至I/O接口45:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置46;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置47;包括例如磁带、硬盘等的存储装置48;以及通信装置49。通信装置49可以允许电子设备400与其他电子设备进行无线或有线通信以交换数据。
虽然图8示出了具有各种装置的电子设备400,但应理解的是,并不要求实施或具备所有示出的装置,电子设备400可以替代地实施或具备更多或更少的装置。
关于电子设备400的详细说明和技术效果,可以参考上文关于芯片的片上网络拓扑性能的预测方法的相关描述,此处不再赘述。
图9为本公开的至少一实施例提供的一种存储介质的示意图。
例如,如图9所示,存储介质500存储有非暂时性计算机可读指令510。例如,当非暂时性计算机可读指令510由计算机执行时执行根据上文描述的预测方法中的一个或多个步骤。
例如,该存储介质500可以应用于图7所示的电子设备300中。例如,存储介质500可以为电子设备300中的存储器320。例如,关于存储介质500的相关说明可以参考图7所示的电子设备300中的存储器320的相应描述,此处不再赘述。
对于本公开,有以下几点需要说明:
(1)本公开实施例附图中,只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开同一实施例及不同实施例中的特征可以相互组合。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (17)
1.一种芯片的片上网络拓扑性能的预测方法,其中,所述片上网络包括多个节点,所述多个节点中的每个节点与对应的运算模块和激励模块连接,所述多个节点包括第一节点和与所述第一节点连接的至少一个第二节点,所述第一节点与对应的目标运算模块和目标激励模块连接,
多个激励配置文件包括第一激励配置文件至第N激励配置文件,所述多个激励配置文件中的第k激励配置文件包括第k访存数据和所述第k访存数据的尺寸信息,
所述预测方法包括:
通过所述目标激励模块将激励输入所述第一节点,其中,所述激励包括多个激励配置文件;
基于所述多个激励配置文件中的每个激励配置文件,执行所述第一节点与所述目标运算模块之间、所述第一节点与所述至少一个第二节点之间、所述第一节点与所述目标激励模块之间的数据传输;
记录所述每个激励配置文件下的所述第一节点与所述目标运算模块之间、所述第一节点与所述至少一个第二节点之间、所述第一节点与所述目标激励模块之间的数据传输的目标访存耗时;
基于所述第k访存数据的尺寸信息和所述第k激励配置文件下的目标访存耗时,计算并输出所述第k激励配置文件下的目标流量信息。
2.根据权利要求1所述的预测方法,其中,所述多个激励配置文件包括第一激励配置文件至第N激励配置文件,所述多个激励配置文件中的第k激励配置文件包括第k访存数据和所述第k访存数据的访问模式信息,其中,N为大于1的整数,k=1,2,…,N。
3.根据权利要求2所述的预测方法,其中,所述第k访存数据的访问模式信息包括统一内存访问模式和非一致性内存访问模式。
4.根据权利要求1所述的预测方法,其中,将所述激励输入所述第一节点,包括:
使用所述第一节点、所述至少一个第二节点、所述目标激励模块和所述目标运算模块的模型架构信息配置预配置文件;
基于配置后的所述预配置文件,将所述多个激励配置文件输入所述第一节点。
5.根据权利要求1所述的预测方法,其中,所述第k访存数据的尺寸信息包括所述第k访存数据的数据量大小和/或所述第k访存数据中包含的访存请求数量,
基于所述第k访存数据的尺寸信息和所述第k激励配置文件下的目标访存耗时,计算并输出所述第k激励配置文件下的目标流量信息,包括:
基于所述第k访存数据的数据量大小和所述第k激励配置文件下的目标访存耗时,计算并输出所述第k激励配置文件下的带宽,和/或
基于所述第k访存数据中包含的访存请求数量和所述第k激励配置文件下的目标访存耗时,计算并输出所述第k激励配置文件下执行每个访存请求的平均耗时。
6.根据权利要求1所述的预测方法,其中,所述芯片包括多个操作单元,所述目标运算模块包括所述多个操作单元中的至少一个操作单元,所述第一节点与所述至少一个操作单元连接,
基于所述多个激励配置文件中的每个激励配置文件,执行所述第一节点与所述目标运算模块之间的数据传输,包括:
基于所述每个激励配置文件,执行所述第一节点与所述至少一个操作单元中每个操作单元之间的数据传输。
7.根据权利要求6所述的预测方法,其中,所述至少一个操作单元中的操作单元的数量大于1。
8.根据权利要求6所述的预测方法,其中,所述至少一个操作单元包括第一操作单元至第M操作单元,其中,M为大于1的整数,
所述预测方法还包括:
在所述第一节点上设置M个可配置接口;
将所述M个可配置接口中的第i个可配置接口配置为与所述至少一个操作单元中的第i个操作单元连接,其中,i=1,2,…,M。
9.根据权利要求1所述的预测方法,其中,记录所述每个激励配置文件下的所述第一节点与所述目标运算模块之间、所述第一节点与所述至少一个第二节点之间、所述第一节点与所述目标激励模块之间的数据传输的目标访存耗时,包括:
在所述每个激励配置文件下,记录所述第一节点与所述目标运算模块之间的第一访存耗时,记录所述第一节点与所述至少一个第二节点中每个第二节点之间的第二访存耗时,以及记录所述第一节点与所述目标激励模块之间的第三访存耗时;
记录所述目标访存耗时。
10.根据权利要求9所述的预测方法,其中,所述多个激励配置文件包括第一激励配置文件至第N激励配置文件,所述多个激励配置文件中的第k激励配置文件包括第k访存数据,所述第k访存数据中包含第k标识信息,其中,N为大于1的整数,k=1,2,…,N,
在所述每个激励配置文件下,记录所述第一节点与所述目标运算模块之间的第一访存耗时,记录所述第一节点与所述至少一个第二节点中每个第二节点之间的第二访存耗时,以及记录所述第一节点与所述目标激励模块之间的第三访存耗时,包括:
在所述第k激励配置文件下,当所述第k访存数据由所述第一节点传输至所述目标运算模块时,以及当所述第k访存数据从所述目标运算模块返回至所述第一节点时,基于所述第k标识信息记录所述第一节点与所述目标运算模块之间的第一访存耗时;
当所述第k访存数据由所述第一节点传输至所述每个第二节点时,以及当所述第k访存数据从所述每个第二节点返回至所述第一节点时,基于所述第k标识信息记录所述第一节点与所述每个第二节点之间的第二访存耗时;以及
当所述第k访存数据由所述第一节点传输至所述目标激励模块时,以及当所述第k访存数据从所述目标激励模块返回至所述第一节点时,基于所述第k标识信息记录所述第一节点与所述目标激励模块之间的第三访存耗时。
11.根据权利要求9所述的预测方法,其中,所述芯片包括多个操作单元,所述目标运算模块包括所述多个操作单元中的至少一个操作单元,所述第一节点与所述至少一个操作单元连接,
所述预测方法还包括:
在所述每个激励配置文件下,记录所述至少一个操作单元中每个操作单元的访存子耗时。
12.一种芯片的片上网络拓扑性能的预测装置,其中,所述片上网络包括多个节点,所述多个节点中的每个节点与对应的运算模块和激励模块连接,所述多个节点包括第一节点和与所述第一节点连接的至少一个第二节点,所述第一节点与对应的目标运算模块和目标激励模块连接,
多个激励配置文件包括第一激励配置文件至第N激励配置文件,所述多个激励配置文件中的第k激励配置文件包括第k访存数据和所述第k访存数据的尺寸信息,
所述预测装置包括:
输入模块,配置为通过所述目标激励模块将激励输入所述第一节点,其中,所述激励包括多个激励配置文件;
执行模块,配置为基于所述多个激励配置文件中的每个激励配置文件,执行所述第一节点与所述目标运算模块之间、所述第一节点与所述至少一个第二节点之间、所述第一节点与所述目标激励模块之间的数据传输;
记录模块,配置为记录所述每个激励配置文件下的所述第一节点与所述目标运算模块之间、所述第一节点与所述至少一个第二节点之间的数据传输、所述第一节点与所述目标激励模块之间的目标访存耗时;
计算/输出模块,配置为基于所述第k访存数据的尺寸信息和所述第k激励配置文件下的目标访存耗时,计算并输出所述第k激励配置文件下的目标流量信息。
13.根据权利要求12所述的预测装置,其中,所述芯片包括多个操作单元,所述目标运算模块包括所述多个操作单元中的至少一个操作单元,所述第一节点与所述至少一个操作单元连接,
所述执行模块还配置为,基于所述每个激励配置文件,执行所述第一节点与所述至少一个操作单元中每个操作单元之间的数据传输。
14.根据权利要求12所述的预测装置,其中,所述至少一个操作单元中的操作单元的数量大于1。
15.根据权利要求12所述的预测装置,其中,所述记录模块还配置为:
在所述每个激励配置文件下,记录所述第一节点与所述目标运算模块之间的第一访存耗时,记录所述第一节点与所述至少一个第二节点中每个第二节点之间的第二访存耗时,记录所述第一节点与所述目标激励模块之间的第三访存耗时,以及记录所述目标访存耗时。
16.一种电子设备,包括:
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块用于实现权利要求1-11任一项所述的预测方法。
17.一种存储介质,存储有非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时实现权利要求1-11任一项所述的预测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410190259.0A CN117768356B (zh) | 2024-02-21 | 2024-02-21 | 预测方法及装置、电子设备与存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410190259.0A CN117768356B (zh) | 2024-02-21 | 2024-02-21 | 预测方法及装置、电子设备与存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117768356A CN117768356A (zh) | 2024-03-26 |
CN117768356B true CN117768356B (zh) | 2024-04-19 |
Family
ID=90320406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410190259.0A Active CN117768356B (zh) | 2024-02-21 | 2024-02-21 | 预测方法及装置、电子设备与存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117768356B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433900A (zh) * | 2020-12-03 | 2021-03-02 | 海光信息技术股份有限公司 | 用于芯片验证的方法、系统、设备以及存储介质 |
CN113468000A (zh) * | 2020-03-30 | 2021-10-01 | 上海商汤智能科技有限公司 | 芯片验证方法及装置、存储介质 |
CN113807046A (zh) * | 2021-10-09 | 2021-12-17 | 中国人民解放军国防科技大学 | 一种测试激励优化回归验证方法、系统及介质 |
CN115643167A (zh) * | 2022-12-14 | 2023-01-24 | 摩尔线程智能科技(北京)有限责任公司 | 片上网络配置方法和装置、以及存储介质 |
CN115713103A (zh) * | 2022-11-24 | 2023-02-24 | 辉羲智能科技(上海)有限公司 | 片上-片间互连的神经网络芯片联合性能预测方法及系统 |
CN116303034A (zh) * | 2023-03-17 | 2023-06-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种片上网络的自动测试系统、方法、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10547514B2 (en) * | 2018-02-22 | 2020-01-28 | Netspeed Systems, Inc. | Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation |
-
2024
- 2024-02-21 CN CN202410190259.0A patent/CN117768356B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468000A (zh) * | 2020-03-30 | 2021-10-01 | 上海商汤智能科技有限公司 | 芯片验证方法及装置、存储介质 |
CN112433900A (zh) * | 2020-12-03 | 2021-03-02 | 海光信息技术股份有限公司 | 用于芯片验证的方法、系统、设备以及存储介质 |
CN113807046A (zh) * | 2021-10-09 | 2021-12-17 | 中国人民解放军国防科技大学 | 一种测试激励优化回归验证方法、系统及介质 |
CN115713103A (zh) * | 2022-11-24 | 2023-02-24 | 辉羲智能科技(上海)有限公司 | 片上-片间互连的神经网络芯片联合性能预测方法及系统 |
CN115643167A (zh) * | 2022-12-14 | 2023-01-24 | 摩尔线程智能科技(北京)有限责任公司 | 片上网络配置方法和装置、以及存储介质 |
CN116303034A (zh) * | 2023-03-17 | 2023-06-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种片上网络的自动测试系统、方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117768356A (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10467059B2 (en) | Determination of timing configurations for program dataflow models | |
Zhuang et al. | CHARM: C omposing H eterogeneous A ccele R ators for M atrix Multiply on Versal ACAP Architecture | |
US20040210685A1 (en) | Block modeling input/output buffer | |
CN116384312B (zh) | 一种基于并行异构计算的电路良率分析方法 | |
Koehler et al. | Performance analysis challenges and framework for high-performance reconfigurable computing | |
CN114268574B (zh) | 使用基于q学习的增强学习的扫描链线长度优化 | |
Calotoiu et al. | Lightweight requirements engineering for exascale co-design | |
CN117768356B (zh) | 预测方法及装置、电子设备与存储介质 | |
Kauth et al. | neuroAIx-Framework: design of future neuroscience simulation systems exhibiting execution of the cortical microcircuit model 20× faster than biological real-time | |
CN116795508A (zh) | 一种平铺加速器资源调度方法及系统 | |
Bytyn et al. | Dataflow aware mapping of convolutional neural networks onto many-core platforms with network-on-chip interconnect | |
US11593547B1 (en) | Prediction and optimization of multi-kernel circuit design performance using a programmable overlay | |
US20230056423A1 (en) | Processor core simulator including trace-based coherent cache driven memory traffic generator | |
US20220147810A1 (en) | Discovery of hardware characteristics of deep learning accelerators for optimization via compiler | |
Arasteh | Transaction-level modeling of deep neural networks for efficient parallelism and memory accuracy | |
Qureshi et al. | Genome sequence alignment-design space exploration for optimal performance and energy architectures | |
JP2021022370A (ja) | コンピューティングデバイスによって実行される方法、装置、機器及びコンピュータ読み取り可能な記憶媒体 | |
Dariol et al. | A Hybrid Performance Prediction Approach for Fully-Connected Artificial Neural Networks on Multi-core Platforms | |
EP3734491A1 (en) | Method, apparatus, device, and medium for implementing simulator | |
Bogdan et al. | Taming extreme heterogeneity via machine learning based design of autonomous manycore systems | |
Zhuang et al. | SSR: Spatial Sequential Hybrid Architecture for Latency Throughput Tradeoff in Transformer Acceleration | |
Núñez et al. | Optimizing the trade-offs between cost and performance in scientific computing | |
CN111506384B (zh) | 模拟运算方法和模拟器 | |
US20230306272A1 (en) | Mapping Workloads to Circuit Units in a Computing Device via Reinforcement Learning | |
US20230367640A1 (en) | Program execution strategies for heterogeneous computing systems |
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 |