CN116560817A - 任务执行方法、装置、电子设备和存储介质 - Google Patents

任务执行方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116560817A
CN116560817A CN202310619512.5A CN202310619512A CN116560817A CN 116560817 A CN116560817 A CN 116560817A CN 202310619512 A CN202310619512 A CN 202310619512A CN 116560817 A CN116560817 A CN 116560817A
Authority
CN
China
Prior art keywords
data
index
task
processing unit
batch
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
Application number
CN202310619512.5A
Other languages
English (en)
Other versions
CN116560817B (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202310619512.5A priority Critical patent/CN116560817B/zh
Publication of CN116560817A publication Critical patent/CN116560817A/zh
Application granted granted Critical
Publication of CN116560817B publication Critical patent/CN116560817B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种任务执行方法,涉及人工智能技术领域,尤其涉及大数据、云计算、深度学习和参数服务器等技术领域,可应用于信息推荐场景下。具体实现方案为:根据第一批次任务数据的索引,将第一批次任务数据中的第一数据读取至第一存储单元,其中,第一数据用于执行第一批次任务中的多个第一子任务,第一数据包括多个第一数据项和多个第一数据项各自关联的第一索引;构建第一映射关系,其中,第一映射关系包括第一数据项与第一索引之间的映射关系;以及根据第一映射关系,利用与多个第一子任务关联的至少一个目标数据项,依次执行多个第一子任务,得到任务执行结果。本公开还提供了一种任务执行装置、电子设备和存储介质。

Description

任务执行方法、装置、电子设备和存储介质
技术领域
本公开涉及人工智能技术领域,尤其涉及大数据、云计算、深度学习和参数服务器等技术领域,可应用于信息推荐场景下。更具体地,本公开提供了一种任务执行方法、装置、电子设备和存储介质。
背景技术
随着人工智能技术的发展,深度学习模型的样本数据量、模型结构复杂度和迭代次数不断增加。
发明内容
本公开提供了一种任务执行方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种任务执行方法,该方法包括:第一处理单元根据第一批次任务数据的索引,将第一批次任务数据中的第一数据读取至第一存储单元,其中,第一数据用于执行第一批次任务中的多个第一子任务,第一数据包括多个第一数据项和多个第一数据项各自关联的第一索引;第一处理单元构建第一映射关系,其中,第一映射关系包括第一数据项与第一索引之间的映射关系;以及第一处理单元根据第一映射关系,利用与多个第一子任务关联的至少一个目标数据项,依次执行多个第一子任务,得到任务执行结果。
根据本公开的另一方面,提供了一种任务执行装置,该装置包括:第一存储单元;读取单元,用于根据第一批次任务数据的索引,将第一批次任务数据中的第一数据读取至第一存储单元,其中,第一数据用于执行第一批次任务中的多个第一子任务,第一数据包括多个第一数据项和多个第一数据项各自关联的第一索引;构建单元,用于构建第一映射关系,其中,第一映射关系包括第一数据项与第一索引之间的映射关系;以及执行单元,用于根据第一映射关系,利用与多个第一子任务关联的至少一个目标数据项,依次执行多个第一子任务,得到任务执行结果。
根据本公开的另一方面,提供了一种任务处理设备,包括:至少一个本公开提供的任务执行装置;以及中心处理单元,包括主存储单元。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行根据本公开提供的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行根据本公开提供的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现根据本公开提供的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开的一个实施例的多个图形处理参数服务器的示意图;
图2是根据本公开的一个实施例的任务执行方法的流程图;
图3是根据本公开的一个实施例的三级存储架构的示意图;
图4是根据本公开的一个实施例的第一精度和第二精度的数据的示意图;
图5是根据本公开的一个实施例的第一数据项的示意图;
图6是根据本公开的一个实施例的处理单元执行任务的示意图;
图7是根据本公开的一个实施例的一个处理单元的示意图;
图8是根据本公开的一个实施例的第一处理单元和第二处理单元的示意图;
图9是根据本公开的一个实施例的第一处理单元和第二处理单元的示意图;
图10是根据本公开的一个实施例的任务执行装置的示意图;
图11是根据本公开的一个实施例的任务处理设备的示意图;以及
图12是根据本公开的一个实施例的可以应用任务执行方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
随着深度学习技术发展以及业务场景的拓展,信息推荐模型可以使用的训练样本数据的数量快速增加,模型的结构也越来越复杂,模型的迭代次数也在不断增加。以搜索推荐场景为例,亿级别的用户可以在亿级别的搜索资源中进行搜索。由此,可以产生百亿级别的样本数据。可以从这种样本数据中提取出高维的稀疏特征。此外,随着数据量的增加,模型的规模也在增加。在搜索推荐场景中,模型可以利用嵌入(embedding)技术将高维稀疏特征转换为低维稠密特征。由此,模型的参数量可以达到千亿甚至万亿量级,进而模型所需的存储资源可达数百吉字节(Gigabyte,Gb)甚至几个太字节(Terabyte,Tb)。为了支持相关业务的高速发展,模型迭代的频次也在不断增加,导致模型对硬件算力的要求不断提高。
为了以较高的性价比实现高效的模型训练,可以在大规模稀疏参数训练场景中,应用至少一个中央处理参数服务器(CPUPS)。中央处理参数服务器可以使用几十个或几百个中央处理器节点进行分布式训练。然而,在模型训练过程中,中央处理参数服务器稳定性存在隐患。多个中央处理器节点之间的通信开销较大。随着节点数的增加,通信开销会进一步增大。随着模型结构的日趋复杂,中央处理器的算力以难以满足训练需求。
随着图形处理器(GPU)的硬件能力的发展,图形处理参数服务器(GPUPS)的存储能力、通信能力和算力等方面都在不断的提升。图形处理参数服务器也可以应用于大规模稀疏参数训练场景中。下面将结合图1进行说明。
图1是根据本公开的一个实施例的多个图形处理参数服务器的示意图。
如图1所示,多个图形处理参数服务器可以包括图形处理参数服务器101和图形处理参数服务器102。每个图形处理参数服务器例如可以包括4个图形处理器。例如,图形处理参数服务器101可以包括图形处理器GPU110、图形处理器GPU111、图形处理器GPU112和图形处理器GPU113。图形处理参数服务器102可以包括图形处理器GPU120、图形处理器GPU121、图形处理器GPU122和图形处理器GPU123。
每个图形处理器可以对应一个存储单元。该存储单元可以存储嵌入数据的一部分。图形处理器可以部署有完整的稠密模型。例如,嵌入数据103可以被划分为嵌入子数据1031至嵌入子数据1038。图形处理器GPU110对应的存储单元可以存储嵌入子数据1031。图形处理器GPU111对应的存储单元可以存储嵌入子数据1032。图形处理器GPU112对应的存储单元可以存储嵌入子数据1033。图形处理器GPU113对应的存储单元可以存储嵌入子数据1034。图形处理器GPU120对应的存储单元可以存储嵌入子数据1035。图形处理器GPU121对应的存储单元可以存储嵌入子数据1036。图形处理器GPU122对应的存储单元可以存储嵌入子数据1037。图形处理器GPU123对应的存储单元可以存储嵌入子数据1038。
在模型训练过程中,可以将全局的训练数据随机切分,得到多个数据片段。多个图形处理器分别根据不同的数据片段进行模型并行训练。
然而,图形处理器参数服务器不支持可变数据长度的表征向量,也不支持混合精度训练,难以满足相关业务场景对特征表示的多样性需求,导致模型规模难以进一步发展。多个图形处理参数服务器之间通信能力也较差,难以进一步提高训练性能。
为了进一步提高图形处理参数服务器的性能,本公开提供了一种任务执行方法,下面将进行说明。
图2是根据本公开的一个实施例的任务执行方法的流程图。
如图2所示,该方法200可以包括操作S210至操作S230。
在操作S210,第一处理单元根据第一批次任务数据的索引,将第一批次任务数据中的第一数据读取至第一存储单元。
在本公开实施例中,第一处理单元可以包括图形处理参数服务器中的多个图形处理器。第一处理单元可以读取第一批次样本数据。第一批次样本数据与第一批次任务对应。第一批次样本数据可以包括多个第一样本数据。多个第一样本数据分别用于执行第一批次任务中的多个第一子任务。
在本公开实施例中,第一处理单元可以获取与第一批次样本数据对应的第一批次任务数据的索引。
在本公开实施例中,第一数据用于执行第一批次任务中的多个第一子任务。第一数据包括多个第一数据项和多个第一数据项各自关联的第一索引。
例如,第一批次任务数据可以包括全部的嵌入数据。第一数据可以是与第一处理单元对应的部分嵌入数据或全部嵌入数据。
例如,第一存储单元可以包括高带宽存储单元(HBM)。
在操作S220,第一处理单元构建第一映射关系。
在本公开实施例中,第一映射关系包括第一数据项与第一索引之间的映射关系。例如,在高带宽存储单元为多个的情况下,多个第一数据项可以存储于不同的高带宽存储单元。第一映射关系可以包括在一个高带宽存储单元上的多个第一数据项和相应的第一索引之间的映射关系。又例如,第一映射关系可以实现为第一哈希表。第一哈希表可以包括多个数据对。每个数据对包括一个第一索引以及与该第一索引相应的第一数据项。
在操作S230,第一处理单元根据第一映射关系,利用与多个第一子任务关联的至少一个目标数据项,依次执行多个第一子任务,得到任务执行结果。
在本公开实施例中,可以利用与多个第一子任务关联的至少一个目标数据项分别处理与多个第一子任务对应的第一样本数据,得到多个第一子任务执行结果。根据多个第一子任务执行结果,可以得到任务执行结果。
通过本公开实施例,可以提高处理单元运行模型的能力,有助于提高深度学习模型的性能。
可以理解,上文对本公开的任务执行方法进行了说明,下面将对本公开的第一处理单元进行进一步说明。
在一些实施例中,第一处理单元可以包括N个处理器。N可以为大于1的整数。处理器例如可以为图形处理器。
在本公开实施例中,第一存储单元可以包括N个高带宽存储单元。例如,每个图形处理器可以对应一个高带宽存储单元。可以理解,一个图形处理器和一个高带宽存储单元可以设置于同一块板卡上。
在本公开实施例中,第一处理单元还可以分别与固态硬盘存储单元和内存单元关联。固态硬盘存储单元、内存单元以及高带宽存储单元可以形成三级存储架构,下面将结合图3进行进一步说明。
图3是根据本公开的一个实施例的三级存储架构的示意图。
如图3所示,第一处理单元可以包括图形处理器3011、图形处理器3012和图形处理器3013。图形处理器3011和高带宽存储单元30151对应。图形处理器3012和高带宽存储单元30152对应。图形处理器3013和高带宽存储单元30153对应。
经由高带宽存储单元,第一处理单元还可以分别与内存单元3016和固态硬盘存储单元3017关联。内存单元3016和固态硬盘存储单元3017可以是多个图形处理器共用的。
固态硬盘存储单元3017可以存储使用频率较低的数据。内存单元3016可以存储使用较为频繁和第一批次任务数据中的一部分数据。高带宽存储单元可以存储第一数据。通过本公开实施例,多级存储架构可以支持大规模的模型,使得第一处理单元可以用于训练大规模的深度学习模型。
可以理解,上文对第一处理单元的存储架构进行了说明,下面将以上述第一数据为例对本公开中任一批次任务数据中的数据进行进一步说明。
在一些实施例中,第一处理单元可以与中心处理单元关联。中心处理单元可以为上述的中央处理参数服务器。中心处理单元可以与主存储单元关联。可以理解,主存储单元可以包括上述的固态硬盘存储单元和内存单元。
在一些实施例中,在上述的操作S210中,将第一批次任务数据中第一数据读取至第一存储单元可以包括:第一处理单元从主存储单元将第一批次任务数据中第一数据读取至第一存储单元。
在本公开实施例中,主存储单元中第一批次任务数据可以为第一精度。第一精度的第一数据例如可以为16位浮点数(FP16)。
在本公开实施例中,第一精度的第一数据例如可以是由中心处理单元存储至主存储单元的。
在本公开实施例中,第一精度的第一批次任务数据是由第二精度的第一批次任务数据转换的。第一精度小于第二精度。例如,第二精度的第一数据可以为32位浮点数(FP32)。由此,可以节约主存储单元的存储资源。
可以理解,为了节约存储资源,可以降低稀疏数据的精度,而为了提高训练精度,第一处理单元可以提高数据的精度。下面将结合图4进行进一步说明。
图4是根据本公开的一个实施例的第一精度和第二精度的数据的示意图。
如图4所示,第一精度的第一数据可以包括第一精度的数据第一精度的数据可以是16位浮点数。第一处理单元可以将第一精度的数据/>读取至第一存储单元。
在本公开实施例中,在第一处理单元构建针对第一数据的第一映射关系之前,第一处理单元将第一精度的第一数据转换为第二精度的第一数据。如图4所示,第一处理单元可以将第一精度的数据转换为第二精度的数据/>第二精度的数据/>可以用于执行一个第一子任务。例如,若将第二精度的数据/>输入模型,可以得到输出结果/>可以理解,模型的输入还可以包括其他数据。
根据输出结果,可以确定第二精度的数据的梯度/>根据该梯度和第二精度的数据/>可以确定第二精度的更新数据wt+1。接下来,可以将第二精度的更新数据wt+1返回至中心处理单元。中心处理单元可以将第二精度的更新数据wt+1转换为第一精度的更新数据/>
通过本公开实施例,将低精度的数据存储于主存储单元存储以及将高精度的数据用于模型训练,可以在节约存储资源的同时,提高训练精度。
可以理解,上文对第一数据进行了说明,下面将结合图5对本公开的第一数据的第一数据项进行进一步说明。
图5是根据本公开的一个实施例的第一数据项的示意图。
在本公开实施例中,第一数据项可以包括地址偏移量字段、数据长度指示字段以及有效数据字段。如图5所示,第一数据项D50可以包括地址偏移字段offset、数据长度指示字段len和有效数据字段embedding。地址偏移字段offset的值可以指示第一数据项相对于高带宽存储单元的首地址的偏移量。数据长度指示字段len的值可以指示有效数据字段embedding的长度。有效数据字段embedding的值可以为模型训练所需的有效数据。
在本公开实施例中,在上述的操作S220中,第一处理单元构建第一映射关系还可以包括:确定多个第一数据项各自的数据长度。例如,可以根据数据长度指示字段len,确定第一数据项D50的数据长度。可以理解,有效数据字段embedding的值的数据长度可以被数据长度指示字段所指示,地址偏移字段offset的值和数据长度指示字段的值各自的数据长度可以是预设的。由此,可以确定第一数据项的数据长度。第一数据项可以与第一索引key对应。
在本公开实施例中,在上述的操作S220中,第一处理单元构建第一映射关系还可以包括:在第一存储单元中,以连续地址存储具有相同数据长度的至少一个第一数据项以及关联的第一索引。如图5所示,可以将第一数据项D50及第一索引key存储入第一存储单元5015。与第一数据项D50相邻的地址可以存储另一第一数据项及关联的第一索引。该第一数据项的数据长度可以与第一数据项D50相同。通过本公开实施例,第一处理单元可以支持变长的第一数据,可以提高模型在相应业务场景中的性能。使用连续地址空间来存储相同数据长度的第一数据项可以充分利用存储单元的存储资源。
可以理解,上文对本公开的第一数据项进行了说明,下面将对第一处理单元执行任务的一些方式进行说明。
图6是根据本公开的一个实施例的处理单元执行任务的示意图。
在本公开实施例中,第一批次任务可以包括模型训练任务。可以理解,第一批次任务也可以包括模型推理任务。
在本公开实施例中,处理单元可以异步执行多个子任务。
如图6所示,第一处理单元的一个处理器(例如上述的图形处理器3011)可以异步执行第一子任务M61、第一子任务M62以及第一子任务M63。
对于第一子任务M61,处理器可以执行读取数据的操作,以读取第一存储单元中第一子任务M61的第一样本数据和嵌入数据。接下来,处理器可以执行加载数据操作,以将第一子任务M61的第一样本数据和嵌入数据加载至处理器的缓存单元(例如一级缓存单元)。由此,处理器可以执行模型训练的操作,以根据第一子任务M61的第一样本数据和嵌入数据进行模型训练。
在处理器加载第一子任务M61的第一样本数据和嵌入数据的过程中,针对第一子任务M62,处理器可以执行读取数据的操作,以读取第一子任务M62的第一样本数据和嵌入数据。接下来,在处理器根据第一子任务M61的第一样本数据和嵌入数据进行模型训练的过程中,处理器也可以执行加载数据的操作,以将第一子任务M62的第一样本数据和嵌入数据加载至处理器的缓存单元。由此,处理器可以执行模型训练的操作,以根据第一子任务M62的第一样本数据和嵌入数据进行模型训练。
在处理器加载第一子任务M62的第一样本数据和嵌入数据的过程中,针对第一子任务M63,处理器可以执行读取数据的操作,以读取第一子任务M63的第一样本数据和嵌入数据。接下来,在处理器根据第一子任务M62的第一样本数据和嵌入数据进行模型训练的过程中,处理器也可以执行加载数据的操作,以将第一子任务M63的第一样本数据和嵌入数据加载至处理器的缓存单元。由此,处理器可以执行模型训练的操作,以根据第一子任务M63的第一样本数据和嵌入数据进行模型训练。通过本公开实施例,第一处理单元可以异步执行多个不同的子任务,提高任务执行效率。
可以理解,上文对处理单元的处理器进行了说明,下面将以一个处理单元为示例对本公开的方法进行进一步说明。
图7是根据本公开的一个实施例的一个处理单元的示意图。
如图7所示,第一处理单元701例如可以与第一存储单元7015关联。第一处理单元701可以包括图形处理器GPU710、图形处理器GPU711、图形处理器GPU712以及图形处理器GPU713。第一存储单元7015可以包括高带宽存储单元Shard710、高带宽存储单元Shard711、高带宽存储单元Shard712和高带宽存储单元Shard713。第一存储单元7015可以与中心处理单元C71关联。
在本公开实施例中,任务数据(例如全部嵌入数据)可以存储于与第一处理单元701关联的主存储单元。主存储单元也可以与中心处理单元关联。
在执行第一批次任务前,中心处理单元C71可以获取第一批次样本数据,并解析出该第一批次样本数据对应的索引。该索引可以作为第一批次任务数据的索引。第一批次任务数据可以包括与第一批次样本数据对应的嵌入数据。
第一处理单元701可以根据第一批次任务数据的索引,从主存储单元读取第一批次任务数据中的第一数据。第一数据可以用于执行第一批次任务中的多个第一子任务。第一数据可以包括多个第一数据项和多个第一索引。每个第一数据项关联一个第一索引。可以理解,第一批次任务数据的索引可以与多个第一索引对应。
在本公开实施例中,第一数据可以被读取至第一存储单元。根据多个第一索引的数目,将多个第一数据项分配至N个处理器c例如,将多个第一索引的数目除以N,得到商和余数。根据商和余数,将多个第一数据项分配至N个处理器。
如图7所示,N可以为4。若一个第一数据项对应的第一索引的第一索引值为4,该第一索引值除以4,余数为0。由此,可以将该第一数据项存储至高带宽存储单元Shard710,以分配至图形处理器GPU710。若一个第一数据项对应的第一索引的第一索引值为1,该第一索引值除以4,余数为1。由此,可以将该第一数据项存储至高带宽存储单元Shard711,以分配至图形处理器GPU711。若一个第一数据项对应的第一索引的第一索引值为7,该第一索引值除以4,余数为3。由此,可以将该第一数据项存储至高带宽存储单元Shard713,以分配至图形处理器GPU713。
在将多个第一数据项存储入相应的高带宽存储单元之后,可以针对每个高带宽存储单元,构建映射关系。该映射关系可以包括:在一个高带宽存储单元中,第一索引与相应的第一数据项之间的映射关系。
接下来,第一处理单元可以获取一个第一子任务的多个样本子数据。样本子数据与样本索引关联。可以将多个样本子数据分配至N个图形处理器。接下来,第一处理单元可以执行该第一子任务。可以理解,可以利用各种方式确定样本索引。
在本公开实施例中,针对每个第一子任务,可以确定与该第一子任务相关联的至少一个目标索引。根据第一映射关系,可以确定多个第一索引中与至少一个目标索引相匹配的至少一个匹配索引。例如,图形处理器GPU710的获取到的样本子数据相关联的多个目标索引的目标索引值包括目标索引值4、目标索引值1和目标索引值7。目标索引值4例如可以与第一索引值4相匹配,与第一索引值4对应的第一索引可以作为一个匹配索引。目标索引值1例如可以与第一索引值1相匹配,与第一索引值1对应的第一索引可以作为一个匹配索引。目标索引值7例如可以与第一索引值7相匹配,与第一索引值7对应的第一索引可以作为一个匹配索引。
在本公开实施例中,根据第一映射关系,可以从第一存储单元读取与匹配索引相对应的目标数据项。例如,对于图形处理器GPU710的获取到的样本子数据,与第一索引值4对应的第一数据项已被存储于高带宽存储单元Shard710,该第一数据项可以作为一个目标数据项。与第一索引值1对应的第一数据项已被存储于高带宽存储单元Shard711,与第一索引值7对应的第一数据项已被存储于高带宽存储单元Shard713,可以将这两个第一数据项作为两个目标数据项。图形处理器GPU710可以加载这三个目标数据项。
在本公开实施例中,利用至少一个目标数据项执行第一子任务,可以得到第一子任务的执行结果。例如,图形处理器GPU710至图形处理器GPU713可以部署有稠密的深度学习模型。图形处理器GPU710可以利用模型处理目标数据项和样本子数据,得到模型的输出结果,以完成模型的前向计算。接下来,根据输出结果,可以确定损失值,进而可以确定模型参数梯度和目标数据项的梯度,以完成反向计算。多个图形处理器之间可以进行全规约通信(AllReduce),以使一图形处理器可以获取其他图形处理器确定的模型参数梯度。目标数据项的梯度用于更新高带宽存储单元中的第一数据项。例如,与第一索引值7对应的目标数据项的梯度,可以更新高带宽存储单元Shard713中相应的第一数据项。与第一索引值1对应的目标数据项的梯度,可以更新高带宽存储单元Shard711中相应的第一数据项。可以理解,更新后的模型参数以及第一数据项,可以作为第一子任务的执行结果。
在本公开实施例中,第一批次任务的多个第一子任务被执行完毕之后,更新后的第一数据项可以返回(dump)给中心处理单元C71,以便更新主存储单元的相关第一数据项。
通过本公开实施例,一个第一处理单元可以支持变长的第一数据项,并可以实现混合精度训练,可以提高模型训练效率。
可以理解,上文以一个处理单元为示例,对本公开进行了说明。但本公开不限于此,处理单元可以为多个,下面将进行进一步说明。
图8是根据本公开的一个实施例的第一处理单元和第二处理单元的示意图。
如图8所示,第一处理单元801例如可以与第一存储单元8015关联。第一处理单元801可以包括图形处理器GPU810、图形处理器GPU811、图形处理器GPU812以及图形处理器GPU813。第一存储单元8015可以包括高带宽存储单元Shard810、高带宽存储单元Shard811、高带宽存储单元Shard812和高带宽存储单元Shard813。第一存储单元8015可以与中心处理单元C81关联。
如图8所示,第二处理单元802例如可以与第二存储单元8025关联。第二处理单元802可以包括图形处理器GPU820、图形处理器GPU821、图形处理器GPU822以及图形处理器GPU823。第二存储单元8025可以包括高带宽存储单元Shard820、高带宽存储单元Shard821、高带宽存储单元Shard822和高带宽存储单元Shard823。第二存储单元8025可以与中心处理单元C82关联。
与图7所示的一个中心处理单元不同,如图8所示,任务数据可以分别存储于中心处理单元C81的存储单元和中心处理单元C82的存储单元。中心处理单元C81可以包括本地存储单元local-shard810和本地存储单元local-shard811。中心处理单元C82可以包括本地存储单元local-shard822和本地存储单元local-shard823。
在本公开实施例中,根据多个索引各自的索引值,将多个数据项分配至多个中心处理单元。例如,将多个索引的索引值除以本地存储单元的数目,得到商和余数。根据商和余数,将多个数据项分配至多个中心处理单元。可以理解,索引值可以是根据索引的数目确定的。
如图8所示,本地存储单元的数目可以为4。若一个数据项对应的索引值为4,该索引值除以4,余数为0。由此,可以将该数据项存储至本地存储单元local-shard810。若一个数据项对应的索引值为1,该索引值除以4,余数为1。由此,可以将该数据项存储至本地存储单元local-shard811。若一个数据项对应的索引值为5,该索引值除以4,余数为1。由此,也可以将该数据项存储至本地存储单元local-shard811。若一个数据项对应的索引值为2,该索引值除以4,余数为2。由此,可以将该数据项存储至本地存储单元local-shard822。若一个数据项对应的索引值为6,该索引值除以4,余数为2。由此,也可以将该数据项存储至本地存储单元local-shard822。若一个数据项对应的索引值为3,该索引值除以4,余数为3。由此,可以将该数据项存储至本地存储单元local-shard823。若一个数据项对应的索引值为7,该索引值除以4,余数为3。由此,可以将该数据项存储至本地存储单元local-shard823。
此外,与图7所示的中心处理单元C71解析处全部第一批次样本数据的索引不同,如图8所示,在执行第一批次任务前,中心处理单元C81可以获取第一批次样本数据中多个第一样本数据,中心处理单元C82可以获取第一批次样本数据中多个第二样本数据。中心处理单元C81可以解析出该第一批次中第一样本数据对应的索引。中心处理单元C82可以解析出该第一批次中第二样本数据对应的索引。
第一处理单元801可以根据第一批次任务数据中第一样本数据的索引,从主存储单元读取第一批次任务数据中的第一数据。第一数据可以用于执行第一批次任务中的多个第一子任务。第一数据可以包括多个第一数据项和多个第一索引。每个第一数据项关联一个第一索引。可以理解,第一批次任务数据中第一样本数据的索引可以与多个第一索引对应。
在本公开实施例中,第一批次任务数据中第一样本数据的索引还可以与至少一个第二索引对应。可以从第二处理单元获取第一批次任务数据中用于执行多个第二子任务的第二数据。第二数据可以包括多个第二数据项和多个第二数据项各自关联的第二索引。例如,可以获取第二数据中的一部分。获取的部分第二数据可以根据第二数据项的第二索引存储至远端存储单元remote-shard812或远端存储单元remote-shard813。第一批次任务数据中第一样本数据的索引例如可以与索引值为3的第二索引和索引值为7的第二索引对应。如上述,与索引值3对应的数据项存储于中心处理单元C82的本地存储单元local-shard823,可以作为一个第二数据项。与索引值7对应的数据项存储于中心处理单元C82的本地存储单元local-shard823,也可以作为一第二数据项。可以从本地存储单元local-shard823获取与索引值为3对应的第二数据项,并将该第二数据项保存至远端存储单元remote-shard813。可以从本地存储单元local-shard823获取与索引值为7对应的第二数据项,并将该第二数据项保存至远端存储单元remote-shard813。
第二处理单元802可以根据第一批次任务数据中第二样本数据的索引,从主存储单元读取第一批次任务数据中的第二数据。第二数据可以用于执行第一批次任务中的多个第二子任务。第二数据可以包括多个第二数据项和多个第二索引。每个第二数据项关联一个第二索引。可以理解,第一批次任务数据中第二样本数据的索引可以与多个第二索引对应。
在本公开实施例中,第一批次任务数据中第二样本数据的索引还可以与至少一个第一索引对应。可以从第一处理单元获取第一批次任务数据中用于执行多个第一子任务的第一数据。例如,可以获取第一数据中的一部分。获取的部分第一数据可以根据第一数据项的第一索引存储至远端存储单元remote-shard820或远端存储单元remote-shard821。第一批次任务数据中第二样本数据的索引例如可以与索引值为4的第一索引和索引值为5的第一索引对应。如上述,与索引值4对应的数据项存储与中心处理单元C81的本地存储单元local-shard810,可以作为一个第一数据项。与索引值5对应的数据项存储与中心处理单元C81的本地存储单元local-shard811,也可以作为一第一数据项。可以从本地存储单元local-shard810获取与索引值为4对应的第一数据项,并将该第一数据项保存至远端存储单元remote-shard820。可以从本地存储单元local-shard811获取与索引值为5对应的第一数据项,并将该第一数据项保存至远端存储单元remote-shard821。
在本公开实施例中,第一数据可以被读取至第一存储单元。根据多个第一索引的数目,将多个第一数据项分配至N个处理器。例如,将多个第一索引的索引值除以N,得到商和余数。根据商和余数,将多个第一数据项分配至N个处理器。可以理解,第一索引的索引值可以为第一索引值。
如图8所示,N可以为4。若一个第一数据项对应的第一索引的第一索引值为4,该第一索引值除以4,余数为0。由此,可以将该第一数据项存储至高带宽存储单元Shard810,以分配至图形处理器GPU810。若一个第一数据项对应的第一索引的第一索引值为1,该第一索引值除以4,余数为1。由此,可以将该第一数据项存储至高带宽存储单元Shard811,以分配至图形处理器GPU811。若一个第一数据项对应的第一索引的第一索引值为5,该第一索引值除以4,余数为1。由此,可以将该第一数据项存储至高带宽存储单元Shard811,以分配至图形处理器GPU811。
在将多个第一数据项存储入相应的高带宽存储单元之后,可以针对每个高带宽存储单元,构建映射关系,得到用于每个处理器的映射关系。该映射关系可以包括:在一个高带宽存储单元中,第一索引与相应的第一数据项之间的映射关系。
在本公开实施例中,根据至少一个第二索引的数目,将至少一个第二数据项分配至第一处理单元的N个处理器。例如,将至少一个第二索引的索引值除以N,得到商和余数。根据商和余数,将至少一个第二数据项分配至N个处理器。可以理解,第二索引的索引值可以为第二索引值。
如图8所示,N可以为4。若一个第二数据项对应的第二索引的第二索引值为3,该第二索引值除以4,余数为3。由此,可以将该第二数据项存储至高带宽存储单元Shard813,以分配至图形处理器GPU813。若一个第二数据项对应的第二索引的第二索引值为7,该第二索引值除以4,余数为3。由此,也可以将该第二数据项存储至高带宽存储单元Shard813,以分配至图形处理器GPU813。
在本公开实施例中,根据用于每个处理器的映射关系和第二数据,可以构建第一映射关系。例如,可以根据存储入高带宽存储单元的第二数据项和用于每个处理器的映射关系,得到第一映射关系。第一映射关系可以包括:在一个高带宽存储单元中,第一索引与相应的第一数据项之间的映射关系。若一个高带宽存储单元中存在第二数据项,第一映射关系还可以包括:在该高带宽存储单元中,第二索引与相应的第二数据项之间的映射关系。
在本公开实施例中,第二数据可以被读取至第二存储单元。根据多个第二索引的数目,将多个第二数据项分配至N个处理器。例如,将多个第二索引的索引值除以N,得到商和余数。根据商和余数,将多个第二数据项分配至N个处理器。
如图8所示,N可以为4。若一个第二数据项对应的第一索引的第一索引值为2,该第二索引值除以4,余数为2。由此,可以将该第二数据项存储至高带宽存储单元Shard822,以分配至图形处理器GPU822。若一个第二数据项对应的第二索引的第二索引值为3,该第二索引值除以4,余数为3。由此,可以将该第二数据项存储至高带宽存储单元Shard823,以分配至图形处理器GPU823。若一个第二数据项对应的第二索引的第二索引值为7,该第二索引值除以4,余数为3。由此,可以将该第二数据项存储至高带宽存储单元Shard823,以分配至图形处理器GPU823。
在将多个第二数据项存储入相应的高带宽存储单元之后,可以针对每个高带宽存储单元,构建映射关系,得到用于每个处理器的映射关系。该映射关系可以包括:在一个高带宽存储单元中,第二索引与相应的第二数据项之间的映射关系。
在本公开实施例中,根据至少一个第一索引的数目,将至少一个第一数据项分配至第二处理单元的N个处理器。例如,将至少一个第一索引的索引值除以N,得到商和余数。根据商和余数,将至少一个第一数据项分配至N个处理器。
如图8所示,N可以为4。若一个第一数据项对应的第一索引的第一索引值为4,该第一索引值除以4,余数为0。由此,可以将该第一数据项存储至高带宽存储单元Shard820,以分配至图形处理器GPU820。若一个第一数据项对应的第一索引的第一索引值为5,该第一索引值除以4,余数为1。由此,也可以将该第一数据项存储至高带宽存储单元Shard821,以分配至图形处理器GPU821。
在本公开实施例中,根据用于每个处理器的映射关系和第一数据,可以构建第二映射关系。例如,可以根据存储入高带宽存储单元的第一数据项和用于每个处理器的映射关系,得到第二映射关系。第二映射关系可以包括:在一个高带宽存储单元中,第二索引与相应的第二数据项之间的映射关系。若一个高带宽存储单元中存在第一数据项,第二映射关系还可以包括:在该高带宽存储单元中,第一索引与相应的第一数据项之间的映射关系。
接下来,第一处理单元可以执行第一子任务,第一子任务与一个第一样本数据对应。第一样本数据可以包括多个样本子数据。每个处理器可以利用至少一个样本子数据执行任务。
第一处理单元可以获取一个第一子任务的多个样本子数据。可以将多个样本子数据分配至N个图形处理器
在本公开实施例中,第一处理单元根据第一映射关系,利用与多个第一子任务关联的至少一个目标数据项,依次执行多个第一子任务,得到任务执行结果包括:针对每个第一子任务,可以确定与该第一子任务相关联的至少一个目标索引。根据第一映射关系,可以确定多个第一索引中与至少一个目标索引相匹配的至少一个匹配索引。例如,对于图形处理器GPU810,与获取到的样本子数据相关联的多个目标索引的目标索引值包括:目标索引值4、目标索引值1和目标索引值7。目标索引值4例如可以与第一索引值4相匹配,与第一索引值4对应的第一索引可以作为一个匹配索引。目标索引值1例如可以与第一索引值1相匹配,与第一索引值1对应的第一索引可以作为一个匹配索引。目标索引值7例如可以与第二索引值7相匹配,与第二索引值7对应的第二索引可以作为一个匹配索引。
在本公开实施例中,根据第一映射关系,可以从第一存储单元读取与匹配索引相对应的目标数据项。例如,对于图形处理器GPU810的获取到的样本子数据,与第一索引值4对应的第一数据项已被存储于高带宽存储单元Shard810,该第一数据项可以作为一个目标数据项。与第一索引值1对应的第一数据项已被存储于高带宽存储单元Shard811,与第二索引值7对应的第二数据项已被存储于高带宽存储单元Shard813,可以将该第一数据项和该第二数据项分别作为两个目标数据项。图形处理器GPU810可以读取这三个目标数据项。
在本公开实施例中,利用至少一个目标数据项执行第一子任务,可以得到第一子任务的执行结果。例如,图形处理器GPU810至图形处理器GPU813可以部署有稠密的深度学习模型。图形处理器GPU810可以利用模型处理目标数据项和样本子数据,得到模型的输出结果,以完成模型的前向计算。接下来,根据输出结果,可以确定损失值,进而可以确定模型参数梯度和目标数据项的梯度,以完成反向计算。多个图形处理器之间可以进行全规约通信,以使一图形处理器可以获取其他图形处理器确定的模型参数梯度。目标数据项的梯度用于更新高带宽存储单元中的第一数据项。例如,与第二索引值7对应的目标数据项的梯度,可以更新高带宽存储单元Shard813中相应的第二数据项。与第一索引值1对应的目标数据项的梯度,可以更新高带宽存储单元Shard811中相应的第一数据项。可以理解,更新后的模型参数以及第一数据项,可以作为第一子任务执行结果。
在第一处理单元执行第一子任务时,第二处理单元可以执行第二子任务,第二子任务与一个第二样本数据对应。第二样本数据可以包括多个样本子数据。每个处理器可以利用至少一个样本子数据执行任务。第二处理单元可以获取一个第二子任务的多个样本子数据。可以将多个样本子数据分配至N个图形处理器。
在本公开实施例中,第二处理单元根据第二映射关系,利用与多个第二子任务关联的至少二个目标数据项,依次执行多个第二子任务,得到任务执行结果包括:针对每个第二子任务,可以确定与该第二子任务相关联的至少一个目标索引。可以确定多个第二索引中与至少一个目标索引相匹配的至少一个匹配索引。例如,图形处理器GPU820的获取到的样本子数据相关联的多个目标索引的目标索引值包括目标索引值3和目标索引值5。目标索引值3例如可以与第二索引值3相匹配,与第二索引值3对应的第二索引可以作为一个匹配索引。目标索引值5例如可以与第一索引值5相匹配,与第一索引值5对应的第一索引可以作为一个匹配索引。
在本公开实施例中,根据第二映射关系,可以从第二存储单元读取与匹配索引相对应的目标数据项。例如,对于图形处理器GPU820的获取到的样本子数据,与第二索引值3对应的第二数据项已被存储于高带宽存储单元Shard823,该第二数据项可以作为一个目标数据项。与第一索引值5对应的第一数据项已被存储于高带宽存储单元Shard821,可以将该第一数据项作为一个目标数据项。图形处理器GPU820可以读取这两个目标数据项。
在本公开实施例中,利用至少一个目标数据项执行第二子任务,可以得到第二子任务的执行结果。例如,图形处理器GPU820至图形处理器GPU823可以部署有稠密的深度学习模型。图形处理器GPU820可以利用模型处理目标数据项和样本子数据,得到模型的输出结果,以完成模型的前向计算。接下来,根据输出结果,可以确定损失值,进而可以确定模型参数梯度和目标数据项的梯度,以完成反向计算。多个图形处理器之间可以进行全规约通信,以使一图形处理器可以获取其他图形处理器确定的模型参数梯度。目标数据项的梯度用于更新高带宽存储单元中的第二数据项。例如,与第二索引值3对应的目标数据项的梯度,可以更新高带宽存储单元Shard823中相应的第二数据项。与第一索引值5对应的目标数据项的梯度,可以更新高带宽存储单元Shard821中相应的第一数据项。可以理解,更新后的模型参数以及第二数据项,可以作为第二子任务执行结果。
在本公开实施例中,第一处理单元可以从第二处理单元获取利用第二数据执行所述多个第二子任务得到的第二子任务执行结果。利用所述第一子任务执行结果和所述第二子任务执行结果,更新所述第一映射关系。在第一处理单元执行完第一子任务或第二处理单元执行完第二子任务之后,两个处理单元之间可以进行传输梯度。由此,可以实现梯度同步和融合。此外,在利用传输来的梯度更新了数据项之后,也可以更新映射关系。
在本公开实施例中,第一批次任务的多个第一子任务被执行完毕之后,更新后的第一数据项可以返回(dump)给中心处理单元C81。
通过本公开实施例,利用多个处理单元执行多个子任务,可以实现更大规模的模型训练。此外,通过建立远端存储单元的方式,可以实现不同处理单元之间的全收集(Allgather)通信,进而可以在图形处理器参数服务器上实现全收集通信。建立远端存储单元也可以实现数据冗余,有助于提高数据的安全性。此外,多个处理单元不仅可以支持可变的数据长度、混合精度训练以及异步执行,还可以支持全收集通信,可以适应不同的业务场景。
可以理解,上文的多个处理单元之间可以基于全收集的方式进行通信。但本公开不限于此,下面将进行进一步说明。
图9是根据本公开的一个实施例的第一处理单元和第二处理单元的示意图。
如图9所示,第一处理单元901例如可以与第一存储单元9015关联。第一处理单元901可以包括图形处理器GPU910、图形处理器GPU911、图形处理器GPU912以及图形处理器GPU913。第一存储单元9015可以包括高带宽存储单元Shard910、高带宽存储单元Shard911、高带宽存储单元Shard912和高带宽存储单元Shard913。第一存储单元9015可以与中心处理单元C91关联。
如图9所示,第二处理单元902例如可以与第二存储单元9025关联。第二处理单元902可以包括图形处理器GPU920、图形处理器GPU921、图形处理器GPU922以及图形处理器GPU923。第二存储单元9025可以包括高带宽存储单元Shard920、高带宽存储单元Shard921、高带宽存储单元Shard922和高带宽存储单元Shard923。第二存储单元9025可以与中心处理单元C92关联。
如图9所示,任务数据可以分别存储于中心处理单元C91和中心处理单元C92。中心处理单元C91可以包括本地存储单元local-shard910和本地存储单元local-shard911。中心处理单元C92可以包括本地存储单元local-shard922和本地存储单元local-shard923。
在本公开实施例中,根据多个索引各自的索引值,将多个数据项分配至多个中心处理单元。例如,将多个索引的索引值除以本地存储单元的数目,得到商和余数。根据商和余数,将多个数据项分配至多个中心处理单元。可以理解,索引值可以是根据索引的数目确定的。
如图9所示,本地存储单元的数目可以为4。若一个数据项对应的索引值为4,该索引值除以4,余数为0。由此,可以将该数据项存储至本地存储单元local-shard910。若一个数据项对应的索引值为1,该索引值除以4,余数为1。由此,可以将该数据项存储至本地存储单元local-shard911。若一个数据项对应的索引值为5,该索引值除以4,余数为1。由此,也可以将该数据项存储至本地存储单元local-shard911。若一个数据项对应的索引值为2,该索引值除以4,余数为2。由此,可以将该数据项存储至本地存储单元local-shard922。若一个数据项对应的索引值为6,该索引值除以4,余数为2。由此,也可以将该数据项存储至本地存储单元local-shard922。若一个数据项对应的索引值为3,该索引值除以4,余数为3。由此,可以将该数据项存储至本地存储单元local-shard923。若一个数据项对应的索引值为7,该索引值除以4,余数为3。由此,可以将该数据项存储至本地存储单元local-shard923。
如图9所示,在执行第一批次任务前,中心处理单元C91可以获取第一批次样本数据中多个第一样本数据,中心处理单元C92可以获取第一批次样本数据中多个第二样本数据。中心处理单元C91可以解析出该第一批次中第一样本数据对应的索引。中心处理单元C92可以解析出该第一批次中第二样本数据对应的索引。
第一处理单元901可以根据第一批次任务数据中第一样本数据的索引,从主存储单元读取第一批次任务数据中的第一数据。第一数据可以用于执行第一批次任务中的多个第一子任务。第一数据可以包括多个第一数据项和多个第一索引。每个第一数据项关联一个第一索引。可以理解,第一批次任务数据中第一样本数据的索引可以与多个第一索引对应。
第二处理单元902可以根据第一批次任务数据中第二样本数据的索引,从主存储单元读取第一批次任务数据中的第二数据。第二数据可以用于执行第一批次任务中的多个第二子任务。第二数据可以包括多个第二数据项和多个第二索引。每个第二数据项关联一个第二索引。可以理解,第一批次任务数据中第二样本数据的索引可以与多个第二索引对应。
在本公开实施例中,第一批次任务数据中第一样本数据的索引还可以与至少一个第二索引对应。与图8所示的建立远端存储单元不同,在本公开实施例中,可以向与第一处理单元通信连接的第二处理单元发送第一远程调用请求。第一远程调用请求用于获取第二数据中的一部分或全部。
在本公开实施例中,第一批次任务数据中第二样本数据的索引还可以与至少一个第一索引对应。与图8所示的建立远端存储单元不同,在本公开实施例中,可以向与第二处理单元通信连接的第一处理单元发送第二远程调用请求。第二远程调用请求用于获取第一数据中的一部分或全部。
在本公开实施例中,第一数据可以被读取至第一存储单元。根据多个第一索引的数目,将多个第一数据项分配至N个处理器。例如,将多个第一索引的索引值除以N,得到商和余数。根据商和余数,将多个第一数据项分配至N个处理器。
如图9所示,N可以为4。若一个第一数据项对应的第一索引的第一索引值为4,该第一索引值除以4,余数为0。由此,可以将该第一数据项存储至高带宽存储单元Shard910,以分配至图形处理器GPU910。若一个第一数据项对应的第一索引的第一索引值为1,该第一索引值除以4,余数为1。由此,可以将该第一数据项存储至高带宽存储单元Shard911,以分配至图形处理器GPU911。若一个第一数据项对应的第一索引的第一索引值为5,该第一索引值除以4,余数为1。由此,可以将该第一数据项存储至高带宽存储单元Shard911,以分配至图形处理器GPU911。
在将多个第一数据项存储入相应的高带宽存储单元之后,可以针对每个高带宽存储单元,构建映射关系,得到用于每个处理器的映射关系。该映射关系可以包括:在一个高带宽存储单元中,第一索引与相应的第一数据项之间的映射关系。
与图8中根据用于每个处理器的映射关系和第二数据构建第一映射关系不同,在本公开实施例中,可以接收第二远程调用请求。根据与第二远程调用请求对应的映射关系和用于每个处理器的映射关系,构建第一映射关系。例如,第二远程调用请求例如可以请求调用与第一索引值5对应的第一数据项。第一处理单元可以接收该第二远程调用请求,建立相应的映射关系。该映射关系可以添加至用于图形处理器GPU910的映射关系中,以构建第一映射关系。
在本公开实施例中,第二数据可以被读取至第二存储单元。根据多个第二索引的数目,将多个第二数据项分配至N个处理器。例如,将多个第二索引的索引值除以N,得到商和余数。根据商和余数,将多个第二数据项分配至N个处理器。
如图9所示,N可以为4。若一个第二数据项对应的第二索引的第一索引值为2,该第二索引值除以4,余数为2。由此,可以将该第二数据项存储至高带宽存储单元Shard922,以分配至图形处理器GPU922。若一个第二数据项对应的第二索引的第二索引值为3,该第二索引值除以4,余数为3。由此,可以将该第二数据项存储至高带宽存储单元Shard923,以分配至图形处理器GPU923。若一个第二数据项对应的第二索引的第二索引值为7,该第二索引值除以4,余数为3。由此,可以将该第二数据项存储至高带宽存储单元Shard923,以分配至图形处理器GPU923。
在将多个第二数据项存储入相应的高带宽存储单元之后,可以针对每个高带宽存储单元,构建映射关系,得到用于每个处理器的映射关系。该映射关系可以包括:在一个高带宽存储单元中,第二索引与相应的第二数据项之间的映射关系。
与图8中根据用于每个处理器的映射关系和第一数据构建第二映射关系不同,在本公开实施例中,第二处理单元可以接收第一远程调用请求。根据与第一远程调用请求对应的映射关系和用于每个处理器的映射关系,构建第二映射关系。例如,第一远程调用请求例如可以请求调用与第二索引值7对应的第二数据项。第二处理单元可以接收该第一远程调用请求,建立相应的映射关系。该映射关系可以添加至用于图形处理器GPU923的映射关系中,以构建第二映射关系。
接下来,第一处理单元可以执行第一子任务,第一子任务与一个第一样本数据对应。第一样本数据可以包括多个样本子数据。每个处理器可以利用至少一个样本子数据执行任务。第一处理单元可以获取一个第一子任务的多个样本子数据。可以将多个样本子数据分配至N个图形处理器。
在本公开实施例中,第一处理单元根据第一映射关系,利用与多个第一子任务关联的至少一个目标数据项,依次执行多个第一子任务,得到任务执行结果包括:针对每个第一子任务,可以确定与该第一子任务相关联的至少一个目标索引。例如,对于图形处理器GPU910,与获取到的样本子数据相关联的多个目标索引的目标索引值可以包括:目标索引值4、目标索引值1和目标索引值7。
在本公开实施例中,可以确定多个第一索引中是否存在与至少一个目标索引相匹配的至少一个匹配索引。例如,目标索引值4例如可以与第一索引值4相匹配,与第一索引值4对应的第一索引可以作为一个匹配索引。目标索引值1例如可以与第一索引值1相匹配,与第一索引值1对应的第一索引可以作为一个匹配索引。目标索引值7与任一第一索引值均不匹配。
在本公开实施例中,在确定多个第一索引中存在与至少一个目标索引相匹配的至少一个匹配索引的情况下,从第一存储单元中读取与至少一个匹配索引相对应的至少一个目标数据项。例如,对于图形处理器GPU910,与第一索引值4对应的第一数据项已被存储于高带宽存储单元Shard910,该第一数据项可以作为一个目标数据项。与第一索引值1对应的第一数据项已被存储于高带宽存储单元Shard911,可以将该第一数据项作为目标数据项。
在本公开实施例中,在确定多个第一索引中不存在至少一个匹配索引的情况下,从第二处理单元获取至少一个匹配索引以及至少一个目标数据项。例如,对于图形处理器GPU910的获取到的样本子数据,目标索引值7例如可以与第二索引值7相匹配。与第二索引值7对应的第二数据项已被存储于高带宽存储单元Shard923,该第二数据项可以作为一个目标数据项。该目标数据项位于与第二处理单元关联的第二存储单元,由此,第二处理单元可以与第一处理单元通信,以传输与第二索引值7对应的第二数据项。
在本公开实施例中,利用至少一个目标数据项执行第一子任务,可以得到第一子任务执行结果。例如,图形处理器GPU910至图形处理器GPU913可以部署有稠密的深度学习模型。图形处理器GPU910可以利用模型处理目标数据项和样本子数据,得到模型的输出结果,以完成模型的前向计算。接下来,根据输出结果,可以确定损失值,进而可以确定模型参数梯度和目标数据项的梯度,以完成反向计算。多个图形处理器之间可以进行全规约通信,以使一图形处理器可以获取其他图形处理器确定的模型参数梯度。目标数据项的梯度用于更新高带宽存储单元中的第一数据项。例如,与第二索引值7对应的目标数据项的梯度,可以更新高带宽存储单元Shard923中相应的第二数据项。与第一索引值1对应的目标数据项的梯度,可以更新高带宽存储单元Shard911中相应的第一数据项。可以理解,更新后的模型参数以及第一数据项,可以作为第一子任务的执行结果。
在第一处理单元执行第一子任务时,第二处理单元可以执行第二子任务,第二子任务与一个第二样本数据对应。第二样本数据可以包括多个样本子数据。每个处理器可以利用至少一个样本子数据执行任务。第二处理单元可以获取一个第二子任务的多个样本子数据。可以将多个样本子数据分配至N个图形处理器。接下来,第二处理单元可以执行该第二子任务。
在本公开实施例中,第二处理单元根据第二映射关系,利用与多个第二子任务关联的至少一个目标数据项,依次执行多个第二子任务,得到任务执行结果包括:针对每个第二子任务,可以确定与该第二子任务相关联的至少一个目标索引。例如,对于图形处理器GPU920,与获取到的样本子数据相关联的多个目标索引的目标索引值可以包括:目标索引值5和目标索引值3。
在本公开实施例中,可以确定多个第二索引中是否存在与至少一个目标索引相匹配的至少一个匹配索引。例如,目标索引值3例如可以与第二索引值3相匹配,与第二索引值3对应的第一索引可以作为一个匹配索引。目标索引值5与任一第二索引值均不匹配。
在本公开实施例中,在确定多个第二索引中存在与至少一个目标索引相匹配的至少一个匹配索引的情况下,从第二存储单元中读取与至少一个匹配索引相对应的至少一个目标数据项。例如,对于图形处理器GPU920,与第二索引值3对应的第二数据项已被存储于高带宽存储单元Shard923,该第二数据项可以作为一个目标数据项。
在本公开实施例中,在确定多个第二索引中不存在至少一个匹配索引的情况下,从第二处理单元获取至少一个匹配索引以及至少一个目标数据项。例如,对于图形处理器GPU920,目标索引值5例如可以与第一索引值5相匹配。与第一索引值5对应的第一数据项已被存储于高带宽存储单元Shard911,该第一数据项可以作为一个目标数据项。该目标数据项位于与第一处理单元关联的第一存储单元,由此,第二处理单元可以与第一处理单元通信,以获取与第一索引值5对应的第一数据项。
在本公开实施例中,利用至少一个目标数据项执行第二子任务,可以得到第二子任务执行结果。例如,图形处理器GPU920至图形处理器GPU923可以部署有稠密的深度学习模型。图形处理器GPU920可以利用模型处理目标数据项和样本子数据,得到模型的输出结果,以完成模型的前向计算。接下来,根据输出结果,可以确定损失值,进而可以确定模型参数梯度和目标数据项的梯度,以完成反向计算。多个图形处理器之间可以进行全规约通信,以使一图形处理器可以获取其他图形处理器确定的模型参数梯度。目标数据项的梯度用于更新高带宽存储单元中的第二数据项。例如,与第二索引值3对应的目标数据项的梯度,可以更新高带宽存储单元Shard923中相应的第二数据项。与第一索引值5对应的目标数据项的梯度,可以更新高带宽存储单元Shard911中相应的第一数据项。可以理解,更新后的模型参数以及第二数据项,可以作为第二子任务的执行结果。
在本公开实施例中,第一处理单元可以从第二处理单元获取利用第二数据执行所述多个第二子任务得到的第二子任务执行结果。利用所述第一子任务执行结果和所述第二子任务执行结果,更新所述第一映射关系。在第一处理单元执行完第一子任务或第二处理单元执行完第二子任务之后,两个处理单元之间可以进行传输梯度。由此,可以实现梯度同步和融合。此外,在利用传输来的梯度更新了数据项之后,也可以更新映射关系。
在本公开实施例中,第一批次任务的多个第一子任务被执行完毕之后,更新后的第一数据项可以返回(dump)给中心处理单元C91。
通过本公开实施例,利用多个处理单元执行多个子任务,可以实现更大规模的模型训练。此外,通过多个处理单元之间传输目标数据项的方式,可以实现不同处理单元之间的alltoall通信,进而可以在图形处理器参数服务器上实现alltoall通信。在未建立远端存储单元的情况下,可以减少数据冗余,有助于节约存储资源,提高硬件资源应用效率。此外,多个处理单元不仅可以支持可变的数据长度、混合精度训练以及异步执行,还可以支持alltoall通信,可以适应不同的业务场景
在本公开实施例中,在完成了第一批次任务之后,可以执行第二批次任务。可以根据第一批次任务执行结果,得到第二批次任务数据。例如,根据第一批次任务执行结果,确定模型未收敛,可以获取第二批次任务数据。
可以理解,上文对本公开的任务执行方法进行了说明,下面将对本公开的任务执行装置进行进一步说明。
图10是根据本公开的一个实施例的任务执行装置的示意图。
如图10所示,装置1000可以包括第一存储单元1010、读取单元1020、构建单元1030以及执行单元1040。
第一存储单元1010,可以包括至少一个高带宽存储单元。
读取单元1020,用于根据第一批次任务数据的索引,将第一批次任务数据中的第一数据读取至第一存储单元。例如,第一数据用于执行第一批次任务中的多个第一子任务,第一数据包括多个第一数据项和多个第一数据项各自关联的第一索引。
构建单元1030,用于构建第一映射关系。例如,第一映射关系包括第一数据项与第一索引之间的映射关系。
执行单元1040,用于根据第一映射关系,利用与多个第一子任务关联的至少一个目标数据项,依次执行多个第一子任务,得到任务执行结果。
在一些实施例中,装置1000还包括:转换单元,用于将第一精度的第一数据转换为第二精度的第一数据。例如,第二精度大于第一精度。
在一些实施例中,构建单元用于通过以下操作构建第一映射关系:确定多个第一数据项各自的数据长度。在第一存储单元中,以连续地址存储具有相同数据长度的至少一个第一数据项和关联的第一索引。
在一些实施例中,第一数据项包括地址偏移量字段、数据长度指示字段以及有效数据字段。
在一些实施例中,装置1000还包括N个处理器,N为大于1的整数;第一批次任务还包括多个第二子任务;构建单元用于通过以下操作构建第一映射关系:根据多个第一索引的数目,将多个第一数据项分配至N个处理器,得到用于每个处理器的映射关系。获取第一批次任务数据中,用于执行多个第二子任务的第二数据。例如,第二数据包括多个第二数据项和多个第二数据项各自关联的第二索引。根据用于每个处理器的映射关系和第二数据,构建第一映射关系。
在一些实施例中,执行单元用于通过以下操作,根据第一映射关系,利用与多个第一子任务关联的至少一个目标数据项,依次执行多个第一子任务,得到任务执行结果:针对每个第一子任务,确定与第一子任务相关联的至少一个目标索引。确定多个第一索引中与至少一个目标索引相匹配的至少一个匹配索引。根据第一映射关系,从第一存储单元读取与至少一个匹配索引相对应的至少一个目标数据项。利用至少一个目标数据项执行第一子任务,得到第一子任务执行结果。
在一些实施例中,装置1000还包括N个处理器,N为大于1的整数;构建单元用于利用以下操作构建第一映射关系:根据多个第一索引的数目,将多个第一数据项分配至N个处理器,得到用于每个处理器的映射关系。根据用于每个处理器的映射关系,构建第一映射关系。向与第一处理单元通信连接的第二处理单元发送第一远程调用请求,第二处理单元存储有第一批次任务数据中,用于执行多个第二子任务的第二数据,第二数据包括多个第二数据项和多个第二数据项各自关联的第二索引。
在一些实施例中,构建单元用于利用以下操作根据用于每个处理器的映射关系,构建第一映射关系:接收第二远程调用请求。根据与第二远程调用请求对应的映射关系和用于每个处理器的映射关系,构建第一映射关系。
在一些实施例中,执行单元用于利用以下操作,根据第一映射关系,利用与多个第一子任务关联的至少一个目标数据项,依次执行多个第一子任务,得到任务执行结果:针对每个第一子任务,确定与第一子任务相关联的至少一个目标索引。确定多个第一索引中是否存在与至少一个目标索引相匹配的至少一个匹配索引。在确定多个第一索引中存在与至少一个目标索引相匹配的至少一个匹配索引的情况下,从第一存储单元中读取与至少一个匹配索引相对应的至少一个目标数据项。在确定多个第一索引中不存在至少一个匹配索引的情况下,从第二处理单元获取至少一个匹配索引以及至少一个目标数据项。利用至少一个目标数据项执行子任务,得到第一子任务执行结果。
在一些实施例中,装置1000还包括:更新单元,用于从第二处理单元获取利用第二数据执行多个第二子任务得到的第二子任务执行结果;以及利用第一子任务执行结果和第二子任务执行结果,更新第一映射关系。
在一些实施例中,装置1000构建单元用于根据以下操作来根据多个第一索引的数目,将多个第一数据项分配至N个处理器,得到用于每个处理器的映射关系:将多个第一索引各自的索引值的数目除以N,得到商和余数。根据商和余数,将多个第一数据项分配至N个处理器。
在一些实施例中,第一批次任务包括用于深度学习模型的训练任务,第一批次任务数据包括嵌入数据。
可以理解,上文对本公开的任务执行装置进行了说明,下面将对包括该任务执行装置的设备进行说明。
图11是根据本公开的一个实施例的任务处理设备的示意图。
如图11所示,任务处理设备1100可以包括至少一个任务执行装置1110和中心处理单元1120。
至少一个任务执行装置1110可以为上述的任务执行装置1000。
中心处理单元1120,包括主存储单元。
在一些实施例中,中心处理单元用于将第一精度的第一批次任务数据转换为第二精度的第一批次任务数据,其中第二精度小于第一精度。将第二精度的第一批次任务数据存储至主存储单元。
在一些实施例中,中心处理单元用于将来自任务处理装置的任务执行结果存储至主存储单元。根据任务执行结果,得到第二批次任务数据。中心处理单元可以为上述的中心处理单元C71、中心处理单元C81或中心处理单元C91。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图12示出了可以用来实施本公开的实施例的示例电子设备1200的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图12所示,设备1200包括计算单元1201,其可以根据存储在只读存储器(ROM)1202中的计算机程序或者从存储单元1208加载到随机访问存储器(RAM)1203中的计算机程序,来执行各种适当的动作和处理。在RAM 1203中,还可存储设备1200操作所需的各种程序和数据。计算单元1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理,例如任务执行方法。例如,在一些实施例中,任务执行方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由ROM1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到RAM 1203并由计算单元1201执行时,可以执行上文描述的任务执行方法的一个或多个步骤。备选地,在其他实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行任务执行方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)显示器或者LCD(液晶显示器));以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (31)

