CN116431561A - 基于异构众核加速卡的数据同步方法、装置、设备及介质 - Google Patents
基于异构众核加速卡的数据同步方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116431561A CN116431561A CN202310686282.4A CN202310686282A CN116431561A CN 116431561 A CN116431561 A CN 116431561A CN 202310686282 A CN202310686282 A CN 202310686282A CN 116431561 A CN116431561 A CN 116431561A
- Authority
- CN
- China
- Prior art keywords
- core
- data
- core group
- target
- heterogeneous many
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000001133 acceleration Effects 0.000 claims abstract description 27
- 230000003993 interaction Effects 0.000 claims abstract description 21
- 230000015654 memory Effects 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 16
- 230000000903 blocking effect Effects 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 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
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于异构众核加速卡的数据同步方法、装置、设备及介质,涉及数据同步技术领域。该方法包括:按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储;全规约操作分块数据,得到全规约结果;将全规约结果写入目标异构众核加速卡内其他核组,完成数据同步。通过本发明的技术方案,能够减少异构众核加速卡内部的数据同步流程,保证了核组内核心的工作连续性,提高了全规约操作的带宽。
Description
技术领域
本发明涉及数据同步技术领域,尤其涉及基于异构众核加速卡的数据同步方法、装置、设备及介质。
背景技术
随着科学技术的逐渐发展,异构众核加速卡对人工智能(ArtificialIntelligence,AI)训练或推理具有重要意义,正常的使用情况下,会将不同的任务,如全规约(All Reduce)操作,运行到异构众核加速卡的不同核组中。
现有技术中,通常会采用两种方法实现同一异构众核加速卡中各核组间的AllReduce操作。第一种方法是将数据拷贝到主机(Host)端,再在Host端对各个核组的数据进行All Reduce操作,最后将计算结果拷贝到核组上。第二种方法是通过直接访问其他核组的方式来获取其他核组的数据,并通过核组累加数据进行All Reduce操作。
然而,若采用将数据拷贝到Host端进行All Reduce操作的方法会占用稀缺的周边设备高速连接标准(Peripheral Component Interconnect Express,PCIE)资源,使得AllReduce操作的带宽降低,并且会占用一定的Host计算资源。若采用直接访问其他核组,通过核组累加数据进行All Reduce操作的方法需要在Host上做一次同步操作,降低了AllReduce操作的连续性,提高了All Reduce操作的延迟。因此,如何保证核组内核心的工作连续性,提高全规约操作的带宽,是目前亟待解决的问题。
发明内容
本发明提供了基于异构众核加速卡的数据同步方法、装置、设备及介质,可以解决核组内核心的工作容易被打断,全规约操作的带宽较低的问题。
根据本发明的一方面,提供了一种基于异构众核加速卡的数据同步方法,该方法应用于异构众核加速卡的核组,异构众核加速卡中包含顺序编号的多个核组,每个核组包含在核组内顺序编号的多个核心,该方法包括:
按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储;
全规约操作所述分块数据,得到全规约结果;
将所述全规约结果写入目标异构众核加速卡内其他核组,完成数据同步;
其中,所述按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储,包括:
按照本核组编号获取本地存储中与所述本核组编号具有关联关系的本地存储数据;
按照本核组编号获取目标异构众核加速卡内其他核组中与所述本核组编号具有关联关系的关联存储数据;
将所述本地存储数据与所述关联存储数据组合,生成分块数据并本地存储。
根据本发明的另一方面,提供了一种基于异构众核加速卡的数据同步装置,包括:
数据分块模块,用于按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储;
全规约模块,用于全规约操作所述分块数据,得到全规约结果;
数据写入模块,用于将所述全规约结果写入目标异构众核加速卡内其他核组,完成数据同步;
其中,数据分块模块具体用于:
按照本核组编号获取本地存储中与所述本核组编号具有关联关系的本地存储数据;
按照本核组编号获取目标异构众核加速卡内其他核组中与所述本核组编号具有关联关系的关联存储数据;
将所述本地存储数据与所述关联存储数据组合,生成分块数据并本地存储。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的基于异构众核加速卡的数据同步方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的基于异构众核加速卡的数据同步方法。
本发明实施例的技术方案,通过按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储;进而,全规约操作分块数据,得到全规约结果;最后,将全规约结果写入目标异构众核加速卡内其他核组,完成数据同步,解决了核组内核心的工作容易被打断,全规约操作的带宽较低的问题,能够减少异构众核加速卡内部的数据同步流程,保证了核组内核心的工作连续性,提高了全规约操作的带宽。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据现有技术提供的一种加速卡内数据同步方法的流程图。
图2是根据现有技术提供的另一种加速卡内数据同步方法的流程图。
图3是根据本发明实施例一提供的一种基于异构众核加速卡的数据同步方法的流程图。
图4是根据本发明实施例一提供的一种全规约操作的流程示意图。
图5是根据本发明实施例二提供的一种基于异构众核加速卡的数据同步方法的流程图。
图6是根据本发明实施例二提供的一种可选的基于异构众核加速卡的数据同步方法的流程图。
图7是根据本发明实施例三提供的一种基于异构众核加速卡的数据同步装置的结构示意图。
图8是实现本发明实施例的基于异构众核加速卡的数据同步方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有的异构众核加速卡中通常含有四个核组,每个不同的核组均存在与之对应的高带宽存储器(High Bandwidth Memory,HBM)内存。正常的适用情况下,当接收到任务时,会将不同的任务运行到异构众核加速卡中的不同核组中。而在任务运行时经常会使用AllReduce操作。
现有技术中通常会使用两种方法实现同一异构众核加速卡中的不同核组间的AllReduce操作。图1是根据现有技术提供的一种加速卡内数据同步方法的流程图。具体的,将四个不同核组的数据拷贝到Host端,再在Host端将四个核组的数据分别做好All Reduce操作,得到计算结果,最后,再将计算结果从Host端拷贝到各个核组上。图2是根据现有技术提供的另一种加速卡内数据同步方法的流程图。具体的,首先在Host端上进行一次同步操作,之后,从核直接访问其他核组的HBM内存来获取其他核组上的数据,并通过核组叠加数据来进行All Reduce操作,最后,在Host端中断当前核组上的任务。
然而,若使用第一种方法数据需要从核组拷贝到Host端,再从Host端拷贝到核组,这些操作占用了稀缺的PCIE资源,由于PCIE的带宽通常只有32G/s,带宽较低,因此,使得全规约操作的带宽降低。并且,若使用第一种方法需要在Host端做All Reduce操作,占用了一定的Host计算资源。若使用第二种方法不需要在Host端和核组间进行交互,没有占用PCIE资源和Host计算资源。但是,在进行All Reduce操作之前需要在Host端做一次同步操作,会浪费一次发起时间,并且不能按照现有的核组顺序执行,降低了All Reduce操作的连续性,提高了All Reduce操作的延迟。因此,为解决现有技术中核组内核心的工作容易被打断,全规约操作的带宽较低的问题,本发明实施例提供了一种基于异构众核加速卡的数据同步方法。
实施例一
图3为本发明实施例一提供的一种基于异构众核加速卡的数据同步方法的流程图,本实施例可适用于异构众核加速卡内部的不同核组间进行数据同步的情况,异构众核加速卡中包含顺序编号的多个核组,每个核组包含在核组内顺序编号的多个核心,该方法可以由基于异构众核加速卡的数据同步装置来执行,该基于异构众核加速卡的数据同步装置可以采用硬件和/或软件的形式实现,该基于异构众核加速卡的数据同步装置可配置于电子设备中,示例性的,可以为处理器中。如图3所示,该方法包括:
S110、按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储。
其中,目标异构众核加速卡可以指当前进行数据同步操作的异构众核架构芯片。本核组可以指目标异构众核加速卡中当前需要执行全规约操作的核组。本核组编号可以指目标异构众核加速卡中本核组的编号。目标核组数量可以指目标异构众核加速卡中包含的核组的数量。通常,异构众核加速卡中包含四个核组,因此,本核组编号可以为0、1、2或3,目标核组数量可以为4。
其中,数据交互可以指本核组与同一目标异构众核加速卡内的其他核组依照本核组编号进行数据互换的操作。分块数据可以指数据交换后得到的数据。通常,分块数据包含本核组未交换给其他核组的数据,也包含本核组从其他核组中获得的数据。本地存储可以指将分块数据存储至本核组对应的HBM内存。值得注意的是,在异构众核加速卡内通常一个核组对应一个HBM内存。
S120、全规约操作所述分块数据,得到全规约结果。
其中,全规约操作可以指在本核组中当前核心获取其余核心中的数据,将所有核心上的数据进行逻辑运算后,再将运算后的结果等量的分发给其余的核心,使得各核心中数据保持一致的操作。全规约结果可以指全规约操作后得到的数据结果。
图4所示为本发明实施例提供的一种全规约操作的流程示意图;具体的,以核组内部存在三个核心为例,核心1中有四个数据(5,1,2,3),核心2中有四个数据(2,3,3,4),核心3中有四个数据(3,4,4,5),逻辑运算为求和运算,则全规约结果可以为:各核心相同位置的数据都是所有原核心相同位置的原数据的求和,即,5+2+3=10、1+3+4=8、2+3+4=9、3+4+5=12。
S130、将所述全规约结果写入目标异构众核加速卡内其他核组,完成数据同步。
具体的,在各核组完成全规约操作之后,可以将全规约结果复制至其他核组对应的HBM内存中,由此,完成数据同步。
本发明实施例的技术方案,通过按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储;进而,全规约操作分块数据,得到全规约结果;最后,将全规约结果写入目标异构众核加速卡内其他核组,完成数据同步,解决了核组内核心的工作容易被打断,全规约操作的带宽较低的问题,能够减少异构众核加速卡内部的数据同步流程,保证了核组内核心的工作连续性,提高了全规约操作的带宽。
实施例二
图5为本发明实施例二提供的一种基于异构众核加速卡的数据同步方法的流程图,本实施例以上述实施例为基础进行细化,在本实施例中具体是对按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储的操作进行细化,具体可以包括:按照本核组编号获取本地存储中与所述本核组编号具有关联关系的本地存储数据;按照本核组编号获取目标异构众核加速卡内其他核组中与所述本核组编号具有关联关系的关联存储数据;将所述本地存储数据与所述关联存储数据组合,生成分块数据并本地存储。如图5所示,该方法包括:
S210、按照本核组编号获取本地存储中与所述本核组编号具有关联关系的本地存储数据。
其中,本地存储数据可以指本核组对应的HBM内存中存储位置与本核组编号具有对应关系的数据。示例性的,若本核组编号为1,HBM内存中包含四段存储数据,则与本核组编号具有关联关系的本地存储数据则可以为第二段存储数据,即可以为编号为1的存储数据。
在一个可选的实施方式中,在所述按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互之前,还包括:若存在输入数据,通过各个本核组的目标本组核心将各本核组的标记位更新为第一标识;若各本核组的标记位均更新为第一标识,执行核组内同步操作。
其中,标记位可以指表示本核组当前状态的标识。示例性的,可以利用数字0或1进行表示。目标本组核心可以指本核组中执行标记位修改的本组核心。示例性的,可以为编号为零的本组核心。第一标识可以指表示本核组存入数据的状态位。示例性的,可以为1。核组内同步操作可以指将本核组当前存入的数据下发至各个本组核心的操作。
具体的,当有新的输入数据存入至各本核组时,各个本核组的零号核可以修改目标异构众核加速卡中交叉段HBM上的各本核组的标记位,表示本核组的数据已到位可以进行后续操作,并且可以在交叉段HBM上读取其他核组的标记位,再检查其他核组的标记位也更新为第一标识后,则表明所有本核组的数据均已到位。由此,可以将各个本核组的数据再分发给各个本组核心,完成核组内同步操作,可以保证各个本组核心都不会在数据到达之前进入下一步操作。
S220、按照本核组编号获取目标异构众核加速卡内其他核组中与所述本核组编号具有关联关系的关联存储数据。
其中,关联存储数据可以指目标异构众核加速卡内其他核组对应的HBM内存中存储位置与本核组编号具有对应关系的数据。示例性的,若本核组编号为1,若其他核组对应的HBM内存中均包含四段存储数据,则与本核组编号具有关联关系的关联存储数据则可以为各个第二段存储数据,即可以为各个编号为1的存储数据。
S230、将所述本地存储数据与所述关联存储数据组合,生成分块数据并本地存储。
具体的,将与本核组编号具有关联关系的本地存储数据和关联存储数据组合,由此可以将本核组对应的存储数据进行纵向分块,为后续的全规约操作提供有效的基础。
S240、依据本核组内目标核心数量将所述分块数据下发至本核组内的本组核心。
其中,目标核心数量可以指本核组内部的核心数量。通常,异构众核加速卡中各核组均包含32个核心。本组核心可以指本核组中的核心。
具体的,在本核组得到分块数据后,可以按照本核组内目标核心数量进行分块数据的切分,并将各个切分数据按照本核组内本组核心的编号分发给本核组内的本组核心。由此,为后续本组核心的全规约操作提供有效的基础。
S250、通过本组核心全规约操作所述分块数据,得到全规约结果。
具体的,各个本组核心在得到切分数据之后,分别进行全规约操作,生成全规约结果。
S260、通过存储器直接访问操作将所述全规约结果写入目标异构众核加速卡内其他核组。
其中,存储器直接访问(Direct Memory Access,DMA)可以指将全规约结果从本核组对应的HBM内存复制到其他核组对应的HBM内存,实现高速数据传输的操作。
在一个可选的实施方式中,在所述将所述全规约结果写入目标异构众核加速卡内其他核组,完成数据同步之后,还包括:通过各个本核组的目标本组核心将各本核组的标记位更新为第二标识,并确定目标异构众核加速卡内其他核组的标记位更新为第二标识。
其中,第二标识可以指表示本核组完成全规约操作的状态位。示例性的,可以为0。具体的,在本核组完成全规约操作并将全规约结果写入目标异构众核加速卡内其他核组后,各个本核组的零号核心需要修改本核组的标记位,标记本核组完成了所有的操作,并且在交叉段HBM上读取其他核组的标记位,检查其他核组的标记位是否也更新为第二标识,以明确其他核组也完成了相关操作。
在一个可选的实施方式中,在所述确定目标异构众核加速卡内其他核组的标记位更新为第二标识之后,还包括:在各本核组内部执行核组内同步操作,以释放本核组内的各本组核心。具体的,在通过各个本核组的目标本组核心将各本核组的标记位更新为第二标识,并确定目标异构众核加速卡内其他核组的标记位更新为第二标识之后,还需要在各个本核组内部进行同步操作,保证所有的数据已到位,各个本组核心可以进行下一步操作。
本发明实施例的技术方案,通过按照本核组编号获取本地存储中与本核组编号具有关联关系的本地存储数据,并按照本核组编号获取目标异构众核加速卡内其他核组中与本核组编号具有关联关系的关联存储数据,再将本地存储数据与关联存储数据组合,生成分块数据并本地存储;进而,依据本核组内目标核心数量将分块数据下发至本核组内的本组核心,并通过本组核心全规约操作分块数据,得到全规约结果;最后,通过存储器直接访问操作将全规约结果写入目标异构众核加速卡内其他核组,解决了核组内核心的工作容易被打断,全规约操作的带宽较低的问题,能够减少异构众核加速卡内部的数据同步流程,保证了核组内核心的工作连续性,提高了全规约操作的带宽。
图6所示为根据本发明实施例提供的一种可选的基于异构众核加速卡的数据同步方法的流程图。具体的,当存在新的输入数据时,首先,通过各个核组的零号核修改交叉段HBM上的各本核组的标记位为第一标识,并确定其他核组的标记位均更新为第一标识,执行核组内同步操作;之后,按照本核组编号获取本地存储中与本核组编号具有关联关系的本地存储数据,按照本核组编号获取目标异构众核加速卡内其他核组中与本核组编号具有关联关系的关联存储数据,并将本地存储数据与关联存储数据组合,生成分块数据进行本地存储;进而,依据本核组内目标核心数量将分块数据下发至本核组内的本组核心,通过本组核心全规约操作分块数据,得到全规约结果;进一步,将全规约结果写入目标异构众核加速卡内其他核组,完成数据同步;最后,通过各个本核组的目标本组核心将各本核组的标记位更新为第二标识,并确定目标异构众核加速卡内其他核组的标记位更新为第二标识,以及,在各本核组内部执行核组内同步操作,以释放本核组内的各本组核心。
实施例三
图7为本发明实施例三提供的一种基于异构众核加速卡的数据同步装置的结构示意图。如图7所示,该装置包括:数据分块模块310、全规约模块320及数据写入模块330;
其中,数据分块模块310,用于按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储;
全规约模块320,用于全规约操作所述分块数据,得到全规约结果;
数据写入模块330,用于将所述全规约结果写入目标异构众核加速卡内其他核组,完成数据同步。
本发明实施例的技术方案,通过按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储;进而,全规约操作分块数据,得到全规约结果;最后,将全规约结果写入目标异构众核加速卡内其他核组,完成数据同步,解决了核组内核心的工作容易被打断,全规约操作的带宽较低的问题,能够减少异构众核加速卡内部的数据同步流程,保证了核组内核心的工作连续性,提高了全规约操作的带宽。
可选的,数据分块模块310具体可以用于:
按照本核组编号获取本地存储中与所述本核组编号具有关联关系的本地存储数据;
按照本核组编号获取目标异构众核加速卡内其他核组中与所述本核组编号具有关联关系的关联存储数据;
将所述本地存储数据与所述关联存储数据组合,生成分块数据并本地存储。
可选的,全规约模块320具体可以用于:
依据本核组内目标核心数量将所述分块数据下发至本核组内的本组核心;
通过本组核心全规约操作所述分块数据,得到全规约结果。
可选的,基于异构众核加速卡的数据同步装置还可以包括:前处理模块,用于在所述按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互之前,若存在输入数据,通过各个本核组的目标本组核心将各本核组的标记位更新为第一标识;若各本核组的标记位均更新为第一标识,执行核组内同步操作。
可选的,基于异构众核加速卡的数据同步装置还可以包括:第一后处理模块,用于在所述将所述全规约结果写入目标异构众核加速卡内其他核组,完成数据同步之后,通过各个本核组的目标本组核心将各本核组的标记位更新为第二标识,并确定目标异构众核加速卡内其他核组的标记位更新为第二标识。
可选的,基于异构众核加速卡的数据同步装置还可以包括:第二后处理模块,用于在所述确定目标异构众核加速卡内其他核组的标记位更新为第二标识之后,在各本核组内部执行核组内同步操作,以释放本核组内的各本组核心。
可选的,数据写入模块330具体可以用于:通过存储器直接访问操作将所述全规约结果写入目标异构众核加速卡内其他核组。
本发明实施例所提供的基于异构众核加速卡的数据同步装置可执行本发明任意实施例所提供的基于异构众核加速卡的数据同步方法,具备执行方法相应的功能模块和有益效果。
实施例四
图8示出了可以用来实施本发明的实施例的电子设备410的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图8所示,电子设备410包括至少一个处理器420,以及与至少一个处理器420通信连接的存储器,如只读存储器(ROM)430、随机访问存储器(RAM)440等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器420可以根据存储在只读存储器(ROM)430中的计算机程序或者从存储单元490加载到随机访问存储器(RAM)440中的计算机程序,来执行各种适当的动作和处理。在RAM 440中,还可存储电子设备410操作所需的各种程序和数据。处理器420、ROM 430以及RAM440通过总线450彼此相连。输入/输出(I/O)接口460也连接至总线450。
电子设备410中的多个部件连接至I/O接口460,包括:输入单元470,例如键盘、鼠标等;输出单元480,例如各种类型的显示器、扬声器等;存储单元490,例如磁盘、光盘等;以及通信单元4100,例如网卡、调制解调器、无线通信收发机等。通信单元4100允许电子设备410通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器420可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器420的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器420执行上文所描述的各个方法和处理,例如基于异构众核加速卡的数据同步方法。
该方法包括:
按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储;
全规约操作所述分块数据,得到全规约结果;
将所述全规约结果写入目标异构众核加速卡内其他核组,完成数据同步。
在一些实施例中,基于异构众核加速卡的数据同步方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元490。在一些实施例中,计算机程序的部分或者全部可以经由ROM 430和/或通信单元4100而被载入和/或安装到电子设备410上。当计算机程序加载到RAM 440并由处理器420执行时,可以执行上文描述的基于异构众核加速卡的数据同步方法的一个或多个步骤。备选地,在其他实施例中,处理器420可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于异构众核加速卡的数据同步方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (9)
1.一种基于异构众核加速卡的数据同步方法,其特征在于,应用于异构众核加速卡的核组,异构众核加速卡中包含顺序编号的多个核组,每个核组包含在核组内顺序编号的多个核心,该方法包括:
按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储;
全规约操作所述分块数据,得到全规约结果;
将所述全规约结果写入目标异构众核加速卡内其他核组,完成数据同步;
其中,所述按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储,包括:
按照本核组编号获取本地存储中与所述本核组编号具有关联关系的本地存储数据;
按照本核组编号获取目标异构众核加速卡内其他核组中与所述本核组编号具有关联关系的关联存储数据;
将所述本地存储数据与所述关联存储数据组合,生成分块数据并本地存储。
2.根据权利要求1所述的方法,其特征在于,所述全规约操作所述分块数据,得到全规约结果,包括:
依据本核组内目标核心数量将所述分块数据下发至本核组内的本组核心;
通过本组核心全规约操作所述分块数据,得到全规约结果。
3.根据权利要求1所述的方法,其特征在于,在所述按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互之前,还包括:
若存在输入数据,通过各个本核组的目标本组核心将各本核组的标记位更新为第一标识;
若各本核组的标记位均更新为第一标识,执行核组内同步操作。
4.根据权利要求1所述的方法,其特征在于,在所述将所述全规约结果写入目标异构众核加速卡内其他核组,完成数据同步之后,还包括:
通过各个本核组的目标本组核心将各本核组的标记位更新为第二标识,并确定目标异构众核加速卡内其他核组的标记位更新为第二标识。
5.根据权利要求4所述的方法,其特征在于,在所述确定目标异构众核加速卡内其他核组的标记位更新为第二标识之后,还包括:
在各本核组内部执行核组内同步操作,以释放本核组内的各本组核心。
6.根据权利要求1所述的方法,其特征在于,所述将所述全规约结果写入目标异构众核加速卡内其他核组,包括:
通过存储器直接访问操作将所述全规约结果写入目标异构众核加速卡内其他核组。
7.一种基于异构众核加速卡的数据同步装置,其特征在于,包括:
数据分块模块,用于按照本核组编号及目标核组数量与目标异构众核加速卡内其他核组进行数据交互,获取分块数据进行本地存储;
全规约模块,用于全规约操作所述分块数据,得到全规约结果;
数据写入模块,用于将所述全规约结果写入目标异构众核加速卡内其他核组,完成数据同步;
其中,数据分块模块具体用于:
按照本核组编号获取本地存储中与所述本核组编号具有关联关系的本地存储数据;
按照本核组编号获取目标异构众核加速卡内其他核组中与所述本核组编号具有关联关系的关联存储数据;
将所述本地存储数据与所述关联存储数据组合,生成分块数据并本地存储。
8.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的基于异构众核加速卡的数据同步方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-6中任一项所述的基于异构众核加速卡的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310686282.4A CN116431561B (zh) | 2023-06-12 | 2023-06-12 | 基于异构众核加速卡的数据同步方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310686282.4A CN116431561B (zh) | 2023-06-12 | 2023-06-12 | 基于异构众核加速卡的数据同步方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116431561A true CN116431561A (zh) | 2023-07-14 |
CN116431561B CN116431561B (zh) | 2023-08-18 |
Family
ID=87085836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310686282.4A Active CN116431561B (zh) | 2023-06-12 | 2023-06-12 | 基于异构众核加速卡的数据同步方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431561B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1758229A (zh) * | 2005-10-28 | 2006-04-12 | 中国人民解放军国防科学技术大学 | 异构多核微处理器局部空间共享存储方法 |
CN112559197A (zh) * | 2019-09-10 | 2021-03-26 | 无锡江南计算技术研究所 | 基于异构众核处理器的卷积计算数据重用方法 |
CN112799726A (zh) * | 2021-01-26 | 2021-05-14 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法及相关产品 |
-
2023
- 2023-06-12 CN CN202310686282.4A patent/CN116431561B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1758229A (zh) * | 2005-10-28 | 2006-04-12 | 中国人民解放军国防科学技术大学 | 异构多核微处理器局部空间共享存储方法 |
CN112559197A (zh) * | 2019-09-10 | 2021-03-26 | 无锡江南计算技术研究所 | 基于异构众核处理器的卷积计算数据重用方法 |
CN112799726A (zh) * | 2021-01-26 | 2021-05-14 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法及相关产品 |
Also Published As
Publication number | Publication date |
---|---|
CN116431561B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112540731B (zh) | 数据的追加写方法、装置、设备、介质和程序产品 | |
CN116662038B (zh) | 基于共享内存的工业信息检测方法、装置、设备及介质 | |
CN113127382A (zh) | 用于追加写的数据读取方法、装置、设备和介质 | |
CN115631273A (zh) | 一种大数据的去重方法、装置、设备及介质 | |
CN117236236B (zh) | 一种芯片设计数据管理方法、装置、电子设备及存储介质 | |
CN116431561B (zh) | 基于异构众核加速卡的数据同步方法、装置、设备及介质 | |
CN116303141A (zh) | 一种数据传输方法、装置、设备及介质 | |
CN114564149B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN116185389A (zh) | 一种代码生成方法、装置、电子设备及介质 | |
CN112783574B (zh) | 应用程序开发方法、装置、设备和存储介质 | |
CN115617732B (zh) | Apb总线结构、片上系统、车辆及访问方法 | |
EP3907648A2 (en) | Text prediction method and apparatus, device and storage medium | |
CN116107763B (zh) | 一种数据发送方法、装置、设备及存储介质 | |
CN117193726A (zh) | 一种软件的并行设计方法、装置、电子设备以及介质 | |
CN115599307B (zh) | 数据存取方法、装置、电子设备、存储介质 | |
CN116185670B (zh) | 内存间的数据交换方法、装置、电子设备及存储介质 | |
CN116579914B (zh) | 一种图形处理器引擎执行方法、装置、电子设备及存储介质 | |
CN115599838B (zh) | 基于人工智能的数据处理方法、装置、设备及存储介质 | |
CN114968535A (zh) | 一种数据传输方法、装置、电子设备及介质 | |
CN116226251A (zh) | 一种数据导出方法、装置、电子设备和存储介质 | |
CN116126249A (zh) | 一种数据读取方法、装置、电子设备及存储介质 | |
CN117331944A (zh) | 一种数据库表生成方法、装置、设备及存储介质 | |
CN117172170A (zh) | 一种保持时间违例的修复方法、装置、设备及介质 | |
CN116701260A (zh) | 一种访问方法、装置、电子设备及可读存储介质 | |
CN116204453A (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 |