CN116243978A - 分布式训练中的数据规约方法、装置、介质和训练系统 - Google Patents

分布式训练中的数据规约方法、装置、介质和训练系统 Download PDF

Info

Publication number
CN116243978A
CN116243978A CN202310061723.1A CN202310061723A CN116243978A CN 116243978 A CN116243978 A CN 116243978A CN 202310061723 A CN202310061723 A CN 202310061723A CN 116243978 A CN116243978 A CN 116243978A
Authority
CN
China
Prior art keywords
data
instruction
protocol
chip
external 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.)
Pending
Application number
CN202310061723.1A
Other languages
English (en)
Inventor
刘伟
张亚林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Enflame Technology Co ltd
Original Assignee
Shanghai Enflame Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Enflame Technology Co ltd filed Critical Shanghai Enflame Technology Co ltd
Priority to CN202310061723.1A priority Critical patent/CN116243978A/zh
Publication of CN116243978A publication Critical patent/CN116243978A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种分布式训练中的数据规约方法、装置、介质和训练系统。该方法多核芯片中贴近外部存储器设置的原子操作模块执行,包括:每当接收到片上计算核或片外计算核通过DMA模块发送的数据规约指令时,将数据规约指令存储于指令缓存区中;从指令缓存区中分别读取各数据规约指令,并根据各数据规约指令中包括的数据规约描述信息,执行针对外部存储器的数据读写原子操作。本发明实施例的技术方案,通过贴近外部存储器设置的原子操作模块执行原子操作以实现数据规约,在减少了数据规约的控制开销的同时,避免了数据规约的过程中产生的逻辑错误,提升了数据规约的准确率和数据规约操作的实现效率。

Description