1.一种任务执行方法,包括:
第一处理单元根据第一批次任务数据的索引,将第一批次任务数据中的第一数据读取至第一存储单元,其中,所述第一数据用于执行第一批次任务中的多个第一子任务,所述第一数据包括多个第一数据项和所述多个第一数据项各自关联的第一索引;
第一处理单元构建第一映射关系,其中,所述第一映射关系包括所述第一数据项与所述第一索引之间的映射关系;以及
第一处理单元根据所述第一映射关系,利用与所述多个第一子任务关联的至少一个目标数据项,依次执行所述多个第一子任务,得到任务执行结果。
2.根据权利要求1所述的方法,其中,所述将第一批次任务数据中的第一数据读取至第一存储单元包括:
所述第一处理单元从主存储单元将所述第一批次任务数据中第一数据读取至所述第一存储单元,其中,所述主存储单元中的所述第一批次任务数据为第一精度,所述第一精度的第一批次任务数据是由第二精度的第一批次任务数据转换的,所述第一精度小于所述第二精度。
3.根据权利要求2所述的方法,还包括:在所述第一处理单元构建针对所述第一数据的第一映射关系之前,所述第一处理单元将第一精度的第一数据转换为第二精度的第一数据。
4.根据权利要求1所述的方法,其中,所述第一处理单元构建第一映射关系包括:
确定所述多个第一数据项各自的数据长度;以及
在第一存储单元中,以连续地址存储具有相同数据长度的至少一个第一数据项以及关联的第一索引。
5.根据权利要求4所述的方法,其中,所述第一数据项包括地址偏移量字段、数据长度指示字段以及有效数据字段。
6.根据权利要求1或4所述的方法,其中,所述第一处理单元包括N个处理器,N为大于1的整数;所述第一批次任务还包括多个第二子任务;所述第一处理单元构建第一映射关系包括:
根据所述多个第一索引的数目,将所述多个第一数据项分配至所述N个处理器,得到用于每个处理器的映射关系;
从第二处理单元获取所述第一批次任务数据中用于执行所述多个第二子任务的第二数据,其中,所述第二数据包括多个第二数据项和所述多个第二数据项各自关联的第二索引;以及
根据所述用于每个处理器的映射关系和所述第二数据,构建所述第一映射关系。
7.根据权利要求6所述的方法,其中,所述第一处理单元根据所述第一映射关系,利用与所述多个第一子任务关联的至少一个目标数据项,依次执行所述多个第一子任务,得到任务执行结果包括:
针对每个第一子任务,
确定与所述第一子任务相关联的至少一个目标索引;
确定所述多个第一索引中与所述至少一个目标索引相匹配的至少一个匹配索引;
根据所述第一映射关系,从所述第一存储单元读取与所述至少一个匹配索引相对应的至少一个目标数据项;以及
利用所述至少一个目标数据项执行所述第一子任务,得到第一子任务执行结果。
8.根据权利要求1或4所述的方法,其中,所述第一处理单元包括N个处理器,N为大于1的整数;所述第一批次任务还包括多个第二子任务,所述第一处理单元构建第一映射关系包括:
根据所述多个第一索引的数目,将所述多个第一数据项分配至所述N个处理器,得到用于每个处理器的映射关系;
根据所述用于每个处理器的映射关系,构建所述第一映射关系;以及
向与所述第一处理单元通信连接的第二处理单元发送第一远程调用请求,其中,所述第二处理单元存储有所述第一批次任务数据中,用于执行所述多个第二子任务的第二数据,所述第二数据包括多个第二数据项和所述多个第二数据项各自关联的第二索引。
9.根据权利要求8所述的方法,其中,所述根据所述用于每个处理器的映射关系,构建所述第一映射关系包括:
接收第二远程调用请求;
根据与所述第二远程调用请求对应的映射关系和所述用于每个处理器的映射关系,构建所述第一映射关系。
10.根据权利要求8所述的方法,其中,所述第一处理单元根据所述第一映射关系,利用与所述多个第一子任务关联的至少一个目标数据项,依次执行所述多个第一子任务,得到任务执行结果包括:
针对每个第一子任务,
确定与所述第一子任务相关联的至少一个目标索引;
确定所述多个第一索引中是否存在与所述至少一个目标索引相匹配的至少一个匹配索引;
在确定所述多个第一索引中存在与所述至少一个目标索引相匹配的至少一个匹配索引的情况下,从所述第一存储单元中读取与所述至少一个匹配索引相对应的至少一个目标数据项;
在确定所述多个第一索引中不存在所述至少一个匹配索引的情况下,从所述第二处理单元获取所述至少一个匹配索引以及所述至少一个目标数据项;以及
利用所述至少一个目标数据项执行所述子任务,得到第一子任务执行结果。
11.根据权利要求7或10所述的方法,还包括:
从第二处理单元获取利用第二数据执行所述多个第二子任务得到的第二子任务执行结果;以及
利用所述第一子任务执行结果和所述第二子任务执行结果,更新所述第一映射关系。
12.根据权利要求6或8所述的方法,其中,根据所述多个第一索引的数目,将所述多个第一数据项分配至所述N个处理器,得到用于每个处理器的映射关系包括:
将所述多个第一索引的各自的索引值除以N,得到商和余数;以及
根据所述商和余数,将所述多个第一数据项分配至所述N个处理器。
13.根据权利要求1所述的方法,其中,所述第一批次任务包括用于深度学习模型的训练任务,所述第一批次任务数据包括嵌入数据。
14.一种任务执行装置,包括:
第一存储单元;
读取单元,用于根据第一批次任务数据的索引,将所述第一批次任务数据中的第一数据读取至所述第一存储单元,其中,所述第一数据用于执行所述第一批次任务中的多个第一子任务,所述第一数据包括多个第一数据项和所述多个第一数据项各自关联的第一索引;
构建单元,用于构建第一映射关系,其中,所述第一映射关系包括所述第一数据项与所述第一索引之间的映射关系;以及
执行单元,用于根据所述第一映射关系,利用与所述多个第一子任务关联的至少一个目标数据项,依次执行所述多个第一子任务,得到任务执行结果。
15.根据权利要求14所述的装置,还包括:
转换单元,用于将第一精度的第一数据转换为第二精度的第一数据,其中,第二精度大于第一精度。
16.根据权利要求14所述的装置,其中,所述构建单元用于通过以下操作构建所述第一映射关系:
确定所述多个第一数据项各自的数据长度;以及
在第一存储单元中,以连续地址存储具有相同数据长度的至少一个第一数据项和关联的第一索引。
17.根据权利要求16所述的装置,其中,所述第一数据项包括地址偏移量字段、数据长度指示字段以及有效数据字段。
18.根据权利要求14或16所述的装置,还包括N个处理器,N为大于1的整数;所述第一批次任务还包括多个第二子任务;所述构建单元用于通过以下操作构建第一映射关系:
根据所述多个第一索引的数目,将所述多个第一数据项分配至所述N个处理器,得到用于每个处理器的映射关系;
获取所述第一批次任务数据中,用于执行所述多个第二子任务的第二数据,其中,所述第二数据包括多个第二数据项和所述多个第二数据项各自关联的第二索引;以及
根据所述用于每个处理器的映射关系和所述第二数据,构建所述第一映射关系。
19.根据权利要求18所述的装置,其中,所述执行单元用于通过以下操作,根据所述第一映射关系,利用与所述多个第一子任务关联的至少一个目标数据项,依次执行所述多个第一子任务,得到任务执行结果:
针对每个第一子任务,
确定与所述第一子任务相关联的至少一个目标索引;
确定所述多个第一索引中与所述至少一个目标索引相匹配的至少一个匹配索引;
根据所述第一映射关系,从所述第一存储单元读取与所述至少一个匹配索引相对应的至少一个目标数据项;以及
利用所述至少一个目标数据项执行所述第一子任务,得到第一子任务执行结果。
20.根据权利要求14所述的装置,还包括N个处理器,N为大于1的整数;所述构建单元用于利用以下操作构建第一映射关系:
根据所述多个第一索引的数目,将所述多个第一数据项分配至所述N个处理器,得到用于每个处理器的映射关系;
根据所述用于每个处理器的映射关系,构建所述第一映射关系;以及
向与所述第一处理单元通信连接的第二处理单元发送第一远程调用请求,其中,所述第二处理单元存储有所述第一批次任务数据中,用于执行所述多个第二子任务的第二数据,所述第二数据包括多个第二数据项和所述多个第二数据项各自关联的第二索引。
21.根据权利要求20所述的装置,其中,构建单元用于利用以下操作根据所述用于每个处理器的映射关系,构建所述第一映射关系:
接收第二远程调用请求;
根据与所述第二远程调用请求对应的映射关系和所述用于每个处理器的映射关系,构建所述第一映射关系。
22.根据权利要求20所述的装置,其中,所述执行单元用于利用以下操作,根据所述第一映射关系,利用与所述多个第一子任务关联的至少一个目标数据项,依次执行所述多个第一子任务,得到任务执行结果:
针对每个第一子任务,
确定与所述第一子任务相关联的至少一个目标索引;
确定所述多个第一索引中是否存在与所述至少一个目标索引相匹配的至少一个匹配索引;
在确定所述多个第一索引中存在与所述至少一个目标索引相匹配的至少一个匹配索引的情况下,从所述第一存储单元中读取与所述至少一个匹配索引相对应的至少一个目标数据项;
在确定所述多个第一索引中不存在所述至少一个匹配索引的情况下,从所述第二处理单元获取所述至少一个匹配索引以及所述至少一个目标数据项;以及
利用所述至少一个目标数据项执行所述子任务,得到第一子任务执行结果。
23.根据权利要求18或20所述的装置,还包括:
更新单元,用于从第二处理单元获取利用第二数据执行所述多个第二子任务得到的第二子任务执行结果;以及利用所述第一子任务执行结果和所述第二子任务执行结果,更新所述第一映射关系。
24.根据权利要求17或19所述的装置,其中,所述构建单元用于根据以下操作来根据所述多个第一索引的数目,将所述多个第一数据项分配至所述N个处理器,得到用于每个处理器的映射关系:
将所述多个第一索引各自的索引值的数目除以N,得到商和余数;以及
根据所述商和余数,将所述多个第一数据项分配至所述N个处理器。
25.根据权利要求14所述的装置,其中,所述第一批次任务包括用于深度学习模型的训练任务,所述第一批次任务数据包括嵌入数据。
26.一种任务处理设备,包括:
至少一个根据权利要求14至25之一所述的任务执行装置;以及
中心处理单元,包括主存储单元。
27.根据权利要求26所述的设备,其中,所述中心处理单元用于
将第二精度的第一批次任务数据转换为第一精度的第一批次任务数据,其中第一精度小于第二精度;以及
将第一精度的第一批次任务数据存储至所述主存储单元。
28.根据权利要求26所述的设备,其中,所述中心处理单元用于
将来自所述任务处理装置的任务执行结果存储至所述主存储单元;以及
根据所述任务执行结果,得到第二批次任务数据。
29.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1至13中任一项所述的方法。
30.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至13中任一项所述的方法。
31.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至13中任一项所述的方法。
CN202310619512.5A 2023-05-29 2023-05-29 任务执行方法、装置、电子设备和存储介质 Active CN116560817B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310619512.5A CN116560817B (zh) 2023-05-29 2023-05-29 任务执行方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310619512.5A CN116560817B (zh) 2023-05-29 2023-05-29 任务执行方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN116560817A true CN116560817A (zh) 2023-08-08
CN116560817B CN116560817B (zh) 2024-05-07

