CN117236263B - 一种多芯粒互联仿真方法、装置、存储介质及电子设备 - Google Patents
一种多芯粒互联仿真方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117236263B CN117236263B CN202311522636.8A CN202311522636A CN117236263B CN 117236263 B CN117236263 B CN 117236263B CN 202311522636 A CN202311522636 A CN 202311522636A CN 117236263 B CN117236263 B CN 117236263B
- Authority
- CN
- China
- Prior art keywords
- core
- core particle
- data packet
- processing result
- task
- 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
- 238000004088 simulation Methods 0.000 title claims abstract description 121
- 238000000034 method Methods 0.000 title claims abstract description 78
- 239000007771 core particle Substances 0.000 claims abstract description 168
- 238000012545 processing Methods 0.000 claims abstract description 135
- 230000008569 process Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 17
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 12
- 239000011159 matrix material Substances 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 15
- 230000006872 improvement Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书公开了一种多芯粒互联仿真方法、装置、存储介质及电子设备,通过结构模拟工具包给若干个第二芯粒配置地址,再利用结构模拟工具包将第一芯粒与若干个第二芯粒进行连接,根据第二芯粒的目标地址,将数据包发送至对应的第二芯粒,再通过结构模拟工具包,接收第二芯粒的处理结果。实现一个第一芯粒与若干个第二芯粒的仿真互联,并进行数据传输。
Description
技术领域
本说明书涉及计算机领域,尤其涉及一种多芯粒互联仿真方法、装置、存储介质及电子设备。
背景技术
随着计算机技术的发展,计算机等电子设备中设计了许多集成电路,减小了电子设备的体积。集成电路中通常包括多种用于处理不同数据的芯粒,即小型模块化芯片,每个芯粒中可包括中央处理器(Central Processing Unit,第一芯粒)、图形处理器(GraphicProcessing Unit,GPU)等。芯粒之间需要建立关联,以便传输数据,完成任务。在设计利用多芯粒系统执行的任务时,为了减少成本,可先在仿真器中仿真多芯粒之间传输数据、执行任务的过程。但是现存的仿真器存在一些问题,包括同类型的仿真器不支持多个芯粒同时进行仿真,例如,现有三个仿真器,分别为A1、A2、A3,在进行仿真时,A1仅可与A2、A3其中一个进行互联,并执行仿真任务。不同类型的仿真器之间不支持数据传输,例如现有两个仿真器,A1与B1,由于这两种仿真器的类型不同,则不支持A1与B1互联,并执行仿真任务。
基于此,本说明书提供一种多芯粒互联仿真方法。
发明内容
本说明书提供一种多芯粒互联仿真方法、装置、存储介质及电子设备,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种多芯粒互联仿真方法,芯粒包括第一芯粒及若干个第二芯粒,所述第一芯粒包括中央处理器,每个所述第二芯粒均包括图形处理器,预先通过结构模拟工具包,配置所述第一芯粒的地址及每个所述第二芯粒的地址,并存储于所述结构模拟工具包中,所述方法应用于所述第一芯粒,所述方法包括:
针对每个第二芯粒,通过所述结构模拟工具包,获取预设的该第二芯粒的目标地址;
根据当前程序,确定待发送至所述第二芯粒的数据包;
当预设时刻到来时,通过所述结构模拟工具包,根据所述目标地址,将所述数据包发送至所述第二芯粒,以使所述第二芯粒对所述数据包中的数据进行处理,获得处理结果;
通过所述结构模拟工具包,接收所述第二芯粒返回的处理结果;
根据所述处理结果,执行所述当前程序。
可选地,所述结构模拟工具包包括结构仿真工具包。
可选地,获取预设的该第二芯粒的目标地址,具体包括:
获取预设的该第二芯粒的编号及基地址;
根据所述编号及所述基地址,确定该第二芯粒的目标地址。
可选地,根据所述目标地址,将所述数据包发送至所述第二芯粒之前,所述方法还包括:
生成任务编号;
将所述任务编号、任务类型、任务参数进行编码,得到编码后的数据;
对所述编码后的数据进行封装,得到所述封装后的数据包。
可选地,通过所述结构模拟工具包,接收所述第二芯粒返回的处理结果之前,所述方法还包括:
判断处理结果是否存在;
若否,中断当前程序,并缓存待处理数据包;
若是,则根据所述处理结果,执行所述当前程序。
本说明书提供了一种多芯粒互联仿真方法,芯粒包括第一芯粒及若干个第二芯粒,所述第一芯粒包括中央处理器,每个所述第二芯粒均包括第二芯粒,预先通过结构模拟工具包,配置所述第一芯粒的地址及每个所述第二芯粒的地址,并存储于所述结构模拟工具包中,所述方法应用于所述第二芯粒,所述方法包括:
通过结构模拟工具包,接收所述第一芯粒发送的数据包;
对所述数据包中的数据进行处理,获得处理结果,所述处理结果包括任务编号;
通过所述结构模拟工具包,将所述处理结果返回至所述第一芯粒。
可选地,对所述数据包中的数据进行处理,获得处理结果,具体包括:
对所述数据包进行解码,确定所述数据包中的任务类型;
根据所述任务类型,对所述数据包中的数据进行处理。
本说明书提供了一种多芯粒互联仿真装置,芯粒包括第一芯粒及若干个第二芯粒,所述第一芯粒包括中央处理器,每个所述第二芯粒均包括第二芯粒,预先通过结构模拟工具包,配置所述第一芯粒的地址及每个所述第二芯粒的地址,并存储于所述结构模拟工具包中,所述装置应用于所述第一芯粒,所述装置包括:
地址确定模块,用于针对每个第二芯粒,通过所述结构模拟工具包,获取预设的该第二芯粒的目标地址;
数据包确定模块,用于根据当前程序,确定待发送至所述第二芯粒的数据包;
数据包发送模块,用于当预设时刻到来时,通过所述结构模拟工具包,根据所述目标地址,将所述数据包发送至所述第二芯粒,以使所述第二芯粒对所述数据包中的数据进行处理,获得处理结果;
处理结果接收模块,用于通过所述结构模拟工具包,接收所述第二芯粒返回的处理结果;
执行模块,根据所述处理结果,执行所述当前程序。
可选地,所述结构模拟工具包包括结构仿真工具包。
可选地,所述地址确定模块具体用于,获取预设的该第二芯粒的编号及基地址;根据所述编号及所述基地址,确定该第二芯粒的目标地址。
可选地,数据包确定模块具体用于,根据当前程序,生成任务编号;将所述任务编号、任务类型、任务参数进行编码,得到编码后的数据;对所述编码后的数据进行封装,得到待发送至所述第二芯粒的数据包。
可选地,所述装置还包括:
结果判断模块,用于通过所述结构模拟工具包,接收所述第二芯粒返回的处理结果之前判断处理结果是否存在;若否,中断当前程序,并缓存待处理数据包;若是,则根据所述处理结果,执行所述当前程序。
本说明书提供了一种多芯粒互联仿真装置,芯粒包括第一芯粒及若干个第二芯粒,所述第一芯粒包括中央处理器,每个所述第二芯粒均包括第二芯粒,预先通过结构模拟工具包,配置所述第一芯粒的地址及每个所述第二芯粒的地址,并存储于所述结构模拟工具包中,所述装置应用于所述第二芯粒,所述装置包括:
数据包接收模块,用于通过结构模拟工具包,接收所述第一芯粒发送的数据包;
数据包处理模块,用于对所述数据包中的数据进行处理,获得处理结果,所述处理结果包括任务编号;
处理结果返回模块,用于通过所述结构模拟工具包,将所述处理结果返回至所述第一芯粒。
可选地,所述数据包处理模块具体用于,对所述数据包进行解码,确定所述数据包中的任务类型;根据所述任务类型,对所述数据包中的数据进行处理。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述多芯粒互联仿真方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述多芯粒互联仿真方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
从本说明书提供的多芯粒互联仿真方法可以看出,通过结构模拟工具包给若干个第二芯粒配置地址,再利用结构模拟工具包将第一芯粒与若干个第二芯粒进行连接,根据第二芯粒的目标地址,将数据包发送至对应的第二芯粒,再通过结构模拟工具包,接收第二芯粒的处理结果,实现一个第一芯粒与若干个第二芯粒的仿真互联,并进行数据传输。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种多芯粒互联仿真方法的流程示意图;
图2为本说明书中提供的一种多芯粒数据传输的示意图;
图3为本说明书提供的一种多第二芯粒处理任务的流程示意图;
图4为本说明书提供的一种多芯粒互联仿真装置的示意图;
图5为本说明书提供的另一种多芯粒互联仿真装置的示意图;
图6为本说明书提供的一种对应于图1的电子设备的结构示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的一种多芯粒互联仿真方法的流程示意图,包括以下步骤:
S100:针对每个第二芯粒,通过所述结构模拟工具包,获取预设的该第二芯粒的目标地址。
随着任务量的增多,中央处理器(Central Processing Unit,CPU)难以同时完成多个任务,因此,可将与图形相关的任务交予图形处理器(Graphic Processing Unit,GPU)进行处理,以减轻CPU的任务负担。现存有许多将一个CPU与多个GPU封装在一起的电子设备,使得计算机等电子设备的功能更加强大。即将SOC系统(System-on-a-Chip)按照不同功能模块分解成可重复运用的芯粒,可大幅度降低设计复杂度和成本。芯粒包括第一芯粒及若干个第二芯粒,第一芯粒包括中央处理器,每个第二芯粒均包括图形处理器。芯粒之间可进行数据传输,以完成各类任务。其中,SOC系统是一种集成了多种硬件功能和组件的计算系统,将多种硬件功能和组件封装在单一的芯片上。这种芯片通常包括CPU、GPU、内存控制器、输入/输出接口、各种外围设备控制器等。
在设计利用该SOC系统可执行的任务方案时,通常可通过仿真器预先进行测试,以检测该任务方案是否可行,还可减少开发成本。但现有的仿真器并不支持多芯粒互联仿真,因此,本说明书提供一种多芯粒互联仿真方法。
图2为本说明书中提供的一种多芯粒数据传输的示意图,如图2所示。
为了使得一个第一芯粒能与多个第二芯粒连接,并传输数据,第一芯粒需要预先通过结构模拟工具包,配置该第一芯粒的地址及每个第二芯粒的地址,并存储于结构模拟工具包中,结构模拟工具包包括结构仿真工具包(Structural Simulation Toolkit,SST)。需要说明的是,在使用结构模拟工具包配置第二芯粒的地址时,第一芯粒会每个第二芯粒进行编号,并设置第二芯粒的基地址,以便后续根据编号及基地址与第二芯粒进行数据传输。第一芯粒的地址是固定地址,可根据需要配置,本说明书对此不做限制。其中,SST是一个开源的跨平台仿真平台,它提供了一个框架来连接多个模拟硬件对象,包括CPU、网络、内存等。使用该SST后系统可以单节点运行,也可以通过MPI(Message Passing Interface,MPI)在多个节点上运行。该SST提供了一个并行的离散事件内核以及多个编程接口,包括用于管理随机数生成、统计信息处理、仿真输出和仿真事件的高效内存池的类。
那么,配置完成后,在第一芯粒与若干第二芯粒进行互联,并进行数据传输时,第一芯粒需要针对每个第二芯粒,通过所述结构模拟工具包,获取预设的该第二芯粒的目标地址。
具体的,针对每个第二芯粒,第一芯粒获取预设的该第二芯粒的编号及基地址,根据该编号及该基地址,确定该第二芯粒的目标地址。例如,第二芯粒的编号为1,基地址为1000,那么,该第二芯粒的目标地址为1001。
S102:根据当前程序,确定待发送至所述第二芯粒的数据包。
在本说明书一个或多个实施例中,第一芯粒可通过预先设置的编号和基地址,将数据传输至对应的第二芯粒,获得该第二芯粒的处理结果。该数据是该第一芯粒根据当前程序,确定待发送至该第二芯粒的数据包。
具体的,在确定数据包时,第一芯粒还需要生成任务编号。这是由于,当第一芯粒将数据包发送至第二芯粒之后,需要等待第二芯粒返回的处理结果,在等待的过程中,第一芯粒会中断当前程序。在接收到处理结果后,第一芯粒会获取处理结果中的任务编号,以确定当前处理结果是否为第一芯粒需要的,若是,则可根据该处理结果,继续执行当前程序。该任务编号可通过控制第二芯粒的控制函数获得,即第一芯粒可利用CUDA(ComputeUnified Device Architecture)通用并行计算架构中实现GPU功能的控制函数对每个发往GPU组件的CUDA消息进行编号,该CUDA消息即为任务。
第一芯粒可根据当前程序,生成任务编号,将所述任务编号、任务类型、任务参数进行编码,得到编码后的数据,对所述编码后的数据进行封装,得到待发送至所述第二芯粒的数据包。
S104:当预设时刻到来时,通过所述结构模拟工具包,根据所述目标地址,将所述数据包发送至所述第二芯粒,以使所述第二芯粒对所述数据包中的数据进行处理,获得处理结果。
获取数据包之后,该第一芯粒可当预设时刻到来时,通过该结构模拟工具包,根据该目标地址,将该数据包发送至该第二芯粒,以使该第二芯粒对该数据包中的数据进行处理,获得处理结果。即第一芯粒调用SST中的对应的函数,将数据包发送至目标地址,以完成数据传输。
在发送数据包时,该第一芯粒可与多个第二芯粒互联,那么,该第一芯粒可同时将多个数据包发送给多个第二芯粒,以获取多个处理结果。预设时刻可根据需要设置,例如,每十秒发送一次数据包等,本说明书对此不做限制。
第二芯粒接收数据包之前,会先进行初始化,其中会专门分配出用于处理数据包中的数据的子线程。之后,第二芯粒通过结构模拟工具包,接收第一芯粒发送的数据包,对该数据包中的数据进行处理,获得处理结果,该处理结果包括任务编号。
具体的,第二芯粒的子线程对该数据包进行解码,确定该数据包中的任务类型,根据该任务类型,对该数据包中的数据进行处理。在处理时,可利用GPGPU-Sim执行具体第二芯粒运算逻辑。之后,通过该结构模拟工具包,将该处理结果返回至中央处理器。
S106:通过所述结构模拟工具包,接收所述第二芯粒返回的处理结果。
S108:根据所述处理结果,执行所述当前程序。
在本说明书一个或多个实施例中,第一芯粒先确定处理结果中任务的任务编号,以判断该处理结果是否为执行当前任务所需的处理结果,若该任务编号与发送至第二芯粒的任务编号一致,则该处理结果为执行当前任务所需的处理结果。那么,则根据该处理结果,执行当前程序,否则继续中断当前程序,并缓存待处理数据包。
基于图1所示的多芯粒互联仿真方法,通过结构模拟工具包给若干个第二芯粒配置地址,再利用结构模拟工具包将第一芯粒与若干个第二芯粒进行连接,根据第二芯粒的目标地址,将数据包发送至对应的第二芯粒,再通过结构模拟工具包,接收第二芯粒的处理结果,实现一个第一芯粒与若干个第二芯粒的仿真互联,并进行数据传输。
针对步骤S106,第一芯粒将数据包发送至第二芯粒需要一定时间,若该执行结果已经存在,或该第一芯粒自身能够处理获得,那么,在第一芯粒将数据包发送至第二芯粒,等待来自第二芯粒发送的处理结果之前,会存在其他待处理的数据。因此,需要第一芯粒缓存待处理数据包,缓存的待处理数据包会在下一次预设时刻到来时,发送给第二芯粒。
那么,若该处理结果已经存在,则可执行利用该处理结果,执行当前程序。若不存在,则需要中断当前程序,并缓存待处理数据包。即通过该结构模拟工具包,接收该图形处理器返回的处理结果之前,判断处理结果是否存在,若否,中断当前程序,并缓存待处理数据包,若是,则根据该处理结果,执行当前程序。
需要说明的是,对于第二芯粒的子线程来说,在初始化之后,该子线程若未接收到数据包处理的任务,该子线程会中断,当接收到数据包处理任务时,恢复执行,并将处理结果发送至第一芯粒后,继续中断。当该子线程的当前任务未完成,且还存在其他待处理的数据包时,第二芯粒会将其他待处理数据包缓存起来,并在该子线程执行完当前任务后,将该待处理数据包发送至该子线程。
等待处理结果并中断程序运行的原理如下,开始处理结果发生时传入的任务类型eventType,任务的参数args,和接收通知数据dataBuffer,如果dict中eventType和args对已经存在,意味着开始等待处理结果前,该处理结果已经存在,直接获取该处理结果,程序不用中断,继续运行。如果eventType和args对不存在,在dict中注册该eventType和args对,并等待处理结果,此时程序中断运行,等处理结果获取后,获取通知数据,程序恢复运行。
其中,eventType表示某种任务类型,例如,第二芯粒控制命令结果返回处理结果,第二芯粒控制命令到达任务等。args是对任务的再次细分,例如,第二芯粒控制命令中包括内存分配命令,第一芯粒向GPU传数据命令,第二芯粒启动运行命令等,这些不同的命令通过args区分,因此,用eventType和args索引对应的条件变量。该dict表示缓存的eventType和args对,条件变量和dataBuffer,通过eventType和args对可以索引到对应的条件变量和需要传送的dataBuffer。
该dataBuffer表示某种数据块,这个数据块由任务到达时传入,并在等待任务满足时传给等待处理结果的程序,由对应的程序解码并使用。
通知任务发生并恢复程序运行的原理示意图。任务发生时传入发生任务的类型eventType,任务的参数args,和通知数据dataBuffer,如果dict中eventType和args对不存在,意味该eventType和args对还没被等待,在dict中注册该eventType和args对,并缓存dataBuffer。如果dict中eventType和args对存在,意味着该eventType和args对正在被等待,因此缓存dataBuffer并通知该任务发生。
图3为本说明书提供的一种多第二芯粒处理任务的流程示意图,如图3所示。
矩阵a和矩阵b相乘,采用两个第二芯粒来计算结果,第一芯粒把矩阵a分为上下两部分分别为a1和a2,矩阵a的边长为wa及m,矩阵b的边长为m及hb a1的边长为wa/2及m,a2的边长为wa/2及m。使用第二芯粒控制命令把矩阵a1和矩阵b发往第二芯粒1,把矩阵a2和矩阵b发往第二芯粒2,然后用第二芯粒控制命令让第二芯粒1计算a1和b的矩阵乘,第二芯粒2计算a2和b的矩阵乘。第二芯粒1计算完后得到矩阵c1,c1的边长为wa/2及hb,第二芯粒2计算完后得到矩阵c2,c2的边长为wa/2及hb。第一芯粒用第二芯粒控制命令从第二芯粒1取回矩阵c1,第一芯粒用第二芯粒控制命令从第二芯粒2取回矩阵c1,最后第一芯粒把c1和c2组合成最终的a矩阵和b矩阵相乘的结果c,c的边长为wa及hb。
需要说明的是,第二芯粒依次执行来自第一芯粒的命令,第二芯粒如果前一条指令还在执行,后面的指令需要等待前面的指令完成后才能执行。
第二芯粒有些指令不需要等前面的指令完成即可向第一芯粒端返回执行结果,例如,从第一芯粒向第二芯粒复制数据的指令,命令第二芯粒开始运算的指令等。第二芯粒端有的指令需要等待前面的指令执行完毕后才能向第一芯粒端返回执行结果,例如,从第二芯粒向第一芯粒复制数据的指令。这样的设计是显而易见的,需要等待计算结束才应该从第二芯粒向第一芯粒复制数据。
如图3所示,流程为第一芯粒先把拆分好的数据发往每个第二芯粒,这样数据的发送是并行进行的。数据依次发送完毕后,第一芯粒依次命令每个第二芯粒开启运算,这样数据在第二芯粒上的计算也是并行的。在第二芯粒的计算过程中,第一芯粒依次向各个第二芯粒发送取回数据的命令,由于从第二芯粒向第一芯粒复制数据的指令需要等待前面的计算指令执行完毕,因此执行取回数据的命令会让第一芯粒阻塞较长时间,等到每个第二芯粒都向第一芯粒传送了计算结果,第一芯粒将这些计算结果组合成最终的计算结果。
以上为本说明书的一个或多个实施的方法,基于图1所示的多芯粒互联仿真方法的流程示意图,本说明书还提供了相应的多芯粒互联仿真装置,如图4所示。
图4为本说明书提供的一种多芯粒互联仿真装置的示意图,芯粒包括第一芯粒及若干个第二芯粒,所述第一芯粒包括中央处理器,每个所述第二芯粒均包括第二芯粒,预先通过结构模拟工具包,配置所述第一芯粒的地址及每个所述第二芯粒的地址,并存储于所述结构模拟工具包中,所述装置应用于所述第一芯粒,包括:
地址确定模块400,用于针对每个第二芯粒,通过所述结构模拟工具包,获取预设的该第二芯粒的目标地址;
数据包确定模块402,用于根据当前程序,确定待发送至所述第二芯粒的数据包;
数据包发送模块404,用于当预设时刻到来时,通过所述结构模拟工具包,根据所述目标地址,将所述数据包发送至所述第二芯粒,以使所述第二芯粒对所述数据包中的数据进行处理,获得处理结果;
处理结果接收模块406,用于通过所述结构模拟工具包,接收所述第二芯粒返回的处理结果;
执行模块408,根据所述处理结果,执行所述当前程序。
可选地,所述结构模拟工具包包括结构仿真工具包。
可选地,所述地址确定模块400具体用于,获取预设的该第二芯粒的编号及基地址;根据所述编号及所述基地址,确定该第二芯粒的目标地址。
可选地,数据包确定模块402具体用于,根据当前程序,生成任务编号;将所述任务编号、任务类型、任务参数进行编码,得到编码后的数据;对所述编码后的数据进行封装,得到待发送至所述第二芯粒的数据包。
可选地,所述装置还包括:
结果判断模块410,用于通过所述结构模拟工具包,接收所述第二芯粒返回的处理结果之前判断处理结果是否存在;若否,中断当前程序,并缓存待处理数据包;若是,则根据所述处理结果,执行所述当前程序。
图5为本说明书提供的另一种多芯粒互联仿真装置的示意图,芯粒包括第一芯粒及若干个第二芯粒,所述第一芯粒包括中央处理器,每个所述第二芯粒均包括第二芯粒,预先通过结构模拟工具包,配置所述第一芯粒的地址及每个所述第二芯粒的地址,并存储于所述结构模拟工具包中,所述装置应用于所述第二芯粒,包括:
数据包接收模块500,用于通过结构模拟工具包,接收所述第一芯粒发送的数据包;
数据包处理模块502,用于对所述数据包中的数据进行处理,获得处理结果,所述处理结果包括任务编号;
处理结果返回模块504,用于通过所述结构模拟工具包,将所述处理结果返回至所述第一芯粒。
可选地,所述数据包处理模块502具体用于,对所述数据包进行解码,确定所述数据包中的任务类型;根据所述任务类型,对所述数据包中的数据进行处理。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述多芯粒互联仿真方法。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种多芯粒互联仿真方法。
本说明书还提供了图6所示的一种对应于图1的电子设备的结构示意图。如图6所示,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的多芯粒互联仿真方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(第一芯粒)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (9)
1.一种多芯粒互联仿真方法,其特征在于,所述方法用于通过仿真器测试当前程序,芯粒包括第一芯粒及若干个第二芯粒,所述第一芯粒包括中央处理器,每个所述第二芯粒均包括图形处理器,预先通过结构模拟工具包,配置所述第一芯粒的地址及每个所述第二芯粒的地址,并存储于所述结构模拟工具包中,其中,所述结构模拟工具包用于连接若干个模拟硬件对象,所述方法应用于所述第一芯粒,所述方法包括:
针对每个第二芯粒,通过所述结构模拟工具包,获取预设的该第二芯粒的目标地址;
根据所述当前程序,确定待发送至所述第二芯粒的数据包;
当预设时刻到来时,通过所述结构模拟工具包,根据所述目标地址,将所述数据包发送至所述第二芯粒,以使所述第二芯粒对所述数据包中的数据进行处理,获得处理结果,实现所述第一芯粒与若干个第二芯粒的仿真互联;
通过所述结构模拟工具包,接收所述第二芯粒返回的处理结果;
根据所述处理结果,执行所述当前程序;
其中,根据所述当前程序,确定待发送至所述第二芯粒的数据包,具体包括:
根据所述当前程序,生成任务编号;
将所述任务编号、任务类型、任务参数进行编码,得到编码后的数据;
对所述编码后的数据进行封装,得到待发送至所述第二芯粒的数据包;
根据所述处理结果,执行所述当前程序,具体包括:
确定所述处理结果中任务的任务编号;
若所述处理结果中任务的任务编号与发送至所述第二芯粒的数据包中的任务编号一致,则根据所述处理结果,执行所述当前程序。
2.如权利要求1所述的方法,其特征在于,所述结构模拟工具包包括结构仿真工具包。
3.如权利要求1所述的方法,其特征在于,获取预设的该第二芯粒的目标地址,具体包括:
获取预设的该第二芯粒的编号及基地址;
根据所述编号及所述基地址,确定该第二芯粒的目标地址。
4.如权利要求1所述的方法,其特征在于,通过所述结构模拟工具包,接收所述第二芯粒返回的处理结果之前,所述方法还包括:
判断处理结果是否存在;
若否,中断所述当前程序,并缓存待处理数据包;
若是,则根据所述处理结果,执行所述当前程序。
5.一种多芯粒互联仿真方法,其特征在于,所述方法用于通过仿真器测试当前程序,芯粒包括第一芯粒及若干个第二芯粒,所述第一芯粒包括中央处理器,每个所述第二芯粒均包括图形处理器,预先通过结构模拟工具包,配置所述第一芯粒的地址及每个所述第二芯粒的地址,并存储于所述结构模拟工具包中,其中,所述结构模拟工具包用于连接若干个模拟硬件对象,所述方法应用于所述第二芯粒,所述方法包括:
通过结构模拟工具包,接收所述第一芯粒发送的数据包;
对所述数据包中的数据进行处理,获得处理结果,所述处理结果包括任务编号,实现所述第一芯粒与若干个第二芯粒的仿真互联;
通过所述结构模拟工具包,将所述处理结果返回至所述第一芯粒,所述第一芯粒执行如权利要求1~4任一所述的方法。
6.如权利要求5所述的方法,其特征在于,对所述数据包中的数据进行处理,获得处理结果,具体包括:
对所述数据包进行解码,确定所述数据包中的任务类型;
根据所述任务类型,对所述数据包中的数据进行处理。
7.一种多芯粒互联仿真装置,其特征在于,所述装置用于通过仿真器测试当前程序,芯粒包括第一芯粒及若干个第二芯粒,所述第一芯粒包括中央处理器,每个所述第二芯粒均包括图形处理器,预先通过结构模拟工具包,配置所述第一芯粒的地址及每个所述第二芯粒的地址,并存储于所述结构模拟工具包中,其中,所述结构模拟工具包用于连接若干个模拟硬件对象,所述装置应用于所述第一芯粒,所述装置包括:
地址确定模块,用于针对每个第二芯粒,通过所述结构模拟工具包,获取预设的该第二芯粒的目标地址;
数据包确定模块,用于根据所述当前程序,确定待发送至所述第二芯粒的数据包;
数据包发送模块,用于当预设时刻到来时,通过所述结构模拟工具包,根据所述目标地址,将所述数据包发送至所述第二芯粒,以使所述第二芯粒对所述数据包中的数据进行处理,获得处理结果,实现所述第一芯粒与若干个第二芯粒的仿真互联;
处理结果接收模块,用于通过所述结构模拟工具包,接收所述第二芯粒返回的处理结果;
执行模块,根据所述处理结果,执行所述当前程序;
其中,所述数据包确定模块具体用于,根据所述当前程序,生成任务编号;将所述任务编号、任务类型、任务参数进行编码,得到编码后的数据;对所述编码后的数据进行封装,得到待发送至所述第二芯粒的数据包;
所述执行模块具体用于,确定所述处理结果中任务的任务编号;若所述处理结果中任务的任务编号与发送至所述第二芯粒的数据包中的任务编号一致,则根据所述处理结果,执行所述当前程序。
8.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~6任一项所述的方法。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311522636.8A CN117236263B (zh) | 2023-11-15 | 2023-11-15 | 一种多芯粒互联仿真方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311522636.8A CN117236263B (zh) | 2023-11-15 | 2023-11-15 | 一种多芯粒互联仿真方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117236263A CN117236263A (zh) | 2023-12-15 |
CN117236263B true CN117236263B (zh) | 2024-02-06 |
Family
ID=89096992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311522636.8A Active CN117236263B (zh) | 2023-11-15 | 2023-11-15 | 一种多芯粒互联仿真方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117236263B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103971058A (zh) * | 2014-05-14 | 2014-08-06 | 深圳科士达科技股份有限公司 | 一种多芯片互联互锁的保护方法及系统 |
WO2022001317A1 (zh) * | 2020-06-28 | 2022-01-06 | 中兴通讯股份有限公司 | 芯片仿真方法、装置、设备、系统及存储介质 |
CN114880267A (zh) * | 2022-07-11 | 2022-08-09 | 南京芯驰半导体科技有限公司 | 一种多芯片互联系统及其方法 |
CN115020266A (zh) * | 2022-08-04 | 2022-09-06 | 南京邮电大学 | 一种2.5D Chiplet绑定后测试电路 |
CN115146582A (zh) * | 2022-08-02 | 2022-10-04 | 上海壁仞智能科技有限公司 | 仿真方法及仿真装置、电子设备和计算机可读存储介质 |
CN116107953A (zh) * | 2022-12-27 | 2023-05-12 | 上海立可芯半导体科技有限公司 | 芯粒间的通讯方法和系统 |
CN116306392A (zh) * | 2023-03-08 | 2023-06-23 | 北京奕斯伟计算技术股份有限公司 | 芯片仿真装置、方法、电子设备和存储介质 |
WO2023124068A1 (zh) * | 2021-12-28 | 2023-07-06 | 深圳市紫光同创电子有限公司 | 裸片到裸片的互连电路中半导体组件、集成电路封装方法 |
CN116523045A (zh) * | 2023-03-13 | 2023-08-01 | 之江实验室 | 一种面向多芯粒芯片的深度学习推理模拟器 |
CN116976432A (zh) * | 2023-07-28 | 2023-10-31 | 九识(苏州)智能科技有限公司 | 一种支持任务并行处理的芯片模拟方法、装置和芯片模拟器 |
-
2023
- 2023-11-15 CN CN202311522636.8A patent/CN117236263B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103971058A (zh) * | 2014-05-14 | 2014-08-06 | 深圳科士达科技股份有限公司 | 一种多芯片互联互锁的保护方法及系统 |
WO2022001317A1 (zh) * | 2020-06-28 | 2022-01-06 | 中兴通讯股份有限公司 | 芯片仿真方法、装置、设备、系统及存储介质 |
WO2023124068A1 (zh) * | 2021-12-28 | 2023-07-06 | 深圳市紫光同创电子有限公司 | 裸片到裸片的互连电路中半导体组件、集成电路封装方法 |
CN114880267A (zh) * | 2022-07-11 | 2022-08-09 | 南京芯驰半导体科技有限公司 | 一种多芯片互联系统及其方法 |
CN115146582A (zh) * | 2022-08-02 | 2022-10-04 | 上海壁仞智能科技有限公司 | 仿真方法及仿真装置、电子设备和计算机可读存储介质 |
CN115020266A (zh) * | 2022-08-04 | 2022-09-06 | 南京邮电大学 | 一种2.5D Chiplet绑定后测试电路 |
CN116107953A (zh) * | 2022-12-27 | 2023-05-12 | 上海立可芯半导体科技有限公司 | 芯粒间的通讯方法和系统 |
CN116306392A (zh) * | 2023-03-08 | 2023-06-23 | 北京奕斯伟计算技术股份有限公司 | 芯片仿真装置、方法、电子设备和存储介质 |
CN116523045A (zh) * | 2023-03-13 | 2023-08-01 | 之江实验室 | 一种面向多芯粒芯片的深度学习推理模拟器 |
CN116976432A (zh) * | 2023-07-28 | 2023-10-31 | 九识(苏州)智能科技有限公司 | 一种支持任务并行处理的芯片模拟方法、装置和芯片模拟器 |
Non-Patent Citations (3)
Title |
---|
Emulation-based Performance Studies on the HPSC Space Processor;Benjamin Schwaller.etc;《IEEE》;全文 * |
小芯粒测试机器人测试臂接触片的设计;李臣友;杨刚;于国辉;单宏;于梅霞;宋向涛;;机电产品开发与创新(01);全文 * |
面向软基带SOC芯片设计的仿真平台;刘智国;朱子元;唐杉;苏泳涛;王宏伟;石晶林;;系统仿真学报(11);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117236263A (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107045438B (zh) | 一种应用顶层视图处理方法、装置及组件 | |
WO2021000570A1 (zh) | 模型加载方法及系统、控制节点及执行节点 | |
KR20210011451A (ko) | 하드웨어 가속을 위한 하드웨어 리소스들의 임베디드 스케줄링 | |
US11016769B1 (en) | Method and apparatus for processing information | |
CN110496395B (zh) | 一种针对虚幻引擎的组件运行方法、系统及设备 | |
CN116151363B (zh) | 分布式强化学习系统 | |
CN117075930A (zh) | 一种计算框架管理系统 | |
CN110046052B (zh) | 一种服务调用方法及装置 | |
CN117236263B (zh) | 一种多芯粒互联仿真方法、装置、存储介质及电子设备 | |
CN116932092B (zh) | 一种算子调用代码自动生成的方法、装置、介质及设备 | |
CN111310638B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN116302616A (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
CN116107728A (zh) | 一种任务执行方法、装置、存储介质及电子设备 | |
CN116384505A (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
US11176161B2 (en) | Data processing method, apparatus, and device | |
CN113971072A (zh) | 信息处理方法、装置、设备、存储介质及计算机程序产品 | |
CN111832714B (zh) | 运算方法及装置 | |
CN117522669B (zh) | 一种图形处理器内存优化方法、装置、介质及设备 | |
CN106919436B (zh) | Dalvik虚拟机实现多任务的方法、装置及虚拟机 | |
CN116893892A (zh) | 一种基于业务模型动态生成消息队列的方法、设备及介质 | |
CN116382877B (zh) | 一种任务的执行方法、装置、存储介质及电子设备 | |
CN117455015B (zh) | 一种模型优化的方法、装置、存储介质及电子设备 | |
CN117648175B (zh) | 一种基于动态算法选择的业务执行方法、装置及电子设备 | |
CN115174587B (zh) | 一种数据传输系统、方法、装置、计算机可读存储介质及电子设备 | |
CN117331626A (zh) | 一种Python模型的交付及部署方法、电子设备、介质 |
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 |