分布式训练中的数据规约方法、装置、介质和训练系统
技术领域
本发明涉及芯片领域,尤其涉及一种分布式训练中的数据规约方法、装置、介质和训练系统。
背景技术
人工智能训练中常会包含数据规约的分布式训练场景,即多个计算核各自独立做计算产生多份结果,数据规约把多份结果更新到原有数据上,例如用求和的方式最终产生一份数据。
现有技术在实现分布式训练场景中的数据规约时,一般在一张计算加速卡的多个芯片内运行多个计算核,或者在多张计算加速卡的多个芯片内运行多个计算核,多个计算核同时对同一个存储器器地址中存储的数据进行更新。
发明人在实现本发明的过程中,发现现有技术存在如下缺陷:在多个计算核同时对同一个存储器地址中存储的数据进行更新时,如果不做计算核之间的顺序控制,不同计算核各自从存储器地址中读取数据,更新后再写回至该存储器地址中,可能会产生逻辑错误;如果对计算核之间的数据更新的顺序做出控制,例如,控制多个计算核串行更新数据,会造成较大的控制开销且对计算核的性能也会造成影响。
发明内容
本发明实施例提供了一种分布式训练中的数据规约方法、装置、介质和训练系统,以提供一种应用于分布式训练场景中的新的数据规约方式,减少数据规约操作的控制开销。
第一方面,本发明实施例提供了一种分布式训练中的数据规约方法,该方法由多核芯片中贴近外部存储器设置的原子操作模块执行,包括:
每当接收到片上计算核或片外计算核通过DMA(Direct Memory Access,直接存储器访问)模块发送的数据规约指令时,将数据规约指令存储于指令缓存区中;
从指令缓存区中分别读取各数据规约指令,并根据各数据规约指令中包括的数据规约描述信息,执行针对外部存储器的数据读写原子操作。
第二方面,本发明实施例提供了一种分布式训练中的数据规约装置,该装置由多核芯片中贴近外部存储器设置的原子操作模块执行,包括:
数据规约指令存储模块,用于每当接收到片上计算核或片外计算核通过DMA模块发送的数据规约指令时,将数据规约指令存储于指令缓存区中;
数据规约指令原子执行模块,用于从指令缓存区中分别读取各数据规约指令,并根据各数据规约指令中包括的数据规约描述信息,执行针对外部存储器的数据读写原子操作。
第三方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的分布式训练中的数据规约方法。
第四方面,本发明实施例提供了一种分布式训练系统,该系统包括:
至少一个多核芯片,每个多核芯片中包括:多个计算核、外部存储器和贴近外部存储器设置的原子操作模块;
其中,每个计算核中包括计算单元、内部存储器以及DMA模块;同一多核芯片内的各计算核中的DMA模块通过片内总线与片内的原子操作模块通信,不同多核芯片内的各计算核中的DMA模块通过片外总线与片外的原子操作模块通信;
所述计算核,用于在分布式训练中,通过自身的DMA模块向片内的原子操作模块或者片外的原子操作模块发送数据规约指令;
所述原子操作模块,用于执行如本发明任一实施例所述的分布式训练中的数据规约方法。
本发明实施例的技术方案,通过多核芯片中贴近外部存储器设置的原子操作模块执行在每当接收到片上计算核或片外计算核通过DMA模块发送的数据规约指令时,将数据规约指令存储于指令缓存区中,之后从指令缓存区中分别读取各数据规约指令,并根据读取的数据规约指令执行针对外部存储器的数据读写原子操作的技术手段,提供了一种无需顺序控制的分布式数据规约实现方式,在减少了数据规约操作的控制开销的同时,避免了在数据规约的过程中产生逻辑错误,提升了数据规约操作的准确率和实现效率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是现有技术中的一种分布式训练中的数据规约系统的结构示意图;
图1b是根据本发明实施例一提供的一种分布式训练中的数据规约方法的流程图;
图2是根据本发明实施例二提供的一种分布式训练中的数据规约方法的流程图;
图3是根据本发明实施例三提供的一种分布式训练中的数据规约装置的结构示意图;
图4是实现本发明实施例一种分布式训练中的数据规约方法的电子设备的结构示意图;
图5是根据本发明实施例五提供的一种分布式训练系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解本发明各实施例,首先将现有技术的分布式数据规约过程进行简单描述。
具体的,在图1a中示出了一种现有技术中的一种分布式训练中的数据规约系统的结构示意图。如图1a所示,一个人工智能芯片中包括有两个计算核,计算核1和计算核2。计算核1和计算核2分别独立的执行分布式训练中的设定计算任务。计算核1和计算核分别完成各自的计算任务后,需要分别将计算结果写入至芯片存储器的同一存储地址,也即,执行数据规约操作。现有技术中,当计算核1和计算核2同时对存储器中相同存储地址的数据a做加1(计算核的计算结果)的数据规约操作时,在不做顺序控制的情况下,如果数据a的初始值为1,则完成数据规约操作后得到的数据a的更新值会为2,和期望值3不同,即所述数据规约操作发生了逻辑错误。
也即,计算核1和计算核2在进行数据a的读取时,均读取到了a的初始值1,计算核1和计算核2在分别对初始值1进行+1操作后,会2次将a=2的结果重新写入至存储器中。也即,如果在分布式数据规约过程中不进行各计算核间的顺序控制,会产生逻辑错误。为了避免上述逻辑错误的发生,需要在计算核1和计算核2之间进行顺序控制,例如,规定计算核1和计算核2按照串行顺序分别更新数据a,上述顺序控制会造成较大的控制开销,且对计算核的性能也会造成影响。
实施例一
图1b为本发明实施例一提供的一种分布式训练中的数据规约方法的流程图,本实施例可适用于在分布式训练场景中,由多个计算核共同对同一存储地址的数据执行数据规约操作的情况,该方法可以由分布式训练中的数据规约装置来执行,该分布式训练中的数据规约装置可以采用硬件和/或软件的形式实现,该分布式训练中的数据规约装置可配置于多核芯片中贴近外部存储器设置的原子操作模块中。如图1b所示,该方法包括:
S110、每当接收到片上计算核或片外计算核通过DMA模块发送的数据规约指令时,将数据规约指令存储于指令缓存区中。
如前所述,本发明各实施例的方法由多核芯片中贴近外部存储器设置的原子操作模块执行,也即,针对一个包含多个计算核以及一个外部存储器的多核芯片,需要额外设置一个硬件结构,该硬件结构为贴近该外部存储器设置的原子操作模块,通过使用各种逻辑门电路对该原子操作模块进行设计,该原子操作模块可以用于实现本发明各实施例所述的方法。
相应的,在分布式训练场景中进行数据规约操作时,可以仅使用同一多核芯片中的多个计算核共同实现数据规约操作,并将数据规约结果存储至该多核芯片的外部存储器中;或者,还可以同时使用多个多核芯片中的多个计算核共同实现数据规约操作,并将该数据规约结果存储至任一多核芯片的外部存储器中。
针对上述两种可选的应用场景,本发明实施例中的原子操作模块除了可以接收到所在多核芯片上的计算核(片上计算核)发送的数据规约指令之外,还可以接收到其他多核芯片上的计算核(片外计算核)发送的数据规约指令。
具体的,该数据规约指令,是指由多个片内计算核或者片外计算核共同执行的,用于使用多份数据对任一多核芯片的外部存储器中设定存储地址中存储的数据进行数据更新的指令。
在本实施例中,上述数据规约指令由片上计算核或片外计算核上配置的DMA模块发送至原子操作模块。也即,一个多核芯片上包括的DMA模块与该多核芯片上包括的计算核数量一一对应。例如,如果一个多核芯片中包括计算核1和计算和2,则在该计算核1上配置第一DMA模块,该计算核2上配置第二DMA模块。
其中,DMA模块是一些计算机总线架构提供的功能,它能使数据从附加设备直接发送到计算机主板的内存上;进一步的,所述DMA模块可以被软件编程以执行数据搬运,降低计算核的数据搬运开销。
在本实施例中,为了保证分布式数据规约过程不产生逻辑错误,需要该原子操作模块依次执行各数据规约指令,也即,每个数据规约指令均以原子操作的形式执行。为了保证各数据规约指令的逐个指令,需要在原子操作模块中设置指令缓存区。
其中,所述指令缓存区以队列的形式对接收的至少一条数据规约指令进行存储;其中,所述指令缓存区的队列深度可以根据实际情况进行预设,并一般由数据读写原子操作的吞吐量需求确定。具体的,所述指令缓存区在缓存数据规约指令时,按照接收指令的时间顺序,将所述数据规约指令依次存放至队列中。
换句话说,在本实施例中,每当原子操作模块接收到数据规约指令时,并不是直接执行该数据规约指令,而是将上述各数据规约指令依次存储在一个队列形式的指令缓存区中,以进行对数据规约指令的排序,为后续以原子操作的形式执行各数据规约指令做准备。
S120、从指令缓存区中分别读取各数据规约指令,并根据各数据规约指令中包括的数据规约描述信息,执行针对外部存储器的数据读写原子操作。
在本实施例中,由于原子操作模块按照数据规约指令的接收时间顺序依次将各数据规约指令存放至指令缓存区中,即最先接收到的数据规约指令存储在在指令缓存区中队列的前端。
相应的,在原子操作模块从指令缓存区中分别读取各数据规约指令时,依照队列顺序进行读取操作,即最先存入的数据规约指令被最先读取并处理。进一步的,在根据所述数据规约指令中包括的数据规约描述信息,执行针对外部存储器的数据读写原子操作后,执行完成的数据规约指令从指令缓存区的队列中删除。
其中,数据规约描述信息可以包括:数据地址、规约操作数与规约逻辑。具体的,所述数据地址定义了所述数据规约操作所需更新的数据在设定外部存储器中的存储地址。其中,该设定外部存储器是指在分布式训练过程中所使用的一个或者多个多核芯片中的外部存储器。所述规约操作数定义了执行数据规约操作时,需要与外部存储器中所需更新的数据进行计算的操作数。所述规约逻辑定义了该规约操作数对所需更新的数据所执行的具体的数据更新逻辑,例如,加、减、位与操作、在规约操作数和外部存储器中所需更新的数据中取较大值或者较小值等简单数据计算逻辑。
示例性的,在本实施例中,假设某一计算核需要对多核芯片A上的外部存储器a中数据地址为0130H的数据进行加1操作。则该计算核生成的数据规约指令A中包括的数据地址为:外部存储器a:0130H、规约操作数为:1,规约逻辑为:加法操作。
其中,数据读写原子操作,可以理解为原子操作模块针对每个数据规约指令对贴近设置的外部存储器所执行的操作。也即,从外部存储器中的数据地址处获取数据,并按照规约逻辑将该数据与规约操作数进行处理得到更新后的数据后,重新将该更新后的数据写回至外部存储器的数据地址。如果指令缓存区中还有对相同数据地址的数据读写原子操作,那么当前的更新数据可以保存在原子操作模块中而暂不写回至外部存储器,以优化原子操作性能。
在本实施例中,所述原子操作为不会被线程调度机制打断的操作,也即,当原子操作模块针对某一个数据规约指令执行的数据读写操作一旦开始,就会一直运行至所述数据读写操作结束,在该数据读写操作运行的过程中不会被切换至其他线程。
在本实施例的一个可选的实施方式中,从指令缓存区中分别读取各数据规约指令,并根据各数据规约指令中包括的数据规约描述信息,执行针对外部存储器的数据读写原子操作,可以包括:
从指令缓存区中读取第一数据规约指令,并从第一数据规约指令中提取第一数据地址、第一规约操作数和第一规约逻辑;从外部存储器中读取与第一数据地址匹配的第一外存数据,并根据第一规约逻辑,对第一外存数据与第一规约操作数进行处理,得到第一处理结果;将第一处理结果重新写回至第一数据地址。
在一个具体的例子中,假设贴近外部存储器B设置的原子操作模块从指令缓存区的队列中依次读取到的第一数据规约指令中包括的第一数据地址为外部存储器B:1032H,第一规约操作数为50,第一规约逻辑为加法操作,则原子操作模块针对该第一数据规约指令执行的数据读写操作具体包括:
从外部存储器B的1032H地址处,读取第一外存数据,例如为8;计算8+50=58后,将58重新写入至外部存储器B的1032H地址处。
可选的,第一数据地址对应连续地址范围或者离散地址范围;和/或第一规约操作数为整型数据或者浮点数据。其中,所述连续地址范围可以包含多个连续的地址,示例性的,所述连续地址范围可以为某一外部存储器的1-8位共九个地址;进一步的,所述离散地址范围可以包含一个或多个不连续的地址,示例性的,所述离散地址范围可以为某一外部存储器的1、3、5位共三个地址。
在本实施例中,片上计算核或者片外计算核通过DMA模块发送的数据规约指令,由于DMA模块发送数据的DMA总线协议灵活可配置,因此,可以支持第一数据规约指令的指令形式也更加多样。
具体的,如果第一数据地址对应连续地址范围,则可以在第一数据规约指令中直接指定首尾地址,并顺序指定在该首尾地址限定的地址空间中,与每个地址分别对应的规约操作数。相应的,第一数据规约指令的指令格式可以为:start addr,end addr,data1,data2,……。
如果第一数据地址对应离散地址范围,则可以在第一数据指令中依次指定每个离散地址,并指定与每个离散地址分别对应的规约操作数。第一数据规约指令的指令格式可以为:addr1,data1,addr2,data2,……。
当然,可以理解的是,该第一数据地址还可以同时对应连续地址范围以及离散地址范围,本实施例对此并不进行限制。
其中,所述整型数据可以为不会包含小数部分的数值型数据,所述浮点数据可以为具有整数部分与小数部分的数值型数据。
同样的,由于DMA总线协议支持的可配置的数据位数较多,因此,第一规约操作数除了可以为整型数据之外,还可以为数据位宽更宽的浮点数据。进而,本发明各实施例的技术方案所能适用的分布式训练场景也更丰富,方案的通用性也更强。
需要注意的是,在本实施例中,不同计算核中的DMA模块之间独立运行,不需要软件协调执行顺序。在本实施例中,由于在每个多核芯片上的原子操作模块上规定了不同数据规约指令的执行顺序,因此,无需再像现有技术的方案一样为不同计算核中的DMA模块设置执行顺序,进而,不同计算核中的DMA模块之间可以彼此独立的运行,无需再使用复杂的软件控制逻辑协调各计算核的执行顺序。
本发明实施例的技术方案,通过多核芯片中贴近外部存储器设置的原子操作模块执行在每当接收到片上计算核或片外计算核通过DMA模块发送的数据规约指令时,将数据规约指令存储于指令缓存区中,之后从指令缓存区中分别读取各数据规约指令,并根据读取的数据规约指令执行针对外部存储器的数据读写原子操作的技术手段,提供了一种无需顺序控制的分布式数据规约实现方式,在减少了数据规约操作的控制开销的同时,避免了在数据规约的过程中产生逻辑错误,提升了数据规约操作的准确率和实现效率。
实施例二
图2为本发明实施例二提供的一种分布式训练中的数据规约方法的流程图,本实施例是上述各实施例的细化,在本实施例中,将从指令缓存区中分别读取各数据规约指令,并根据各数据规约指令中包括的数据规约描述信息,执行针对外部存储器的数据读写原子操作的步骤具体化为:从指令缓存区中读取第二数据规约指令,并从第二数据规约指令中提取第二数据地址、第二规约操作数和第二规约逻辑;从外部存储器中读取与第二数据地址匹配的第二外存数据,并根据第二规约逻辑,对第二外存数据与第二规约操作数进行处理,得到第二处理结果;检测指令缓存区中是否存储与第二数据地址匹配的至少一个关联数据规约指令;若是,则分别执行每个关联数据规约指令对第二处理结果进行至少一次数据更新后,将更新得到的第二处理结果重新写回至第二数据地址中。
相应的,如图2所示,该方法具体可以包括:
S210、每当接收到片上计算核或片外计算核通过DMA模块发送的数据指令时,检测所述数据指令中是否包括原子操作标识:若是,执行S220;若否,执行S230。
其中,所述数据指令可以为计算核能够产生的任一种对外部存储器进行数据读写的数据指令。
可以理解的是,DMA模块本身具有针对外部存储器的常规数据读写功能,计算核可以基于所配置的DMA模块对外部存储器执行常规的数据读写操作,并不需要原子操作模块代为执行,这会降低原子操作模块的执行效率,并大大削弱DMA模块本身的处理功能。
相应的,在本实施例中,将DMA模块所发出的数据指令进行了区分,如果上述数据指令为数据规约指令,则由原子操作模块对该数据规约指令进行处理;若干上述数据指令不为数据规约指令,则可以直接外部存储器响应该数据指令,以减轻原子操作模块的执行压力,提高原子操作模块的执行效率。
可选的,可以通过在数据指令插入或者不插入原子操作标识的方式,识别一个数据指令是否为数据规约指令。
在本实施例中,可以基于DMA总线协议,在DMA发送的数据指令中配置一个原子操作标识位,如果一个数据指令中的原子操作标识位为1,则可以将该数据指令直接识别为数据规约指令。
S220、将接收到的数据指令作为数据规约指令存储于指令缓存区中,执行S240。
其中,所述数据指令为带有原子操作标识的数据指令,即需要进行原子操作的数据规约指令。
S230、若否,则将接收到的数据指令直接转发至外部存储器。
其中,当所述数据指令为不包含原子操作标识的数据指令时,可以由原子操作模块直接将该数据指令透传至贴近设置的外部存储器,由外部存储器直接响应所述数据指令。
S240、从指令缓存区中读取第二数据规约指令,并从第二数据规约指令中提取第二数据地址、第二规约操作数和第二规约逻辑。
其中,第二数据地址可以对应连续地址范围或者离散地址范围,同时,该第二规约操作数可以为整型数据或者浮点数据。
S250、从外部存储器中读取与第二数据地址匹配的第二外存数据,并根据第二规约逻辑,对第二外存数据与第二规约操作数进行处理,得到第二处理结果。
示例性的,假设贴近外部存储器B设置的原子操作模块从指令缓存区的队列中依次读取到的第二数据规约指令b中包括的第二数据地址为外部存储器B:1032H,第一规约操作数为50,第二规约逻辑为加法操作,则原子操作模块针对该第二数据规约指令b执行的数据读写操作具体包括:
从外部存储器B的1032H地址处,读取第二外存数据,例如为8;计算8+50=58作为当前的第二处理结果。
S260、检测指令缓存区中是否存储与第二数据地址匹配的至少一个关联数据规约指令。
示例性的,在本实施例中,通过检查指令缓存区中当前存储的其他数据规约指令中的数据地址,可以检测出指令缓存区中是否存储与第二数据地址匹配的至少一个关联数据规约指令。
续前例,原子操作模块通过读取指令缓存区中当前存储的各数据规约指令中包括的数据地址,如果确定数据规约指令c中包括的数据地址同样为外部存储器B:1032H,与前例中第二数据规约指令b中包括的第二数据地址相同,则可以将该数据规约指令c作为第二数据规约指令b的一个关联数据规约指令。
S270、分别执行每个关联数据规约指令对第二处理结果进行至少一次数据更新后,将更新得到的第二处理结果重新写回至第二数据地址中。
具体的,所述分别执行每个关联数据规约指令对第二处理结果进行至少一次数据更新,可以包括:根据所述关联数据规约指令在指令缓存区队列中的缓存顺序,对所述第二处理结果进行依次更新。
示例性的,在S260的基础上,所述S260中检测到的关联数据规约指令的规约操作数为100,规约逻辑为加法操作,且根据S250步骤得到当前的第二处理结果为58,则根据规约逻辑,对第二处理结果根据所述关联数据规约指令进行更新,得到更新后的第二处理结果为58+100=158;
进一步的,当所述指令缓存区中全部的关联数据规约指令依照缓存顺序,对所述第二处理结果均进行更新后,可以将最终的更新结果158写入并覆盖至外部存储器B的1032H地址处原有的第二外存数据8,作为第二数据地址的新的第二外存数据。
需要注意的是,所述指令缓存区中可能存在多于一个与第二数据地址匹配的关联数据规约指令,该情况下所述关联数据指令依照在队列中存储的先后顺序对所述第二处理结果进行更新;容易理解的是,所述第二处理结果的更新次数与所述指令缓存区中的关联数据规约指令的数量相同;在完成全部次数的第二处理结果更新后,将最终得到的更新后的第二处理结果写入并覆盖第二数据地址中原有的第二外存数据,作为当前第二数据地址的新的第二外存数据。
本发明实施例通过检测指令缓存区中是否存储与第二数据地址匹配的至少一个关联数据规约指令,并根据结果进行第二处理结果更新与输出处理,减少了规约结果被写入外部存储器的次数,在提高了规约计算速度的同时,避免了由于重复写入而产生的数据错误与逻辑错误。
本发明实施例的技术方案,由多核芯片中贴近外部存储器设置的原子操作模块执行,原子操作模块每当接收到片上计算核或片外计算核通过DMA模块发送的数据规约指令时,将数据规约指令存储于指令缓存区中,之后从指令缓存区中读取第二数据规约指令,从外部存储器中读取与第二数据地址匹配的第二外存数据,并根据第二数据规约指令,对第二外存数据与第二规约操作数进行处理,得到第二处理结果,最后检测指令缓存区中是否存储与第二数据地址匹配的至少一个关联数据规约指令,并根据结果进行第二处理结果更新与输出处理,减少了规约结果被写入外部存储器的次数与数据规约的控制开销,同时避免了数据规约的过程中产生的逻辑错误,提升了数据规约的准确率,提高了数据规约的工作效率。
实施例三
图3为本发明实施例三提供的一种分布式训练中的数据规约装置的结构示意图。如图3所示,该装置包括:
数据规约指令存储模块310,用于每当接收到片上计算核或片外计算核通过DMA模块发送的数据规约指令时,将数据规约指令存储于指令缓存区中;
数据规约指令原子执行模块320,用于从指令缓存区中分别读取各数据规约指令,并根据各数据规约指令中包括的数据规约描述信息,执行针对外部存储器的数据读写原子操作。
本发明实施例的技术方案,通过多核芯片中贴近外部存储器设置的原子操作模块执行在每当接收到片上计算核或片外计算核通过DMA模块发送的数据规约指令时,将数据规约指令存储于指令缓存区中,之后从指令缓存区中分别读取各数据规约指令,并根据读取的数据规约指令执行针对外部存储器的数据读写原子操作的技术手段,提供了一种无需顺序控制的分布式数据规约实现方式,在减少了数据规约操作的控制开销的同时,避免了在数据规约的过程中产生逻辑错误,提升了数据规约操作的准确率和实现效率。
在上述实施例的基础上,数据规约指令原子执行模块320可以包括:
第一数据读取单元,用于从指令缓存区中读取第一数据规约指令,并从第一数据规约指令中提取第一数据地址、第一规约操作数和第一规约逻辑;
第一处理结果获取单元,用于从外部存储器中读取与第一数据地址匹配的第一外存数据,并根据第一规约逻辑,对第一外存数据与第一规约操作数进行处理,得到第一处理结果;
第一重写单元,用于将第一处理结果重新写回至第一数据地址。
在上述实施例的基础上,数据规约指令原子执行模块320,还可以包括:
第二数据读取单元,用于从指令缓存区中读取第二数据规约指令,并从第二数据规约指令中提取第二数据地址、第二规约操作数和第二规约逻辑;
第二处理结果获取单元,用于从外部存储器中读取与第二数据地址匹配的第二外存数据,并根据第二规约逻辑,对第二外存数据与第二规约操作数进行处理,得到第二处理结果;
检测单元,用于检测指令缓存区中是否存储与第二数据地址匹配的至少一个关联数据规约指令;
第二重写单元,用于分别执行每个关联数据规约指令对第二处理结果进行至少一次数据更新后,将更新得到的第二处理结果重新写回至第二数据地址中。
在上述实施例的基础上,数据规约指令存储模块310,可以包括:
标识检测单元,用于每当接收到片上计算核或片外计算核通过DMA模块发送的数据指令时,检测所述数据指令中是否包括原子操作标识;
存储单元,用于将接收到的数据指令作为数据规约指令存储于指令缓存区中。
在上述实施例的基础上,存储单元进一步包括:
转发单元,用于将接收到的数据指令直接转发至外部存储器。
本发明实施例所提供的分布式训练中的数据规约装置可执行本发明任意实施例所提供的分布式训练中的数据规约方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如分布式训练中的数据规约方法。
相应的,该方法由多核芯片中贴近外部存储器设置的原子操作模块执行,所述方法包括:每当接收到片上计算核或片外计算核通过DMA模块发送的数据规约指令时,将数据规约指令存储于指令缓存区中;从指令缓存区中分别读取各数据规约指令,并根据各数据规约指令中包括的数据规约描述信息,执行针对外部存储器的数据读写原子操作。
在一些实施例中,分布式训练中的数据规约方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的分布式训练中的数据规约方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行分布式训练中的数据规约方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
实施例五
图5为本发明实施例五提供的一种分布式训练系统的结构示意图。如图5所示,该系统包括:至少一个多核芯片510,每个多核芯片510中包括:多个计算核5110、外部存储器5140和贴近外部存储器5140设置的原子操作模块5130;
其中,每个计算核5110中包括计算单元5111、内部存储器5112以及DMA模块5113;同一多核芯片510内的各计算核5110中的DMA模块5113通过片内总线5120与片内的原子操作模块5130通信,不同多核芯片510内的各计算核5110中的DMA模块5113通过片外总线5150与片外的原子操作模块通信;
所述计算核5110,用于在分布式训练中,通过自身的DMA模块5113向片内的原子操作模块或者片外的原子操作模块发送数据规约指令;
所述原子操作模块5130,用于执行任一实施例所述的分布式训练中的数据规约方法。
如图5所示,为了实现分布式训练,共需使用至少一个多核芯片,图5中以两个多核芯片为例。在每个多核芯片中,分别包括有两个计算核、一个外部存储器,以及与配置在每个计算核中的DMA模块。其中,该分布式训练中的数据规约方法主要包括下述操作流程:
1、计算核执行计算任务,将外部存储器中需要更新数据的数据地址、针对该更新数据所需执行的规约逻辑和计算得到的规约操作数放置在内部存储器中,其中,该数据地址和可以支持续地址范围或者离散地址范围,该规约操作数可以为整型数据或者浮点数据。
2、DMA模块读取内部存储器,获得数据地址、规约逻辑和规约操作数。
3、DMA模块根据数据地址、规约逻辑和规约操作数,构建数据规约指令,并将该数据规约指令发送至与该数据地址匹配的外部存储器对应的原子操作模块,由原子操作模块将该数据规约指令存储至指令缓存区中。
4、原子操作模块在从指令缓存区中获取到该数据规约指令执行时,从外部存储器读取与该数据地址匹配的外存数据。
5、原子操作模块根据规约逻辑、外存数据和规约操作数生成处理结果;
6、原子操作模块如果检测到指令缓存区中存储了与该数据地址匹配的至少一个关联数据规约指令,则分别执行每个关联数据规约指令对该处理结果进行至少一次数据更新后,将最终更新得到的处理结果重新写回至该数据地址中。
7、如果指令缓存区中未存储与第二数据地址匹配的任一关联数据规约指令,则直接将该处理结果重新写回至该数据地址中。
在上述工作流程中,不同计算核中的DMA模块之间独立运行,不需要软件协调执行顺序。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种分布式训练中的数据规约方法,其特征在于,由多核芯片中贴近外部存储器设置的原子操作模块执行,所述方法包括:
每当接收到片上计算核或片外计算核通过直接存储器访问DMA模块发送的数据规约指令时,将数据规约指令存储于指令缓存区中;
从指令缓存区中分别读取各数据规约指令,并根据各数据规约指令中包括的数据规约描述信息,执行针对外部存储器的数据读写原子操作。
2.根据权利要求1所述的方法,其特征在于,从指令缓存区中分别读取各数据规约指令,并根据各数据规约指令中包括的数据规约描述信息,执行针对外部存储器的数据读写原子操作,包括:
从指令缓存区中读取第一数据规约指令,并从第一数据规约指令中提取第一数据地址、第一规约操作数和第一规约逻辑;
从外部存储器中读取与第一数据地址匹配的第一外存数据,并根据第一规约逻辑,对第一外存数据与第一规约操作数进行处理,得到第一处理结果;
将第一处理结果重新写回至第一数据地址。
3.根据权利要求1所述的方法,其特征在于,从指令缓存区中分别读取各数据规约指令,并根据各数据规约指令中包括的数据规约描述信息,执行针对外部存储器的数据读写原子操作,包括:
从指令缓存区中读取第二数据规约指令,并从第二数据规约指令中提取第二数据地址、第二规约操作数和第二规约逻辑;
从外部存储器中读取与第二数据地址匹配的第二外存数据,并根据第二规约逻辑,对第二外存数据与第二规约操作数进行处理,得到第二处理结果;
检测指令缓存区中是否存储与第二数据地址匹配的至少一个关联数据规约指令;
若是,则分别执行每个关联数据规约指令对第二处理结果进行至少一次数据更新后,将更新得到的第二处理结果重新写回至第二数据地址中。
4.根据权利要求1-3任一项所述的方法,其特征在于,每当接收到片上计算核或片外计算核通过DMA模块发送的数据规约指令时,将数据规约指令存储于指令缓存区中,包括:
每当接收到片上计算核或片外计算核通过DMA模块发送的数据指令时,检测所述数据指令中是否包括原子操作标识;
若是,则将接收到的数据指令作为数据规约指令存储于指令缓存区中。
5.根据权利要求4所述的方法,其特征在于,在检测所述数据指令中是否包括原子操作标识之后,还包括:
若否,则将接收到的数据指令直接转发至外部存储器。
6.根据权利要求2或3所述的方法,其特征在于,第一数据地址或者第二数据地址对应连续地址范围或者离散地址范围;和/或
第一规约操作数或者第二规约操作数为整型数据或者浮点数据。
7.一种分布式训练中的数据规约装置,其特征在于,由多核芯片中贴近外部存储器设置的原子操作模块执行,所述装置包括:
数据规约指令存储模块,用于每当接收到片上计算核或片外计算核通过直接存储器访问DMA模块发送的数据规约指令时,将数据规约指令存储于指令缓存区中;
数据规约指令原子执行模块,用于从指令缓存区中分别读取各数据规约指令,并根据各数据规约指令中包括的数据规约描述信息,执行针对外部存储器的数据读写原子操作。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-6中任一项所述的分布式训练中的数据规约方法。
9.一种分布式训练系统,其特征在于,包括:至少一个多核芯片,每个多核芯片中包括:多个计算核、外部存储器和贴近外部存储器设置的原子操作模块;
其中,每个计算核中包括计算单元、内部存储器以及直接存储器访问DMA模块;同一多核芯片内的各计算核中的DMA模块通过片内总线与片内的原子操作模块通信,不同多核芯片内的各计算核中的DMA模块通过片外总线与片外的原子操作模块通信;
所述计算核,用于在分布式训练中,通过自身的DMA模块向片内的原子操作模块或者片外的原子操作模块发送数据规约指令;
所述原子操作模块,用于执行如权利要求1-6中任一项所述的分布式训练中的数据规约方法。
10.根据权利要求9所述的分布式训练系统,其特征在于,不同计算核中的DMA模块之间独立运行,不需要软件协调执行顺序。
CN202310061723.1A 2023-01-18 2023-01-18 分布式训练中的数据规约方法、装置、介质和训练系统 Pending CN116243978A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310061723.1A CN116243978A (zh) 2023-01-18 2023-01-18 分布式训练中的数据规约方法、装置、介质和训练系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310061723.1A CN116243978A (zh) 2023-01-18 2023-01-18 分布式训练中的数据规约方法、装置、介质和训练系统

Publications (1)

Publication Number Publication Date
CN116243978A true CN116243978A (zh) 2023-06-09

Family

ID=86627127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310061723.1A Pending CN116243978A (zh) 2023-01-18 2023-01-18 分布式训练中的数据规约方法、装置、介质和训练系统

Country Status (1)

Country Link
CN (1) CN116243978A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117539802A (zh) * 2024-01-10 2024-02-09 中昊芯英(杭州)科技有限公司 一种缓存操作方法、系统以及相关装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117539802A (zh) * 2024-01-10 2024-02-09 中昊芯英(杭州)科技有限公司 一种缓存操作方法、系统以及相关装置
CN117539802B (zh) * 2024-01-10 2024-04-05 中昊芯英(杭州)科技有限公司 一种缓存操作方法、系统以及相关装置

Similar Documents

Publication Publication Date Title
CN112540806B (zh) 一种小程序页面渲染方法、装置、电子设备及存储介质
CN110688160B (zh) 一种指令流水线处理方法、系统、设备及计算机存储介质
US20190294442A1 (en) Computer system and memory access technology
CN116243978A (zh) 分布式训练中的数据规约方法、装置、介质和训练系统
CN115150471A (zh) 数据处理方法、装置、设备、存储介质及程序产品
CN116451174A (zh) 任务执行装置、方法、电子设备和存储介质
CN115203126A (zh) 一种算子融合处理方法、装置、设备及存储介质
CN114417780A (zh) 状态同步方法、装置、电子设备及存储介质
CN113918382A (zh) 用于复位的方法、装置、设备和可读存储介质
CN116166583B (zh) 一种数据精度的转换方法、装置、dma控制器及介质
CN112817660A (zh) 扩展小程序能力的方法、装置、设备以及存储介质
CN113377295A (zh) 多生产者单消费者的数据存储和读取方法、装置、设备
CN114217872B (zh) 应用程序启动方法、装置、电子设备及存储介质
CN118567870B (zh) 批量数据处理方法、装置、设备及存储介质
CN117193726A (zh) 一种软件的并行设计方法、装置、电子设备以及介质
CN111176583B (zh) 一种数据写入方法、装置和电子设备
CN113900734B (zh) 一种应用程序文件配置方法、装置、设备及存储介质
CN114327644B (zh) 一种处理器预测访存相关性的实现方法
CN117093266A (zh) 指令处理装置、方法、电子设备和存储介质
CN118259967A (zh) 超标量处理器的发射队列处理方法、装置、设备及介质
CN116107927A (zh) 数据处理装置、数据处理方法和电子设备
CN116737600A (zh) 数据处理装置、数据存储装置、方法、设备和存储介质
CN118689543A (zh) 数据处理方法、装置、电子设备和存储介质
CN117933334A (zh) 模型处理方法、装置、电子设备和存储介质
CN117033029A (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
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: China

Address after: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306

Applicant after: Shanghai Suiyuan Technology Co.,Ltd.

Address before: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306

Applicant before: SHANGHAI ENFLAME TECHNOLOGY Co.,Ltd.

Country or region before: China