Family

ID=87496419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310619512.5A Active CN116560817B (zh) 2023-05-29 2023-05-29 任务执行方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116560817B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031618A (ja) * 1996-07-16 1998-02-03 Hitachi Ltd データ変換方式
WO2004077215A2 (en) * 2003-01-30 2004-09-10 Vaman Technologies (R & D) Limited System and method for data migration and conversion
CN111078733A (zh) * 2019-11-26 2020-04-28 金蝶软件(中国)有限公司 批量任务处理方法、装置、计算机设备和存储介质
CN113535349A (zh) * 2021-01-06 2021-10-22 腾讯科技(深圳)有限公司 数据批量处理方法、装置和存储介质
US11294670B2 (en) * 2019-03-27 2022-04-05 Intel Corporation Method and apparatus for performing reduction operations on a plurality of associated data element values
CN115328658A (zh) * 2022-08-30 2022-11-11 无锡江南计算技术研究所 一种支持混合精度运算的数据访存方法及装置
CN116048797A (zh) * 2023-01-09 2023-05-02 北京超弦存储器研究院 数据处理方法、装置、电子设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031618A (ja) * 1996-07-16 1998-02-03 Hitachi Ltd データ変換方式
WO2004077215A2 (en) * 2003-01-30 2004-09-10 Vaman Technologies (R & D) Limited System and method for data migration and conversion
US11294670B2 (en) * 2019-03-27 2022-04-05 Intel Corporation Method and apparatus for performing reduction operations on a plurality of associated data element values
CN111078733A (zh) * 2019-11-26 2020-04-28 金蝶软件(中国)有限公司 批量任务处理方法、装置、计算机设备和存储介质
CN113535349A (zh) * 2021-01-06 2021-10-22 腾讯科技(深圳)有限公司 数据批量处理方法、装置和存储介质
CN115328658A (zh) * 2022-08-30 2022-11-11 无锡江南计算技术研究所 一种支持混合精度运算的数据访存方法及装置
CN116048797A (zh) * 2023-01-09 2023-05-02 北京超弦存储器研究院 数据处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN116560817B (zh) 2024-05-07

Similar Documents

Publication Publication Date Title
CN112561078B (zh) 分布式的模型训练方法及相关装置
JP7454529B2 (ja) 分散型モデルトレーニング装置および方法、電子機器、記憶媒体、ならびに、コンピュータプログラム
CN113377520A (zh) 资源调度方法、装置、设备以及存储介质
US20230095725A1 (en) Method of processing quantum circuit, electronic device, and storage medium
CN113344074B (zh) 模型训练方法、装置、设备及存储介质
CN114924745A (zh) 深度学习编译器的运行方法、装置及电子设备
CN109410063B (zh) 基于区块链的交易处理方法、装置和存储介质
CN114819084A (zh) 模型推理方法、装置、设备及存储介质
CN116560817B (zh) 任务执行方法、装置、电子设备和存储介质
CN114816393B (zh) 信息生成方法、装置、设备以及存储介质
CN113570067B (zh) 分布式系统的同步方法、装置
CN113377295B (zh) 多生产者单消费者的数据存储和读取方法、装置、设备
CN113408304B (zh) 文本翻译方法、装置、电子设备及存储介质
CN114565105A (zh) 处理数据的方法和深度学习模型的训练方法、装置
CN114579311A (zh) 执行分布式计算任务的方法、装置、设备以及存储介质
CN112784962A (zh) 超网络的训练方法、装置、电子设备和存储介质
CN115759260B (zh) 深度学习模型的推理方法、装置、电子设备和存储介质
CN113449155B (zh) 用于特征表示处理的方法、装置、设备和介质
CN115361032B (zh) 一种用于5g通信的天线单元
CN114428907B (zh) 信息搜索方法、装置、电子设备及存储介质
CN117520461B (zh) 逻辑分片的分发方法、装置、设备和介质
CN115712490A (zh) 基于算子的数据处理流程构建方法和电子设备
CN114428907A (zh) 信息搜索方法、装置、电子设备及存储介质
CN117892050A (zh) 一种基于多核硬件的矩阵运算方法、装置、设备及介质
CN116186450A (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