CN114706813B - 多核异构片上***、非对称同步方法、计算设备和介质 - Google Patents
多核异构片上***、非对称同步方法、计算设备和介质 Download PDFInfo
- Publication number
- CN114706813B CN114706813B CN202210480118.3A CN202210480118A CN114706813B CN 114706813 B CN114706813 B CN 114706813B CN 202210480118 A CN202210480118 A CN 202210480118A CN 114706813 B CN114706813 B CN 114706813B
- Authority
- CN
- China
- Prior art keywords
- core
- computing
- data
- synchronization
- chip
- 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 55
- 230000004888 barrier function Effects 0.000 claims abstract description 70
- 238000004590 computer program Methods 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 17
- 235000019580 granularity Nutrition 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Data Mining & Analysis (AREA)
- Multi Processors (AREA)
Abstract
本公开提供了一种多核异构片上***、用于该多核异构片上***的非对称同步方法、计算设备和计算机可读存储介质。该多核异构片上***包括:第一计算核;以及不同于所述第一计算核的多个第二计算核,其中所述第一计算核在向共享存储空间产生第一数据量的数据之后,通过第一同步屏障向所述多个第二计算核进行数据就绪同步,所述第二计算核在从所述共享存储空间消费第二数据量的数据之后,通过第二同步屏障向所述第一计算核进行存储空间就绪同步,其中所述第二数据量小于所述第一数据量。
Description
技术领域
本公开概括而言涉及多核处理器领域,更具体地,涉及一种多核异构片上***、用于多核异构片上***的非对称同步方法、计算设备和计算机可读存储介质。
背景技术
当前,随着处理器技术的发展,多核处理器的应用越来越广泛。在多核处理器中,多个计算核共享硬件和软件资源,由主机统一调度来协同完成一个或多个任务。多核处理器中的多个计算核可以是相同的计算核或者不同的计算核。片上***(System-on-a-chip,SoC)指的是在单个芯片上集成一个完整的***,能够满足更加定制化的需求。多核片上***是指包括多个计算核的片上***,如果多个计算核是相同的计算核,则可以将该多核片上***称为同构多核片上***,如果多个计算核是不同的计算核,则可以将该多核片上***称为多核异构片上***。对于同构多核片上***来说,由于多个计算核完全相同,对这些计算核的调度和控制可以采用完全相同的方式。然而,对于多核异构片上***来说,由于不同计算核的能力不同,因此对这些计算核进行调度以完成同一任务需要消耗大量的资源,如不同计算核之间需要消耗大量同步资源进行数据就绪同步,从而造成整体***的性能下降和资源浪费。
发明内容
针对上述问题,本公开提供了一种在多核异构片上***中,为不同能力的计算核配置不同粒度的同步资源来与其他计算核进行同步的方案,从而节省了同步资源的使用,并且提高了计算资源的利用效率。
根据本公开的一个方面,提供了一种多核异构片上***。该多核异构片上***包括:第一计算核;以及不同于所述第一计算核的多个第二计算核,其中所述第一计算核在向共享存储空间产生第一数据量的数据之后,通过第一同步屏障向所述多个第二计算核进行数据就绪同步,所述第二计算核在从所述共享存储空间消费第二数据量的数据之后,通过第二同步屏障向所述第一计算核进行存储空间就绪同步,其中所述第二数据量小于所述第一数据量。
根据本公开的另一个方面,提供了一种用于多核异构片上***的非对称同步方法。该方法包括:由所述多核异构片上***的第一计算核在向共享存储空间产生第一数据量的数据之后,通过第一同步屏障向所述多核异构片上***的多个第二计算核进行数据就绪同步,其中所述第一计算核不同于所述第二计算核;以及由所述第二计算核在从所述共享存储空间消费第二数据量的数据之后,通过第二同步屏障向所述第一计算核进行存储空间就绪同步,其中所述第二数据量小于所述第一数据量。
根据本公开的又一个方面,提供了一种计算设备。该计算设备包括:至少一个处理器;以及至少一个存储器,该至少一个存储器被耦合到该至少一个处理器并且存储用于由该至少一个处理器执行的指令,该指令当由该至少一个处理器执行时,使得该计算设备执行根据上述方法的步骤。
根据本公开的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序代码,该计算机程序代码在被运行时执行如上所述的方法。
在一些实现中,所述第一计算核的计算能力大于所述第二计算核。
在一些实现中,所述第一计算核包括用于执行卷积运算或者矩阵乘法的张量计算核,所述第二计算核包括用于执行标量和/或矢量运算的计算单元。
在一些实现中,所述第一数据量等于所述共享存储空间的容量并且所述第一数据量是所述第二数据量的整数倍。
在一些实现中,所述共享存储空间包括寄存器堆和/或共享内存。
在一些实现中,所述第一同步屏障包括宽线程组屏障,所述第二同步屏障包括线程组屏障。
在一些实现中,所述第一计算核和所述第二计算核流水线式处理多批数据。
附图说明
通过参考下列附图所给出的本公开的具体实施方式的描述,将更好地理解本公开,并且本公开的其他目的、细节、特点和优点将变得更加显而易见。
图1示出了一种多核异构片上***的结构示意图。
图2示出了一种现有技术中的多核异构片上***的不同计算核之间使用同步资源进行同步的示意图。
图3示出了一种多核异构片上***的不同计算核之间的对称同步方法的理想时序图。
图4示出了一种多核异构片上***的不同计算核之间的对称同步方法的非理想时序图。
图5示出了根据本发明实施例的用于多核异构片上***的非对称同步方法的时序图。
图6示出了根据本法实施例的用于多核异构片上***的非对称同步方法的多批数据的时序图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一些实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。
图1示出了一种多核异构片上***100的结构示意图。如图1中所示,多核异构片上***100可以包括第一计算核110和多个第二计算核120。
第一计算核110和第二计算核120可以具有不同的计算能力(即算力),这里假设第一计算核110的计算能力大于第二计算核120。在一些实施例中,例如在用于神经网络计算的场景中,第一计算核110可以包括用于执行卷积运算或者矩阵乘法的张量计算核(TensorCore),其可以用作人工智能(AI)加速器,第二计算核120可以包括用于执行标量和/或矢量运算的计算单元(Compute Unit,CU)。
第一计算核110和多个第二计算核120之间可以通过寄存器堆(Register File)130和/或共享内存140进行数据交互。寄存器堆130例如可以物理上位于第一计算核110和多个第二计算核120中的任一个中。寄存器堆130通常容量较小,但是由于与各个计算核距离较近而存取速度较快,因此适合于小块数据的交互。共享内存140例如可以是独立的内存。其容量通常较大,但是由于与各个计算核距离较远而存取速度较慢,通常用于大块数据的交互。无论是通过寄存器堆130还是共享内存140来传递数据,第一计算核110和多个第二计算核120之间都需要进行数据就绪同步以保证数据的产生和消费在正确的时序上,产生数据的计算核(第一计算核110和多个第二计算核120中的一者)可以称为数据生产者(producer),消费数据的计算核(第一计算核110和多个第二计算核120中的另一者)可以称为数据消费者(consumer)。本文中,将第一计算核110和多个第二计算核120进行数据就绪同步所使用的寄存器堆130和/或共享内存140或其一部分称为共享存储空间。数据生产者向共享存储空间产生数据,发出数据就绪同步(如data ready)信号以指示共享存储空间中存在着可供使用的数据。数据消费者从共享存储空间的对应位置消费数据,并且在数据消费完成之后,发出存储空间就绪同步(如buffer ready)信号,以指示该共享存储空间已被释放,可以被数据生产者再次使用。可以看出,在此过程中,用于传递同步信号的同步资源(Barrier Resource,本文中也称为屏障资源或者同步屏障)非常重要。
图2示出了一种现有技术中的多核异构片上***100的不同计算核之间使用同步资源进行同步的示意图。如图2中所示,假设第一计算核110是如前所述的张量计算核,第二计算核120是如前所述的计算单元。可以使用WTG(Wide Thread Group,宽线程组)屏障实现第一计算核110和多个第二计算核120之间的同步(如图2中实线所示),使用TG(ThreadGroup,线程组)屏障实现第二计算核120内的线程的同步(如图2中虚线所示)。
WTG屏障是一种全局同步资源,数目比较有限,尤其在神经网络推理和训练中多层、多样本以流水线方式并行执行,同层之内使用多缓存以流水线方式进行数据存取时,WTG屏障资源使用就更加紧张。因此,在如图2所示的同步示意图中,在第一计算核110和多个第二计算核120之间进行数据交互时,不能全部使用WTG屏障来进行同步,同时又考虑不同第二计算核120之间的异步性,从第二计算核120到第一计算核110方向上采用TG屏障同步(另需使用一个WTG屏障来实现多个第二计算核120之间的同步,也称作固定WTG屏障或fixed WTG barrier),而第一计算核110到第二计算核120方向上采用WTG屏障同步。
为了能够以流水线形式使用共享存储空间,通常将该共享存储空间划分成多个共享存储块,例如可以平均划分成多个共享存储块,并且在第一计算核110和多个第二计算核120两侧使用对称式同步方案。图3示出了一种多核异构片上***100的不同计算核之间的对称同步方法的理想时序图。如图3中所示,假设共享存储空间被平均划分为多个共享存储块(图3中示例性地显示了4个共享存储块B0、B1、B2和B3),并且第一计算核110对每个共享存储块进行处理(例如包括产生和写入数据)的耗时相同,第二计算核120对每个共享存储块进行处理(例如包括读取和消费数据)的耗时相同。例如,如图3中所示,对于第一计算核110,每个共享存储块B0、B1、B2和B3沿时间方向的长度相等;对于第二计算核120,每个共享存储块B0、B1、B2和B3沿时间方向的长度相等。此外,第一计算核110和第二计算核120对每个共享存储块进行处理的耗时可以相同或者不同。如图3中所示,在第一计算核110处理完共享存储空间中的一个共享存储块(如共享存储块B0、B1、B2或B3)之后,其通过相应的WTG(如WTG0、WTG1、WTG2或WTG3)屏障向第二计算核120发送数据就绪同步信号以指示相应的共享存储块中存在着待使用的数据。第二计算核120对相应的共享存储块进行处理并且通过相应的TG(如TG0、TG1、TG2或TG3)屏障向第一计算核110发送存储空间就绪同步信号以指示该共享存储块已被使用(即,该共享存储块中的数据可以被新的数据覆盖),第一计算核110可以继续对其进行处理。
此外,在一些实现中,以流水线形式在整个共享存储空间的所有共享存储块(即共享存储块B0、B1、B2和B3)都执行了上述过程之后,还需要通过一个额外的WTG(称为保护WTG或protection WTG)屏障将所有第二计算核120的线程都同步到一个点,然后再开始下一个周期的数据就绪同步信号。利用保护WTG屏障,能够使得在共享存储空间使用一个周期之后,强制对第一计算核110和多个第二计算核120进行同步,以防止第一计算核110和第二计算核120对于通过一个WTG屏障接收到的数据就绪同步信号所处的周期理解不同而造成同步错误。
在图3所示的同步方案中,需要消耗的WTG屏障的总个数为如下三项之和:
共享存储空间包括的共享存储块的个数(例如图3中为4);
保护WTG屏障的个数1;
固定WTG屏障的个数1。
这里,固定WTG个数是指各个第二计算核120的存储空间就绪同步信号不仅依赖于TG屏障,还需要一个固定WTG屏障实现多个第二计算核120之间的同步。
可以看出,共享存储空间包括的共享存储块的个数越多,需要使用的WTG屏障的个数就越多。这还仅仅是一个算法执行流程所需要的WTG屏障的个数。如果多个执行流程并行起来(如多层、多样本并行),那么WTG屏障个数就会成倍增加。显然这种同步方式在更复杂、更广泛的场景中使用就会受到可用的WTG屏障资源的限制。
此外,从图3可以看出,数据就绪同步信号和存储空间就绪同步信号耦合太紧密。当每个共享存储块的处理延时不均等的情况下,仍使用这种对称式同步方案,第一计算核110和多个第二计算核120两侧就会相互牵制而产生空闲状态,降低了计算核的利用率。图4示出了一种多核异构片上***100的不同计算核之间的对称同步方法的非理想时序图。与图3中类似,假设共享存储空间被平均划分为多个共享存储块(图4中示例性地显示了4个共享存储块B0、B1、B2和B3),而与图3不同,第一计算核110对每个共享存储块进行处理(例如包括产生和写入数据)的耗时不同,第二计算核120对每个共享存储块进行处理(例如包括读取和消费数据)的耗时不同。例如,如图4中所示,对于第一计算核110,每个共享存储块B0、B1、B2和B3沿时间方向的长度可能不相等;对于第二计算核120,每个共享存储块B0、B1、B2和B3沿时间方向的长度可能不相等。
在这种情况下,在第二计算核120处理一个共享存储块的延时过长的情况下,即使第一计算核110在向后续的共享存储块产生数据并且通过WTG屏障向第二计算核120发送数据就绪同步信号,第二计算核120也无法立即对该数据就绪同步信号进行响应。例如,如图4中所示,如果第二计算核120处理共享存储块B1的延时过长,以至于在第一计算核110在同一个周期中向共享存储块B2、B3产生数据,甚至在下一个周期中向共享存储块B0产生数据并且分别通过WTG2、WTG3和WTG0屏障向第二计算核120发送数据就绪同步信号之后,第二计算核120才能够利用TG1屏障向第一计算核110发送指示第二计算核120已经消费了共享存储块B1中的数据的存储空间就绪同步信号。在这种情况下,如图4中所示,第二计算核120在通过TG2屏障向第一计算核110发送指示第二计算核120已经消费了共享存储块B2中的数据的存储空间就绪同步信号之后,第一计算核110继续向共享数据块B2产生数据并通过WTG2屏障向第二计算核120发送数据就绪同步信号。可以看出,在这种情况下,由于第二计算核120侧的处理延时过大而在第一计算核110一侧产生严重的等待时长(即空闲状态),在第一计算核110对共享存储空间的使用已经进行到第二个周期时,第二计算核120对共享存储空间的使用仍停留在第一个周期。
针对这种情况,本发明提出了一种用于多核异构片上***的非对称同步方法。图5示出了根据本发明实施例的用于多核异构片上***100的非对称同步方法的时序图。在该非对称同步方法中,根据计算核的能力不同和可用同步资源的不对称,对不同计算核使用不同的同步策略。其中,类似地假设第一计算核110的计算能力(算力)大于第二计算核120,并且第一计算核110的可用同步资源数量更少。
概括来说,在本发明的非对称同步方法中,从第一计算核110到第二计算核120的数据就绪同步信号采用第一同步粒度(也称为大同步粒度,Big granularity),从第二计算核120到第一计算核110的存储空间就绪同步信号采用第二同步粒度(也称为小同步粒度,Little granularity),并且该第二同步粒度小于该第一同步粒度。
具体地,第一计算核110在向共享存储空间产生第一数据量的数据之后,通过第一同步屏障(如WTG屏障)向多个第二计算核120进行数据就绪同步。例如,第一计算核110可以通过WTG屏障向第二计算核120发送数据就绪同步(如data ready)信号,以向第二计算核120指示共享存储空间中存在着待消费/使用的数据。
另一方面,第二计算核120在从共享存储空间消费第二数据量的数据之后,通过第二同步屏障(如TG屏障)向第一计算核110进行存储空间就绪同步。例如第二计算核120可以通过TG屏障向第一计算核110发送存储空间就绪同步(如buffer ready)信号,以向第一计算核110指示特定的共享存储块可用。
在一些实施例中,可以与图3和图4类似地将共享存储空间平均划分为多个共享存储块,并且第一数据量等于整个共享存储空间的容量,第二数据量等于一个共享存储块的容量。当然,本领域技术人员可以理解,本发明并不局限于此,第一数据量也可以是共享存储空间的一部分,并且第一数据量是第二数据量的整数倍。
例如,假设共享存储空间的大小为M字节,第二同步粒度为m字节,则所使用的TG屏障的数量K=Floor(M/m),其中Floor是向下取整运算符。在这种情况下,第一计算核110每写入(m*K)字节数据后通过第一同步屏障向第二计算核120发送一次数据就绪同步信号,每个第二计算核120消费完m/n字节数据后通过第二同步屏障发送一次存储空间就绪同步信号(其中n表示第二计算核120的数量)。即,第一数据量为(m*K)字节,第二数据量为m(即m/n*n=m)字节。
通过这种方法,不管第一同步粒度和第二同步粒度的大小是多少,从第一计算核110到第二计算核120都仅需要2个第一同步屏障(例如图5中所示的WTG0和WTG1)。此外,即使考虑到用于多个第二计算核120之间同步的1个固定第一同步屏障,也仅需要3个第一同步屏障。因此,这种非对称同步方法相比于传统的对称同步方法,大大缩减了对第一同步屏障资源的需求,从而能够更广泛地应用于复杂的算法场景,如多层、多样本并行等。
此外,与传统的对称同步方法相比,本发明的非对称同步方法执行数据就绪同步的次数大大减少(例如,执行K次存储空间就绪同步才对应于一次数据就绪同步),并且也不需要不同周期之间的保护WTG屏障,因此大大降低了同步开销,一定程度上提高了计算资源的利用率。同时,在传统的对称同步方法中,由于同步粒度相同,数据就绪同步和存储空间就绪同步耦合得比较紧密,在这种情况下,如果第一计算核110和第二计算核120在每个同步粒度的数据处理延迟不是均等的,而是呈现发散特征(如图4中所示),那么第一计算核110和第二计算核120之间就会出现互相等待的现象,降低了计算资源的利用率。与之不同,本发明的非对称同步方法解除了数据就绪同步和存储空间就绪同步之间的紧耦合,使之变成一种相对松散的耦合关系。考虑到K个第二同步粒度的数据处理延迟彼此之间相对发散,将K个第二同步粒度的数据处理延迟叠加在一起之后会相对比较均匀,因此这种非对称同步方法能在更广泛的场景上获得更好的性能,即更好的计算资源利用率。
进一步地,在一些实施例中,本发明所述的非对称同步方法更加适用于多批数据的流水线式处理。图6示出了根据本法实施例的用于多核异构片上***100的非对称同步方法的多批数据的时序图。如图6中所示,在存在多批(例如多层、多样本等)数据要处理的情况下,多核异构片上***100可以流水线式地一批接一批地处理多批数据。如图5中所示,在仅存在一批数据要处理的情况下,第二计算核120一侧的处理将会相对于第一计算核110一侧有K个第二数据量的处理延迟(即一个“拖尾”),这对性能是一种不利的影响。然而,如果存在多批数据要处理,可以利用批间交叠的方式使得这种处理延迟的影响最小化。如图6中所示,利用该非对称同步方法,不同批的数据可以以流水线方式一批接一批地处理,从而在多批数据的情况下也仅仅有一个“拖尾”(即K个第二数据量的处理延迟)。
利用本发明的用于多核异构片上***的非对称同步方法,可以将第一同步屏障(例如有限的WTG屏障)的使用数目降到最低,从而广泛适用于复杂的算法场景,并且该方案大大减少了同步次数和同步开销,提高了计算资源的利用效率。此外,本发明的用于多核异构片上***的非对称同步方案中数据就绪同步和存储空间就绪同步的松耦合关系,在不同计算核的计算处理延时发散的场景下,能有效避免相互等待,从而取得更好、更稳定的性能。
本领域技术人员可以理解,图1和图2所示的多核异构片上***100仅是示意性的。在一些实施例中,多核异构片上***100可以包含更多或更少的组成部分。
以上结合附图对根据本公开的多核异构片上***100及其非对称同步方法进行了描述。然而本领域技术人员可以理解,多核异构片上***100以及非对称同步方法的执行并不局限于图中所示和以上所述的顺序,而是可以以任何其他合理的顺序来执行。此外,多核异构片上***100也不必须包括图1和图2中所示的所有组件,其可以仅仅包括执行本公开中所述的功能所必须的其中一些组件或更多组件,并且这些组件的连接方式也不局限于图中所示的形式。
本发明可以实现为方法、计算设备、***和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。计算设备可以包括至少一个处理器和耦合到该至少一个处理器的至少一个存储器,该存储器可以存储用于由至少一个处理器执行的指令。该指令在由该至少一个处理器执行时,该计算设备可以执行上述非对称同步方法。
在一个或多个示例性设计中,可以用硬件、软件、固件或它们的任意组合来实现本公开所述的功能。例如,如果用软件来实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码来传输。
本文公开的装置的各个单元可以使用分立硬件组件来实现,也可以集成地实现在一个硬件组件,如处理器上。例如,可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本公开所描述的各种示例性的逻辑块、模块和电路。
本领域普通技术人员还应当理解,结合本公开的实施例描述的各种示例性的逻辑块、模块、电路和算法步骤可以实现成电子硬件、计算机软件或二者的组合。
本公开的以上描述用于使本领域的任何普通技术人员能够实现或使用本公开。对于本领域普通技术人员来说,本公开的各种修改都是显而易见的,并且本文定义的一般性原理也可以在不脱离本公开的精神和保护范围的情况下应用于其它变形。因此,本公开并不限于本文所述的实例和设计,而是与本文公开的原理和新颖性特性的最广范围相一致。
Claims (16)
1.一种多核异构片上***,包括:
第一计算核;以及
不同于所述第一计算核的多个第二计算核,其中
所述第一计算核在向共享存储空间产生第一数据量的数据之后,通过第一同步屏障向所述多个第二计算核进行数据就绪同步,
所述第二计算核在从所述共享存储空间消费第二数据量的数据之后,通过第二同步屏障向所述第一计算核进行存储空间就绪同步,其中所述第二数据量小于所述第一数据量。
2.如权利要求1所述的多核异构片上***,其中所述第一计算核的计算能力大于所述第二计算核。
3.如权利要求1所述的多核异构片上***,其中所述第一计算核包括用于执行卷积运算或者矩阵乘法的张量计算核,所述第二计算核包括用于执行标量和/或矢量运算的计算单元。
4.如权利要求1所述的多核异构片上***,其中所述第一数据量等于所述共享存储空间的容量并且所述第一数据量是所述第二数据量的整数倍。
5.如权利要求1所述的多核异构片上***,其中所述共享存储空间包括寄存器堆和/或共享内存。
6.如权利要求1所述的多核异构片上***,其中所述第一同步屏障包括宽线程组屏障,所述第二同步屏障包括线程组屏障。
7.如权利要求1所述的多核异构片上***,其中所述第一计算核和所述第二计算核流水线式处理多批数据。
8.一种用于多核异构片上***的非对称同步方法,包括:
由所述多核异构片上***的第一计算核在向共享存储空间产生第一数据量的数据之后,通过第一同步屏障向所述多核异构片上***的多个第二计算核进行数据就绪同步,其中所述第一计算核不同于所述第二计算核;以及
由所述第二计算核在从所述共享存储空间消费第二数据量的数据之后,通过第二同步屏障向所述第一计算核进行存储空间就绪同步,其中所述第二数据量小于所述第一数据量。
9.如权利要求8所述的非对称同步方法,其中所述第一计算核的计算能力大于所述第二计算核。
10.如权利要求8所述的非对称同步方法,其中所述第一计算核包括用于执行卷积运算或者矩阵乘法的张量计算核,所述第二计算核包括用于执行标量和/或矢量运算的计算单元。
11.如权利要求8所述的非对称同步方法,其中所述第一数据量等于所述共享存储空间的容量并且所述第一数据量是所述第二数据量的整数倍。
12.如权利要求8所述的非对称同步方法,其中所述共享存储空间包括寄存器堆和/或共享内存。
13.如权利要求8所述的非对称同步方法,其中所述第一同步屏障包括宽线程组屏障,所述第二同步屏障包括线程组屏障。
14.如权利要求8所述的非对称同步方法,还包括:
所述第一计算核和所述第二计算核流水线式处理多批数据。
15.一种计算设备,包括:
至少一个处理器;以及
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理器并且存储用于由所述至少一个处理器执行的指令,所述指令当由所述至少一个处理器执行时,使得所述计算设备执行根据权利要求8至14中任一项所述的方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序代码,所述计算机程序代码在被运行时执行如权利要求8至14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210480118.3A CN114706813B (zh) | 2022-05-05 | 2022-05-05 | 多核异构片上***、非对称同步方法、计算设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210480118.3A CN114706813B (zh) | 2022-05-05 | 2022-05-05 | 多核异构片上***、非对称同步方法、计算设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114706813A CN114706813A (zh) | 2022-07-05 |
CN114706813B true CN114706813B (zh) | 2023-07-14 |
Family
ID=82176162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210480118.3A Active CN114706813B (zh) | 2022-05-05 | 2022-05-05 | 多核异构片上***、非对称同步方法、计算设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114706813B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117407181B (zh) * | 2023-12-14 | 2024-03-22 | 沐曦集成电路(南京)有限公司 | 一种基于屏障指令的异构计算进程同步方法及*** |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008136047A1 (ja) * | 2007-04-19 | 2008-11-13 | Fujitsu Limited | Smpノードからなるメモリ分散型並列計算機システム向けlu分解の並列処理方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819345B2 (en) * | 2012-02-17 | 2014-08-26 | Nokia Corporation | Method, apparatus, and computer program product for inter-core communication in multi-core processors |
US9760410B2 (en) * | 2014-12-12 | 2017-09-12 | Intel Corporation | Technologies for fast synchronization barriers for many-core processing |
US20160335734A1 (en) * | 2015-05-11 | 2016-11-17 | Vixs Systems, Inc. | Memory subsystem synchronization primitives |
WO2017166269A1 (en) * | 2016-04-01 | 2017-10-05 | Intel Corporation | System and method to accelerate reduce operations in graphics processor |
US11061742B2 (en) * | 2018-06-27 | 2021-07-13 | Intel Corporation | System, apparatus and method for barrier synchronization in a multi-threaded processor |
US10824481B2 (en) * | 2018-11-13 | 2020-11-03 | International Business Machines Corporation | Partial synchronization between compute tasks based on threshold specification in a computing system |
CN112347186B (zh) * | 2019-08-09 | 2023-02-28 | 安徽寒武纪信息科技有限公司 | 数据同步方法及装置以及相关产品 |
DE102020127704A1 (de) * | 2019-10-29 | 2021-04-29 | Nvidia Corporation | Techniken zum effizienten transferieren von daten an einem prozessor |
US11803380B2 (en) * | 2019-10-29 | 2023-10-31 | Nvidia Corporation | High performance synchronization mechanisms for coordinating operations on a computer system |
CN114281561A (zh) * | 2020-09-27 | 2022-04-05 | 安徽寒武纪信息科技有限公司 | 处理单元、用于处理单元的同步方法及相应产品 |
CN112100121B (zh) * | 2020-11-17 | 2021-02-12 | 北京壁仞科技开发有限公司 | 计算装置、计算设备以及可编程调度方法 |
-
2022
- 2022-05-05 CN CN202210480118.3A patent/CN114706813B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008136047A1 (ja) * | 2007-04-19 | 2008-11-13 | Fujitsu Limited | Smpノードからなるメモリ分散型並列計算機システム向けlu分解の並列処理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114706813A (zh) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11928512B2 (en) | Quiesce reconfigurable data processor | |
US9971635B2 (en) | Method and apparatus for a hierarchical synchronization barrier in a multi-node system | |
US8615646B2 (en) | Unanimous branch instructions in a parallel thread processor | |
US7971029B2 (en) | Barrier synchronization method, device, and multi-core processor | |
US20140143524A1 (en) | Information processing apparatus, information processing apparatus control method, and a computer-readable storage medium storing a control program for controlling an information processing apparatus | |
US20110078418A1 (en) | Support for Non-Local Returns in Parallel Thread SIMD Engine | |
US11816061B2 (en) | Dynamic allocation of arithmetic logic units for vectorized operations | |
US20160210171A1 (en) | Scheduling in job execution | |
CN114706813B (zh) | 多核异构片上***、非对称同步方法、计算设备和介质 | |
CN115061803A (zh) | 一种多核处理***及其任务调度方法、芯片、存储介质 | |
US10684834B2 (en) | Method and apparatus for detecting inter-instruction data dependency | |
CN111475205B (zh) | 一种基于数据流解耦合的粗粒度可重构阵列结构设计方法 | |
US20210255866A1 (en) | Acceleration unit, system-on-chip, server, data center, and related method | |
Contini et al. | Enabling Reconfigurable HPC through MPI-based Inter-FPGA Communication | |
US20230195526A1 (en) | Graph computing apparatus, processing method, and related device | |
CN110262884B (zh) | 一种基于申威众核处理器的核组内多程序多数据流分区并行的运行方法 | |
CN112463218A (zh) | 指令发射控制方法及电路、数据处理方法及电路 | |
US20170337084A1 (en) | Compute unit including thread dispatcher and event register and method of operating same to enable communication | |
CN118035618B (zh) | 数据处理器、数据处理方法、电子设备、存储介质 | |
CN110647984B (zh) | 芯片、集成处理设备及其操作方法 | |
US20230069032A1 (en) | Data processing apparatus, chip, and data processing method | |
US20230205580A1 (en) | Dependency-aware server processing of dataflow applications | |
Melikyan | Design of High-performance Heterogeneous Integrated Circuits | |
US9158580B2 (en) | Data flows and their interaction with control flows | |
CN118296084A (zh) | 数据处理设备、指令同步方法、电子设备和存储介质 |
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 | ||
CP03 | Change of name, title or address |
Address after: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Patentee after: Shanghai Bi Ren Technology Co.,Ltd. Country or region after: China Address before: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Patentee before: Shanghai Bilin Intelligent Technology Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |